OGG(ORACLE GOLDENGATE)使用手册

来源:互联网 发布:华为mate9下载软件 编辑:程序博客网 时间:2024/05/16 17:44

OGG(ORACLE GOLDENGATE)使用手册

一、OGG原理

OGG是一种基于日志的结构化数据复制软件,通过捕获源数据库online redo log (在线重做日志)或archive log(归档日志)获得数据变化,形成tail(队列文件 ),再将这些tail通过网络协议,传输到目标数据库,目标端通过解析,插入至目标端数据库,从而实现源端与目标端数据同步。

二、目录结构

OGG部署安装完成后,在glodengate目录下,会生成一些目录文件,提供我们在配置参数或者便利我们日常运维时使用,常用主要目录文件有以下几个,2-1如图所示:

 

图2-1 OGG安装目录结构

1、dirchk:存放由extract抽取进程和replicat复制进程创建的checkpoint(检查点)文件;

2、dirdat:存放extract进程创建的抽取文件,等待被复制;

3、dirdef:存放生成的源端或目标端数据定义文件

4、dirrpt:进程报告文件,进程挂查断时,可以查看此文件,找出错误报告,也可在./ggsci下,用view report查看错误日志;

5、dirprm:存放配置参数文件,修改参数时,可以直接修改本文件,也可以在./ggsci下,用edit param 修改;

6、dirtmp:临时文件目录,用于长事务处理;

三、主要进程

OGG数据的复制主要是通过进程实现控制的,不同进程负责不同职能,进程中配置了端口号、数据库表信息、是否自启等一些我们常用的参数。进程状态主要有四种:STOPPED(正常停止)、STARTING(正在启动)、RUNNING(正在运行)、ABENDED(异常中断,此情况需看日志报错信息,排查错误)。OGG进程主要分为以下四种:

1.Manager进程:manager进程是配置在源端或者目标有且只有一个的总控进程,用于开启、停止、监控配置在服务器上的其他进程。此进程只有STOPPED和RUNNING两种状态,如图3-1所示;

 

图3-1 mgr进程信息

2.Extract(抽取)进程:部署在源端,用于捕获数据表或日志中的数据文件;

3.Pumpbam(投递)进程:部署在源端,把本地的trail(队列文件),通过TCP/IP协议,投递到目标端。

4.Replicat(复制)进程:部署在目标端,把远端trail解析成数据库语句,应用到目标端数据库中去。

四、 OGG常用命令

OGG常用命令放在ggsci(goldengate software command interface)里面,命令对大小写不敏感,我们日常运维主要用到命令有以下几种:

1.info all:查看配置在 服务器上所有进程的信息,Program(所属进程),Status(运行状态),Group(进程名称),Lag at Chkpt(延迟时间),Time Since Chkpt(检查点信息),如图4-1所示:

 

图4-1 info all显示信息

2.info 进程名:查看进程详细信息,包括进程最后启动时间 、运行状态、延迟信息、检查点的读取信息以及RAB号,如图4-2所示:

 

图4-2 info extbam 显示信息

3.stats 进程名:查看进程处理的记录数,如图4-3所示:

 

图4-3 stats repbuf显示信息

4.stats 进程名table 表名:查看某一个进程某一张表的具体进程处理数,如图4-4所示:

 

图4-4 stats repbuf table ODS_YYJC_BUF.IM_PART_ARMY_BASIINFO显示信息

5.start 进程名:当进程停止或者异常中断恢复时,可以使用这个命令让进程正常运行;

6.stop 进程名:当我们对某一个进程里的参数进行变动时,使用此命令先停止需要变动的进程,也可使用send,进程名 forcestop或者查找此进程的进程PID号,用kill -9结束此进程,除非特殊情况,一般不建议使用。停进程是建议先用info all查看进程延时情况,延时太大,停止可能造成当前交易数据丢失;

7.view param 进程名:查看进程里面参数配置,如图4-5所示:

 

图4-5 view param extbam显示信息

 

8.edit param 进程名:修改进程里面参数配置:

9.view report 进程名:查看进程运行报告,进程运行异常中断,可以查看此报告,查找错误信息,从而解决问题,如图4-6所示:

 

图4-6 view report extbam显示信息

10.lag 进程名:可以查看详细的延时信息,如图4-7所示:

 

4-7 lag repbuf显示信息

