因 Oracle 19C 目标端ASM 空间紧张,计划将目标端通过mount挂载的/ogg目录移动到 根目录下,并创建同样/ogg目录。
在操作前,首先在目标端将ogg mgr及应用进程都停了。然后对/ogg目录打tar包。并解压到/ogg_bak目录下,修改了属组和权限,并将目标端OGG MGR进程及应用进程都重新启动。
然而目标端应用进程启动没多久,查看源端进程当前状态,发现源端投递进程APPEND了,通过其报错日志显示如下:

导致源端和目标端无法正常同步,再次手工重启源端投递进程依然报次错误。
导致ogg无法同步的原因就在于在目标端将MGR进程和应用进程都停了后,源端投递进程依然在往源端写,而此时目标端打的tar包未将源端写的信息同时拷贝过去,导致源端和目标端无法接应上,最终无法同步。
首先根据查询到的资料,进行了如下处理:
在源端执行如下操作:
alter extract EXA etrolloveralter extract EXA, tranlog, begin 2021-12-13 11:00alter extract exa,extseqno 0,extrba 0
并将源端和目标端 dirdat目录下的相关内容都删除,然后按照之前曾在源端ogg心跳表里查询到的 scn号,在目标端执行start rta,aftercsn 695866867417
发现源端和目标端未建立同步。
后来又尝试将源端投递进程删除,再手工执行 ADD EXTRACT 操作依然未能成功。
后来就听从潘工建议将源端投递进程及抽取进程都delete,目标端应用进程也delete,并且将两端dirdat目录下的文件都删除。
在源端执行如下操作:
ADD EXTRACT exa,TRANLOG,BEGIN 2021-12-13 10:30,THREADS 3 --此时间参照源端OGG心跳表查询到的SCN 对应时间,并将时间往前退役了一段
ADD EXTTRAIL ./dirdat/ea, EXTRACT exa MEGABYTES 500
ADD EXTRACT dpa EXTTRAILSOURCE ./dirdat/ea
ADD RMTTRAIL /ogg/dirdat/ra, EXTRACT dpa
然后分别启动源端抽取进程及投递进程
目标端执行
ADD EXTRACT dpa EXTTRAILSOURCE ./dirdat/ea
ADD RMTTRAIL /ogg/dirdat/ra, EXTRACT dpa
然后在目标端执行 start rta,aftercsn 695866867417 --此SCN号来源于源端OGG心跳表查询到SCN信息
观察源端和目标端OGG日志,未再有报错,同步正常。
如迁移目标端/ogg目录,停止目标端MGR进程和应用进程前,一定要先将源端投递进程停止,避免往目标端写入,导致最后两段信息无法接应上。
原文作者:尚雷的驿站;如有侵权,请联系管理员删除。