grassbell的博客
===========================================================
模拟跨平台迁移数据试验小记
===========================================================

步骤:
1)在master 中创建表的mv log,用于增量刷新
2)在target(winnt)数据库先创建存在于主库中的表。
3)通过db link 创建与表同名的on prebuilt table 物化视图,定时增量刷新(fast refresh)
4)满足条件后停掉master(Linux) 应用,目标刷新成功,删除所有的mv,数据保留在了相应的表中。

参考:http://www.itpub.net/309939.html


master site:
alibaba>create table tmp(a int primary key);

Table created.

alibaba>CREATE MATERIALIZED VIEW LOG ON alibaba.tmp
  2  /

Materialized view log created.


alibaba>column object_name format a30
alibaba>select object_name,object_type,owner from dba_objects where object_name like 'MLOG$%';

OBJECT_NAME                    OBJECT_TYPE        OWNER
------------------------------ ------------------ ------------------------------
MLOG$_TMP                      TABLE              ALIBABA


target site:
SQL> CREATE DATABASE LINK lk_ora CONNECT TO alibaba IDENTIFIED BY xxx USING 'ORA1';

数据库链接已创建。

SQL> Create table tmp as select * from alibaba.tmp@lk_ora;

表已创建。

SQL> Create materialized view mv_tmp on prebuilt table REFRESH FAST START WITH SYSDATE NEXT sysdate+1/24/60
  2  as
  3   Select a From alibaba.tmp@lk_ora
  4  /

实体化视图已创建。

SQL> column object_name format a30
SQL> select object_name,object_type from user_objects where object_name='TMP';

OBJECT_NAME                    OBJECT_TYPE
------------------------------ ------------------------------------
TMP                            TABLE
TMP                            MATERIALIZED VIEW

master site:
alibaba>insert into tmp values(1);

1 row created.

alibaba>commit;

Commit complete.

alibaba>insert into tmp values(2);

1 row created.

alibaba>commit;

Commit complete.

target site:
过一分钟
SQL> select * from tmp;

         A
----------
         1
         2

SQL> drop materialized view tmp;

实体化视图已删除。

SQL>  select object_name,object_type from user_objects where object_name='TMP';

OBJECT_NAME                    OBJECT_TYPE
------------------------------ ------------------------------------
TMP                            TABLE

SQL> select * from tmp;

         A
----------
         1
         2

grassbell 发表于:2005.01.20 12:12 ::分类: ( Oracle ) ::阅读:(4628次) :: 评论 (2)
关于MV中LOB的字段 [回复]

如果table中有LOG字段

Create table tmp as select * from alibaba.tmp@lk_ora;

应该不行。
必须手工脚本建立。

是否能建立含LOB字段的Table的prebuilt mv . 正在测试。

tolywang 评论于: 2006.04.26 11:01
wow accounts [回复]

wow accounts wow accounts wow char wow character wow forum wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow gold wow guide wow power leveling wow power leveling wow power leveling

wow accounts 评论于: 2008.11.21 20:58

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)




自我介绍
切换风格
新闻聚合
博客日历
文章归档...
最新发表...
博客统计...
Blog信息
网站链接...