11.view ggsevt:查看OGG日志文件,包括GGSCI 命令的历史记录、GoldenGate 进程的启动与停止、已执行的处理、发生的错误信息和警告消息如图4-8所示:

 

4-8 view ggsevt显示信息

12.info 进程名 showch:此命令可以查看到详细的关于checkpoint 的信息,用于查看OGG进程处理过的事务记录,如图4-9所示:

 

图4-9 info repbuf showch显示信息

OGG命令之间的运用灵活多变,一些命令中我们可以使用通配符(*)方便我们日常的运维,如stop *,start ext*等。

 

五、OGG常见错误处理

OGG在使用的过程中,会遇到各种各样的问题,在出现问题是我们可以在命令界面使用view report 进程名 查看错误信息,或者到OGG安装目录./dirrpt下 找相对应的文件,找出”ERROR”,快速处理问题所在,以下是OGG运维中我们常见的错误及解决方案:

1.ERROR OGG-01232:TCP/IP error 73(Connection reset by per):此问题出现在浙江UPS主机检修时,投递进程网络中断造成。

处理方案:用ping 主机IP /t命令,测试主机IP与本机网络连接状况,ping通后,start即可;

2.ERROR OGG-01172: discard file(./dirrpt/discard_BF.dsc) exceeded max bytes(100000):总部下发复制进程,由于discardfile配置的megabytes 过小导致。

处理方案:1).找到相应目录下的文件,删除文件里面内容,防止意外可以进行先备份,删除时最好保留前100行内容,start即可;

   2).如找不到目录,可以使用edit param 进程名,修改discard_BF.dsc后的参数,把append修改成purge,start即可,如果运行成功,一段时间后把参数修改回append即可;

3.ERROR OGG-01705:由于复制进程宕机,导致RBA号错乱。

处理方案:用logdump来确定最后异常的数据的rba,用alter语句修改,把RBA号回归正常;

4.RRROR: OGG-01296:01296错误在我们日常运维复制进程很常见,造成这个错误的原因也有很多,如源端进行了表结构更改,但目标端没有,OGG内存空间使用率达到100%等。

处理方案:此问题需要具体问题具体对待,我们只能根据大量的日志文件分析出具体的问题,进行解决。

OGG错误多种多样,不同进程同一种错误,错误编号也不相同。在运维中我们需要根据具体的问题,提出不同解决方案,如果是数据问题,我们还需与业务部门进行沟通解决。

六、OGG中间件GOLDENGATE VERIDATA的使用

veridata是 OGG的一款中间件,主要用于数据库源端与目标端数据比对。我们需要把比对的源端表与目标端表配置在此工具上,进行数据校验操作。

在比对的过程中,经常会遇到两种情况:

1.源端数据与目标端数据量虽然一致,但是数据内容不同,这可能是源端与目标端数据字段精度不同导致,有时字符集设置不同,会导致数据内容出现乱码情况,如图6-1所示:

 

图6-1 veridata数据比对内容不一致

2.源端与目标端数据量不一致,导致这个问题的原因是由于OGG没有捕获在源端数据日志文件导致,如图6-2所示:

 

图6-2 veridata比对数据量不一致

这两种问题的出现我们需要对目标端数据库进行表的初始化操作,第一种情况如果我们对数据内容要求不高,只要求数据量的话,可以在veridata工具中把所不一致的字段进行屏蔽。第二种问题需要进行初始化操作,对目标端进行初始化操作的方法多种,我们目前使用一种,步骤如下:

1.停止复制进程,用info 进程名 观看进程是否正常停止;

2.用sqlplus / as sysdba进入源端数据库,从源端用select to_char(CURRENT_SCN) from v$database获取当前数据库的SCN号,如图6-3所示:

 

图6-3 获取源端SCN号

3.用sqlplus / as sysdba进入目标端数据库,使用insert into 目标端用户名.表名(字段名) select (对应字段名) from 源端用户名.源端表名@源端实例名 as of scn’从源端获取的SCN’,必须commit数据才会生效,如图6-4所示:

 

图6-4 目标端插入数据

4.保存,用edit param 进程名 找到对应表,替换新的SCN,保存,退出,如图6-5所示:

 

图6-5 修改进程配置

5.使用view param 进程名 查看是否配置成功;

6.启动复制进程;

7.进行数据比对。


0 0