OGG 根据 SCN 同步数据零停机
-- 在做测试前已经预先配置好OGG
-- 创建测试表插入数据
create table zzh.test1(id number);
insert into test1 values(1);
insert into test1 values(2);
insert into test1 values(3);
-- 查询源scn将源数据导入目标库
-- 1.源库按照scn导入到目标库
-- 源端的数据:
SQL> conn zzh/oracle
SQL> select * from test1;
ID
----------
1
2
3
-- 此时的源端的scn
SQL> select current_scn from v$database;
CURRENT_SCN
-----------------
404040721
-- 按照scn导出
$ expdp system/oracle directory=dump dumpfile=zzh.dmp schemas=zzh flashback_scn=404040721
-- 源端模拟生产环境写入数据:
SQL> conn zzh/oracle
SQL> insert into test1 values(4);
SQL> commit;
-- 传送至目标端:
# scp zzh.dmp root@192.168.227.123:/home/oracle/dump
-- 目标端导入:
$ impdp system/oracle directory=dump dumpfile=zzh.dmp
-- 验证目标库数据
SQL> conn zzh/oracle
SQL> select * from test1;
ID
----------
1
2
3
-- 源库再次插入数据
SQL> insert into test1 values(5);
SQL> commit;
-- 此时原库的trail文件和目标库的trail文件都出现了增长变化:
-- 启动replicat(aftercsn)
GGSCI (ogg2) 9> start replicat test_r,aftercsn 404040721
GGSCI (ogg2) 10> info all
-- 验证目标库数据
SQL> conn zzh/oracle
SQL> select * from test1;
ID
----------
1
2
3
4
5