关于oracle ogg复制进程挂起的处理

前端之家收集整理的这篇文章主要介绍了关于oracle ogg复制进程挂起的处理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

针对oggP进程挂起的处理步骤(以内网为例,内网操作步骤一致)

查出问题表:

1、首先登陆ogg服务器

2、用命令 su - oracle却换到oracle用户

3、用命令 cd ogg进入到ogg目录

4、用命令 ./ggsci进入到ogg命令行界面

5、用命令 info all查看ogg进程运行情况

6、用命令 view report xxxx可以查看某个进入的运行信息日志 (如何那个进程挂起了就看那个的) 例如view report r_in

7、从日志信息中查看报错的信息,如下所示:

2016-11-16 14:43:23 WARNING OGG-01004 Aborted grouped transaction on 'NEWGDLV.T_O_CERTIFICATEINFO',Database error 1403 (OCI Error ORA-01403: no data foun

d,sql <UPDATE "NEWGDLV"."T_O_CERTIFICATEINFO" SET "CFI_PRINTCERTDATE" = :a1,"CFI_PRINTSTATUS" = :a2,"CFI_SENDSTATUS" = :a3,"CFI_MODTIME" = :a4,"CFI_MODUSER

ID" = :a5,"CFI_MODUSER" = :a6 WHERE "CFI_ID" = :b0>).

2016-11-16 14:43:23 WARNING OGG-01003 Repositioning to rba 459579136 in seqno 31.

2016-11-16 14:43:23 WARNING OGG-01154 sql error 1403 mapping NEWGDSFLV.T_O_CERTIFICATEINFO to NEWGDLV.T_O_CERTIFICATEINFO OCI Error ORA-01403: no data fou

nd,"CFI_MODUSE

RID" = :a5,"CFI_MODUSER" = :a6 WHERE "CFI_ID" = :b0>.

8、这里我们可以看到NEWGDLV.T_O_CERTIFICATEINFO这个表有报错

9、报错原因可能有:

a、该表没有主键

b、该表没有附加日志


10、我们通过数据库可以看到这个表是有主键的。那么原因就是没有附加日志造成的了

在对应进程中排除问题表:

1、排除影响复制复制进程的表,用命令:edit param r_out 结果显示如下图:

然后用命令:edit param r_out 编辑这个参数配置文件按字母i进入编辑状态 在OBEY语句前面加上影响复制进程对应的目标表即NEWGDSFLV.T_O_CERTIFICATEINFO,加上的完整语句如下:

MAPEXCLUDENEWGDSFLV.T_O_CERTIFICATEINFO

按下esc键然后依次键入:wq保存退出

重启ogg

1、停止所有ogg进程,用命令stop *

2、启动所有ogg进程,用命令start *

为问题表添加附加日志:

1、在ogg的命令界面执行命令view param e_in显示如下信息:

extract E_IN

SETENV (ORACLE_SID="exdb")

SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

Userid ggs,PASSWORD AACAAAAAAAAAAAIAAGLHJDWAVIWIIBYE,BLOWFISH,ENCRYPTKEY DEFAULT

--TRANlogoPTIONS ASMUSER SYS@ASM,ASMPASSWORD oracle

REPORT AT 01:59

REPORTROLLOVER AT 02:00

CACHEMGR,CACHESIZE 256MB

TRANlogoPTIONS EXCLUDEUSER GGS

EXTTRAIL /ora_data/dirdat/in

NUMFILES 3000

EOFDELAYCSECS 30

GETTRUNCATES

TRANlogoPTIONS DBLOGREADER

DYNAMICRESOLUTION

BR BRINTERVAL 2H,BRDIR BR

GETUPDATEBEFORES

NOCOMPRESSDELETES

WARNLONGTRANS 3H,CHECKINTERVAL 3M

OBEY /oracle/ogg/dirprm/e_in.txt


2登录数据库 dblogin Userid ggs,ENCRYPTKEY DEFAULT(这行是从上面结果中复制过来的)

Successfully logged into database.

3、查看目标表是否有附加日志 info trandata NEWGDSFLV.T_O_CERTIFICATEINFO

Logging of supplemental redo log data is disabled for table NEWGDSFLV.T_O_CERTIFICATEINFO.

4、结果显示是没有附加日志的,用命令为该表添加附加日志add trandata NEWGDSFLV.T_O_CERTIFICATEINFO。删除附加日志用命令:deletetrandataxxx.yy

Logging of supplemental redo data enabled for table NEWGDSFLV.T_O_CERTIFICATEINFO.

5、查看附加日志是否添加成功,info trandata NEWGDSFLV.T_O_CERTIFICATEINFO

Logging of supplemental redo log data is enabled for table NEWGDSFLV.T_O_CERTIFICATEINFO.

Columns supplementally logged for table NEWGDSFLV.T_O_CERTIFICATEINFO: CFI_ID.


6、显示附加日志添加成功了!

初始化数据:

1、初始化内外网对应问题的数据库数据,该表是以内网为准,所以我们备份内网对应的该表然后清空内网原始的表

停止所有ogg进程:

1、停止所有ogg进程,用命令stop *

恢复被排除的表:

1恢复被排除的表(删掉或注释之前排除表的那行语句即可)

启动所有ogg进程:

1、启动所有ogg进程,用命令start *

2、外网也以同样的方式处理

导入数据:

1、从备份表导入数据到被清空的原始表,然后去外网查看数据是否有同步

2、通过数据库查看,我们看到数据已经成功同步到外网了

总结:

ogg出现某一进程因某张表异常挂起之后总体处理步骤如下:

1、查出这张表

2、在对应进程的配置文件中排除问题表

3、重启ogg

4、为问题表添加附加日志或者主键

5、初始化数据

6、停止ogg所有进程

7、恢复被排除的问题表

8、启动ogg所有进程

9、导入数据,检查同步是否生效

猜你在找的Oracle相关文章