利用RMAN跨平臺遷移資料庫

舊夢依稀發表於2013-11-20
1、資料檔案位元組排序
Oracle平臺一般使用兩種不同的位元組排序方案(尾數格式)。
如果多個平臺使用的位元組排序方案不同,則需要在RMAN中使用convert命令來將表空間轉換為目標平臺上所需的格式。可以通過以下查詢確定尾數格式:
select endian_format
from v$transportable_platform tp,v$database d
where tp.platform_name=d.platform_name;
2、使用RMAN轉換表空間尾數格式
首先,建立儲存轉換檔案副本的目錄,接下來將希望轉換的表空間設定為只讀模式,然後,啟動RMAN並使用新的convert tablespace命令。
rman target /
convert tablespace users to platform='AIX-Based Systems(64-bit)' db_file_name_convert='c:\oracle\oradata\betatwo','c:\oracle\admin\transport_aix';
也可以轉換目標站點上的資料檔案
rman target /
convert datafile='c:\oracle\oradata\betatwo\*' from platform='AIX-Based Systems(64-bit)'  db_file_name_convert='c:\oracle\oradata\betatwo','c:\oracle\admin\transport_aix';
使用的平臺名來自於v$transportable_platform檢視的platform_name列。
3、跨平臺移動資料庫
Oracle Database 10g中的RMAN提供了全新的功能以幫助在尾數字節格式相同的平臺之間移動資料庫。convert database命令結合DBMS_TDP包可以減少在平臺之間移動資料庫的整體工作負載。操作過程如下:
(1)以只讀方式開啟資料庫
startup mount;
alter database open read only;
(2)使用dbms_tdb.check_db程式來檢查資料庫狀態。該程式應該在開啟serveroutput命令時執行:
set serveroutput on;
declare
db_ready boolean;
begin
db_ready:=dbms_tdb.check_db('Microsoft Windows IA (32-bit)',dbms_tdb.skip_readonly);
end;
/
(3)使用dbms_tdb.check_external程式來標識外部物件:
set serveroutput on;
declare
external boolean;
begin
external:=dbms_tdb.check_external;
end;
/
(4)當資料庫可以傳送時,就可以使用RMAN的convert database命令。RMAN建立資料庫移動所需的指令碼,但不真正執行移動操作,而是建立移動所需的檔案:
CONVERT DATABASE NEW DATABASE 'copydb' transport script 'c:\oracle\copydb\copyscripts' to platform 'Microsoft Windows IA (32-bit)';
可選引數db_file_name_convert允許使用者為需要轉換的資料檔案定義目錄:
CONVERT DATABASE NEW DATABASE 'copydb' transport script 'c:\oracle\copydb\copyscripts' to platform 'Microsoft Windows IA (32-bit)' db_file_name_convert 'c:\oracle\product\10.2.0\oradata\rob10r2','c:\oracle\newdbdest';

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

相關文章