Converting Oracle Database from Linux to Windows using RMAN

lusklusklusk發表於2018-08-27

1.查出源端linux下DB的v$database.platform_id和v$database.platform_name

select platform_id,platform_name from v$database

13   Linux x86 64-bit


查出目標端windows下DB的v$database.platform_id和v$database.platform_name

select platform_id,platform_name from v$database

12  Microsoft Windows x86 64-bit



2、查詢源端和目標的位元組序號v$transprotable_platform.endian_format是否一致,一致才可以遷移

select * from v$transportable_platform where platform_id in (12,13)



3.源端linux下DB啟動到open read only

shutdown immediate;

startup mount;

alter database open read only;



4.源端linux執行如下

declare

v_return boolean;

begin

v_return:=dbms_tdb.check_db('Microsoft Windows x86 64-bit');

end;

/


declare

b boolean;

begin

b:=dbms_tdb.check_external;

end;

/

以上兩個語句不報錯就可以



5.源端linux下備份

rman>convert database transport script '/u02/backup/transport.sql' to platform 'Microsoft Windows x86 64-bit'

db_file_name_convert='/u01/app/oracle/oradata/hyprd/','/u02/backup/';

--以上如果在convert database後面加上 new database 'XX' 表示對要轉換的目標資料庫的資料檔案生成新的資料庫名,個人實驗中沒有做這個動作,因為目標端也想用源端的資料庫名

/u02/backup/transport.sql就是源端linux匯出來的控制檔案

/u01/app/oracle/oradata/hyprd/就是源端linux的資料庫檔案路徑

/u02/backup/就是源端linux匯出資料庫檔案的存放路徑

Microsoft Windows x86 64-bit就是目標端windows的v$database.platform_name



6、源端linux下建立pfile(個人的實驗過程中沒有做這個動作,因為之前已經在目標端建立了一個和源端一樣dbname的空資料庫)

create pfile='/u02/backup/pfile.ora' from spfile;



7.把linux源端所有/u02/backup/下所有檔案複製到windows目標端的一個臨時目錄如e:\oracle\backup


8.windows目標端建立用於rman恢復的目錄(個人的實驗過程中沒有做這個動作,因為之前已經在目標端建立了一個和源端一樣dbname的空資料庫)

$ORACLE_BASE/admin/SID/adump

$ORACLE_BASE/admin/SID/bdump

$ORACLE_BASE/admin/SID/cdump

$ORACLE_BASE/admin/SID/udump

$ORACLE_BASE/fast_recovery_area

$ORACLE_BASE/oradata/SID



9.把目標端windows中的e:\oracle\backup檔案都移動到$ORACLE_BASE/oradata/SID/(個人實驗過程中,還去先刪除$ORACLE_BASE/oradata/SID/原來的空資料庫檔案)



10.把從linux下複製過來的pfile檔案進行修改,指定相關檔案的目錄(個人的實驗過程中沒有做這個動作,因為之前已經在目標端建立了一個和源端一樣dbname的空資料庫)

目標端spfile或pfile的*.control_files路徑檔案不需要修改為/u02/backup/transport.sql

/u02/backup/transport.sql是源端生成的控制檔案,最後我們需要這個檔案生成真正的控制檔案(即目標端spfile或pfile的*.control_files值對應的檔案)



11.把從linux下複製過來的controlfile檔案即/u02/backup/transport.sql進行修改,指定引數檔案路徑,資料檔案路徑,redo log路徑,tempfile路徑



12.保證linux目標庫shutdown情況下,sqlplus執行/u02/backup/transport.sql

/u02/backup/

sqlplus / as sysdba

SQL>startup nomount

SQL>@transport.sql


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2212940/,如需轉載,請註明出處,否則將追究法律責任。

相關文章