ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 跨平台数据迁移(转)

跨平台数据迁移(转)

原创 Linux操作系统 作者:k330 时间:2009-02-05 15:26:56 0 删除 编辑

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;
Table created.
SQL> select count(1) from big_t1;
COUNT(1)
----------
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;
Table created.
 
SQL> select count(1) from big_t1;
COUNT(1)
----------
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');
PL/SQL procedure successfully completed.
SQL> select count(1) from big_t1;
COUNT(1)
----------
6170
SQL>
 
--/*此时模拟在做完全刷新过程中,源库的表又发生了变化
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;
COUNT(1)
----------
6170

SQL> exec dbms_mview.refresh('BIG_T1');
PL/SQL procedure successfully completed.
 
SQL> select count(1) from big_t1;
COUNT(1)
----------
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

drop materialized view big_t1; -----目标库上
drop materialized view big_t1 log on big_t1; -----目标库上

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7765550/viewspace-545364/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-02-05

  • 博文量
    1
  • 访问量
    783