GoldenGate自身不提供异常处理的程序。在默认情况下,若Replicat进程遭遇操作故障都会导致其异常终止(ABEND),同时将会回滚事务到最近的检查点。在生产环境中这往往并不理想。当我们在做无缝的数据迁移时会用到HANDLECOLLISIONS和NOHANDLECOLLISIONS参数,这2个参数控制了Replicat是否会试图解决重复记录和缺失记录的错误,但这错误真的应该被忽略吗?这个问题只有熟悉应用的维护人员才能解答,我们需要做的是在出现这类错误后及时记录错误的相关信息。
这就要求我们在Replicat中配置相关的意外处理程序,该程序用以记录是哪个Replicat进程,是那些数据引起了错误的产生。
接下来我们会尝试建立不同的意外处理程序,用以捕获复制过程中Oracle出现的相关错误,但在这些故障发生后我们允许Replicat继续它的工作:
1. 首先我们要做的是创建用以记录错误相关信息的错误记录表: SQL> conn maclean/maclean Connected. SQL> create table exception_log 2 ( replicat_name varchar2(10), 3 table_name varchar2(100), 4 errno number, 5 dberrmsg varchar2(4000), 6 optype varchar2(20), 7 errtype varchar2(20), 8 logrba number, 9 logposition number, 10 committimestamp timestamp); Table created. SQL> alter table exception_log add primary key (logrba,logposition,committimestamp); Table altered. 以上意外处理记录表应建立于Goldengate管理员账户名下,可用以记录所有Replicat的意外数据。 2.修改各Replicat的参数文件添加相关的意外处理程序: . . . → Read More: 配置GoldenGate意外处理及记录Oracle错误信息(1)
最新评论