- 最后登录
- 2018-9-14
- 在线时间
- 103 小时
- 威望
- 0
- 金钱
- 1829
- 注册时间
- 2012-12-17
- 阅读权限
- 10
- 帖子
- 139
- 精华
- 1
- 积分
- 0
- UID
- 820
|
8#
发表于 2012-12-26 17:16:51
刘大,我做了一个测试,不知道有没有漏什么东西。我觉得在以下场景是用atcsn。
还麻烦赐教一下,非常感谢
场景是这样的:我想从一个(source db)windows 2003 32 bit,oracle 9.2.0.4的库上用goldengate复制一个表至(target DB)
windows 2008 64 bit oracle 10.2.0.5的库上面
source db 测试表在如下建立
create table test as select * from user_objects;
SQL> col object_name format A10
SQL> r
1* select object_name,object_type from test
OBJECT_NAM OBJECT_TYPE
---------- ------------------
TEST TABLE
TEST TABLE
然后做修改
update test set object_name='Q' where rownum=1;
commit;
alter system switch logfile;
update test set object_type='O' where object_name='Q';
commit;
用logmnr在第一次update的og里面查看commit scn是多少
SQL> select scn,cscn,rollback,operation_code from v$logmnr_contents where SEG_NA
ME='TEST';
SCN CSCN ROLLBACK OPERATION_CODE
---------- ---------- ---------- --------------
248651 248654 0 3
然后在第三个环境里面做source db做不完全恢复至scn 248654
即使用recover database until scn 248654;
完成后查看test表,其资料并没有修改
select object_name,object_type from test
OBJECT_NAM OBJECT_TYPE
---------- ------------------
TEST TABLE
TEST TABLE
将test表导出,然后导入tarhet db
在targetdb 开启replicat 使用aftercsn 248654
但是会出现错误SQL error 1403 mapping TEST.TEST to TEST.TEST
关闭replicat,修改读检查点,重新开启replicat 用atcsn 248654。复制正常 |
|