重庆思庄Oracle、Redhat认证学习论坛
标题:
goldengate中添加同步表的操作
[打印本页]
作者:
shiaijun
时间:
2015-11-3 21:24
标题:
goldengate中添加同步表的操作
1.非异构同步:
(1)先停止源端ogg的抽取和传输进程
stop exta01
(注意: 若有长事务需确认归档是否存在
info exta01 showch
查看recovery checkpoint 的记录,确保该条归档和其后的归档都在,
send extract exta01,forcestop)
stop dpea01
(2)dblogin userid ggs,password ggs 登陆数据库
info trandata table_name 如果为disabled 则用 add trandata table_name
(注意: 如果是同步已有的表并且表结构发生变化的则用下面的步骤
delete trandata table_name
add trandata table_name)
(3)在抽取和投递进程中添加该表:
edit params extra01
table table_name
(4)启动 源端进程
start *
(5)目标端停止复制进程
stop repa01
(6)数据初始化:
a、查询源端的导出目录
sqlplus / as sysdba
select * from dba_directories;
b、查询scn号
col get_system_change_number for 99999999999999
select dbms_flashback.get_system_change_number from dual;
c、导出导入
源端:expdp \'/ as sysdba\' directory=directory_name dumpfile=###%U.dump logfile=###.log parallel=1 tables=user.tanle_name1,user.table_name2 content=data_only flashback_scn=###########
传到目标端:scp ###%U.dump
oracle@10.218.11.1
:/goldengate 然后输入oracle密码
目标端导入:impdp \'/ as sysdba\' directory=directory_name dumpfile=###%U.dump logfile=###.log parallel=1 tables=user.tanle_name1,user.table_name2 content=data_only table_exists_action=truncate remap_schema=user:user1 remap_tablespace=%:usertbs
注意:导入过程中时刻注意目标端的表空间使用情况,以及表空间名的remap是否正确。
(7)导入完成后在目标端复制进程中添加
map user.table_name , target user1.table_name , filter (@GETENV ("TRANSACTION", "CSN") > ########### ) ;
启动复制进程 start repa01
2.异构同步:
异构复制的数据同步比非异构的多加一步
在最后启动复制进程之前,源端生成表定义文件:
进入源端ogg主目录
cd dirprm
vi defgen.prm (或者在ogg主目录下./ggsci 然后在交互界面edit params defgen )
添加参数
defsfile ./dirdef/defgen.def,purge
userid ggs,password ggs
table user.table_name;
保存后退出
在ogg主目录下执行./defgen paramfile ./dirprm/defgen.prm
传到目标端将目标端dirdef下的def文件覆盖。
如果是整个进程的表都做了初始化,可用下面的语句启动复制进程
start repa01,aftercsn ############
作者:
郑全
时间:
2015-11-3 23:08
支持原创,
对于表结构不同的情况,最好加上对所有列补充日志,否则,可能导致update的数据不同步。
作者:
郑全
时间:
2015-11-4 22:55
对于表结构不同的情况,你是如何对目标表进行初始化的呢?
作者:
shiaijun
时间:
2015-11-8 22:24
郑全 发表于 2015-11-4 22:55
对于表结构不同的情况,你是如何对目标表进行初始化的呢?
我只遇到两种表结构不同的,一、在原表上增加几个字段(例如增加同步时间,更新时间等),在目标端导入完表后,进行增加字段,之后在复制进程中用colmap对应原表字段和新增字段。
二、目标端字段减少,这种情况下通过数据泵导入完表后,新建目标端表,再将导入的表insert到新建表中。
作者:
郑全
时间:
2015-11-9 18:39
不错的方法,还有其他方法吗
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/)
Powered by Discuz! X3.2