情景:
一周前搭建的某业务账号的OGG灾备同步需要重建
目标端拥有源端该业务账号一周前的数据泵导出文件,知晓相应的导出SCN
数据泵导出文件较大,此时此刻再次做数据泵导出传输到目标端耗时较久
源端一周前的归档日志依然存在于原位置,或者可以rman备份恢复
源端操作,停掉抽取和发送进程,删除trail文件:
su - oracle
cd /ggs
./ggsci
dblogin userid ggs,password ggs
stop exrfc
delete extract exrfc
stop dprfc
delete ext dprfc
exit
rm -rf /ggs/dirdat/ec*
目标端操作,停掉删除应用进程和检查点,删除trail文件:
su - oracle
cd /ggs
./ggsci
dblogin userid ggs,password ggs
stop repfc
delete replicat repfc
delete checkpointtable ggs.repfc
exit
rm -rf /ggs/dirdat/rc*
源端操作,重建抽取和发送进程,抽取归档:
su - oracle
cd /ggs
./ggsci
dblogin userid ggs,password ggs
add extract exrfc, tranlog, begin 2018-06-03 08:00
-- 初始化的时间不是 begin now,而是 begin 一个过去的时间戳
-- 这个时间戳的数据会去找对应的归档日志
start exrfc
info exrfc
-- 原配置文件没有删除,不需要重新配置
add ext dprfc, exttrailsource ./dirdat/ec
add rmttrail ./dirdat/rc, ext dprfc, megabytes 500
start dprfc
info dprfc
-- 原配置文件没有删除,不需要重新配置
exit
目标端操作,业务账号重建,应用进程重建:
su - oracle
echo 'drop user test cascade;'|sqlplus / as sysdba
impdp \'/ as sysdba\' directory=dmp dumpfile=test.dmp
cd /ggs
./ggsci
dblogin userid ggs,password ggs
add checkpointtable ggs.repfc
add replicat repfc,exttrail ./dirdat_test/rc,checkpointtable ggs.repfc
start repfc, aftercsn XXXXX
-- 不确定使用alter replicat 命令,跳回最初的trail文件是否有问题
-- alter replicat repfc, extseqno 0, extrba 0
-- 如果丢失了数据泵导出时候的SCN信息,导出日志也销毁了,则可以尝试该方法
-- 也可以使用 Logdump 挖应用进程的日志确认SCN
info repfc
exit
[TOC]