50
魔獸
我們都被騙了,所有的跨平台遷移都可以通過XTTS實現
自從2015年初進行了xtts增量的U2L遷移測試之後,國內很多人都開始利用這種方案進行數據庫跨平台遷移了,基本上都是利用Oracle 封裝的perl腳本。其中Oracle MOS文檔 11G – Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (文檔 ID 1389592.1) 明確提到目標端環境必須是Linux,
這裏該文檔中的一段原話:
The source system may be any platform provided the prerequisites referenced and listed below for both platform and database are met. The destination system must be Linux, either 64-bit Oracle Linux or RedHat Linux, as long as it is a certified version. The typical use case is expected to be migrating data from a big endian platform, such as IBM AIX, HP-UX, or Solaris SPARC, to 64-bit Oracle Linux, such as Oracle Exadata Database Machine running Oracle Linux.
其實這裏很容易讓人產生誤解,這裏Oracle並非說不支持其他平台,而是說Oracle 提供的封裝perl腳本不支持而已。但是手工進行xtts操作,完全是ok的;經過我的測試也是可行,這裏是測試從Hp IA到Solaris Sparc的xtts增量遷移方式,供參考。
1、首先在原端創建測試表空間和測試表.
-創建測試表空間
create tablespace xtts datafile ‘+data’ size 100m;
create table test0504 as select * from dba_objects where 1=2;
alter table test504 move tablespace xtts;
2、備份xtts表空間文件,並傳輸到目標端(Solaris)
3、目標端進行文件格式轉換
convert from platform ‘HP-UX IA (64-bit)’ datafile ’/tmp/xtts.dbf’ format ‘+DATA/test/datafile/xtts_new.dbf’;
4、原端進行基於SCN的增量備份(這裏由於我是測試表空間,所以未啟用Block track changing)
5、創建備份集傳到目標端並進行備份集格式手工轉換(Solaris)
將腳本保存為xtts_conv1.sql並執行,如下是腳本內容:
執行結果如下:
SQL> start xtts_conv1.sql;
PL/SQL procedure successfully completed.
6、進行第一次增量應用(Solaris)
說明:為了驗證增量數據是否能夠同步到目標端,在進行增量備份之前,
我這裏先進行了:
SQL > insert into test0504 select * fro dba_objects where rownm < 101;
SQL> commit;
將如下腳本保存為apply_incr1.sql,並執行:
執行結果如下:
7、將原端表空間設置為隻讀模式
SQL> alter tablespace xtts read only ;
8、進行最後一次增量備份。
9、將備份集傳輸到目標端並進行轉換。步驟略(同上)
10、最後一次應用增量備份。步驟略(同上)
11、源端導出元數據
將下列內容保存為exp_xtts.par:
執行如下命令導出xtts表空間上的元數據信息:
12、目標端導入元數據
將下列內容保存為imp_xtts.par:
執行如下命令導入元數據。
13、檢查數據
我們可以看出,xtts表空間已經被遷移過來了,並且增量的數據也已經同步了。
所以我想表達的是,所有的跨平台遷移,其實都可以利用XTTS Incremental Backup 功能進行遷移,無論目標端是什麼平台。當然,如果字節序相同的情況下,可以直接使用convert database 功能。
補充:
在進行增量應用時,可能會出現如下錯誤:
如果遇到這個錯誤,那麼隻需要將實例停掉,啟動到nomount狀態下執行腳本即可。
本文出自數據和雲公眾號,原文鏈接
最後更新:2017-07-17 16:44:37