zt 跨平臺 跨版本 大規模資料遷移
ZT
===========================================================
作者: weiranjie(http://weiranjie.itpub.net)
發表於: 2008.09.05 14:21
分類: oracle 技術
出處: http://weiranjie.itpub.net/post/26925/470236
---------------------------------------------------------------
[@more@]發表於: 2008.09.05 14:21
分類: oracle 技術
出處: http://weiranjie.itpub.net/post/26925/470236
---------------------------------------------------------------
昨天在 pub 上看到一個問題,
oracle 9i 如果600G 的資料庫需要進行最短時間的跨平臺(windows 到unix) 停機(12 小時)遷移,該如何進行資料遷移 ?
請教了 biti
作了一下測試
prebuilt mv 做大表,
小表直接 dblink insert ,資料庫30分鐘足夠了
利用prebuilt mv實現跨平臺,跨版本資料遷移
該方法的實現原理是對於要遷移的表物件,需要有一個主鍵,用於mv的重新整理,對於符合該要求的表,在源表上建立mv日誌,再在目標資料庫上建立結構一樣的表,然後在目標表上採用prebuilt方式建立mv,第一次採用完全重新整理,之後採用增量重新整理,等真正要切換的時候,只需要重新整理完增量的日誌,刪除mv,保留目標表即可。需要重新整理的表都加上主鍵
基本思路的例子:
--1.在源庫上建立表和mview log
SQL> create table big_t1 as select * from dba_objects;
SQL> create table big_t1 as select * from dba_objects;
Table created.
SQL> select count(1) from big_t1;
COUNT(1)
----------
6170
----------
6170
SQL> create materialized view log on big_t1;
Materialized view log created.
--2.在目標資料庫上建立與該表一樣的表,並在該表上建立prebuilt mv
SQL> create table big_t1 as select * from where 1=2;
SQL> create table big_t1 as select * from where 1=2;
Table created.
SQL> select count(1) from big_t1;
COUNT(1)
----------
0
----------
0
SQL> create materialized view big_t1 on prebuilt table refresh fast as select * from
Materialized view created.
--3.做完全重新整理和增量重新整理
SQL> exec dbms_mview.refresh('BIG_T1','complete');
SQL> exec dbms_mview.refresh('BIG_T1','complete');
PL/SQL procedure successfully completed.
SQL> select count(1) from big_t1;
COUNT(1)
----------
6170
----------
6170
SQL>
--/*此時模擬在做完全重新整理過程中,源庫的表又發生了變化
SQL> insert into big_t1(object_id,owner) values(99991,'test');
SQL> insert into big_t1(object_id,owner) values(99991,'test');
1 row created.
SQL> commit;
Commit complete. */
--再做增量重新整理
SQL> select count(1) from big_t1;
SQL> select count(1) from big_t1;
COUNT(1)
----------
6170
SQL> exec dbms_mview.refresh('BIG_T1');
----------
6170
SQL> exec dbms_mview.refresh('BIG_T1');
PL/SQL procedure successfully completed.
SQL> select count(1) from big_t1;
COUNT(1)
----------
6171
----------
6171
--4.停機切換,做最後一次重新整理,然後刪除源庫的mview log和目標庫的mview
SQL> exec dbms_mview.refresh('BIG_T1');
PL/SQL procedure successfully completed.
SQL> drop materialized view big_t1; -----目標庫上
Materialized view dropped.
SQL> select count(1) from big_t1;
COUNT(1)
----------
6171
----------
6171
drop materialized view big_t1; -----目標庫上
drop materialized view big_t1 log on big_t1; -----目標庫上
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/82387/viewspace-1016689/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用傳輸表空間跨平臺遷移資料
- 【資料遷移】XTTS跨平臺傳輸表空間v4TTS
- elasticsearch跨叢集資料遷移Elasticsearch
- 使用 Velero 跨雲平臺遷移叢集資源到 TKE
- GBASE助力山東移動大資料平臺PB級資料主倉業務跨機房無感知遷移大資料
- 【資料遷移】XTTS跨平臺傳輸表空間(1.傳統方式)TTS
- 12c跨平臺完成PDB的備份遷移
- RMAN備份恢復典型案例——跨平臺遷移pdb
- 【資料遷移】XTTS跨平臺傳輸表空間v3(3.DFT方式)TTS
- 【資料遷移】XTTS跨平臺傳輸表空間v3(2.RMAN增量)TTS
- 移動跨平臺開發深度解析
- OBIEE10g跨平臺遷移過程及問題總結
- 使用 `postMessage` 跨域名遷移 `localStorage`跨域
- long資料型別跨平臺問題資料型別
- 跨平臺資料庫 Realm 整合實踐資料庫
- rust跨平臺Rust
- 移動跨平臺技術方案總結
- Rman_異地、跨平臺、跨版本的恢復總結及案例
- Apache Wayang :跨平臺資料處理系統Apache
- 移動端跨平臺開發的深度解析
- .NET Core 跨平臺
- 跨平臺編譯編譯
- Java跨平臺原理Java
- JVM跨平臺原理JVM
- WPF跨平臺方案?
- 【kingsql分享】Oracle跨版本遷移之XTTS_V4版本的實施SQLOracleTTS
- 跨平臺渲染引擎之路:框架與核心模組框架
- Kubernetes 跨 StorageClass 遷移 Persistent Volumes 完全指南
- 淺談 2018 移動端跨平臺開發方案
- Flutter嚐鮮:跨平臺移動應用開發Flutter
- Flutter:移動端跨平臺技術演進之路Flutter
- 移動開發的跨平臺技術演進移動開發
- 跨平臺、跨主機共享鍵鼠方案(KVM)
- JAVA的跨平臺原理Java
- onethink支援跨平臺嗎
- JVM筆記 -- Java跨平臺和JVM跨語言JVM筆記Java
- [譯] 使用 Flutter 實現跨平臺移動端開發Flutter
- 從 React Native 到 Flutter,移動跨平臺方案的真相React NativeFlutter
- 跨平臺專案GSYGithubApp系列三大開源版本推薦(Flutter 、React Native 、Weex)GithubAPPFlutterReact Native