转自红黑联盟Goldengate升级之目标端(replicat端升级

要升级replicat端的原因为:目标端OGG软件版本与源端OGG软件版本不同,在实际生产应用中,经常发现replicat端事务丢失的情况,所以,需要将目标端的OGG软件升级为与源端OGG相同软件版本。

1、升级前环境情况

源端OGG版本11.2.1.0.1

目标端OGG版本11.1.1.1.2

升级前,为了解决源端、目标端OGG版本不一致不能正常同步的问题,在源端抽取Tail file格式时,加了format release 11.1的格式转换命令,在extract与data pump进程中均配置,其配置方式如下:

EXTTRAIL ./dirdat/tr, format release 11.1

2、升级目标

将目标端OGG版本从11.1.0.2升级到与源端一致的11.2.0.1版本

3、升级前准备

3.1 停止源端的extract和datapump进程

GGSCI>stop exttr

GGSCI>stop dpetr

3.2 停止目标端的replicat和mgr进程

GGSCI>stop reptr

GGSCI>stop mgr

3.3 去除extract和datapump进程中的format release参数

因为在extract与datadump进程中都配置有formatrelease 11.1关键字,在目标端升级后,该配置需要取消,但是,取消该配置,并不只是从配置文件中删除这么简单的事,还需要对进程做ETROLLOVER操作,否则进程启动时,会报如下错误:

ERROR OGG-01416 File ./dirdat/tr000008, with format RELEASE 10.4/11.1, does not match

current format specification of RELEASE 11.2.Modify the parameter file to specify format RELEASE 10.4/11.1

or issueETROLLOVER prior to restart.

操作方法:在OGG中以edit paramsextract_name和edit params datadump_name的方式进入进行修改(具体操作:略)。

3.4 对extract与datadump进程做ETROLLOVER操作

因为extract与datadump都修改了format release信息,所以,都需要做ETROLLOVER操作

GGSCI>alter extract exttrETROLLOVER

GGSCI>alter extract dpetrETROLLOVER

3.5 修改源端datapump进程的EXTSEQNO号和EXTRBA号

因为源端的extract-exttr进程执行ETROLLOVER操作后,进程的extseqno和extrba号被重置至下一个extseqno号的第0号extrba,而datapump并不知道extract进程发生了这个变化,仍然守望在extract ETROLLOVER前的extseqno和extrba号上,永远也等不到这个extseqno上有新的RBA变化,造成就无法将extract新抽取到的数据,传递到目标端去。

所以,在extract进程ETROLLOVER后,需要使用“Alterextract group_name EXTSEQNO X, EXTRBA 0”的命令,重置checkpoint位置,datadump进程才能正常的将数据继续传递到远端。

3.5.1 记录下exttr进程ETROLLOVER后的extseqno和extrba号

GGSCI> info exttr, detail

GGSCI (server1) 140> info exttr, detail

EXTRACT EXTTR Initialized 2015-01-30 13:02 Status STOPPED

Checkpoint Lag 00:00:00 (updated 00:00:27 ago)

Log Read Checkpoint Oracle Redo Logs

2015-01-30 13:18:27 Seqno 365, RBA 17822208

SCN 0.17726669 (17726669)

Target Extract Trails:

Remote Trail Name Seqno RBA Max MB

./dirdat/tr 4 0 100

Extract Source Begin End

……

3.5.2 修改datadump进程的extseqno和extrba号

GGSCI>Alter extract dpetr EXTSEQNO 4,EXTRBA 0

3.6 查出datadump进程ETROLLOVER后的Target ExtractTrails的extseqno和extrba号

GGSCI (server1) 160> info dpetr, detail

EXTRACT DPETR Initialized 2015-01-30 13:03 Status STOPPED

Checkpoint Lag 00:00:00 (updated 00:02:10 ago)

Log Read Checkpoint File ./dirdat/tr000003

2015-01-30 13:18:18.000000 RBA 48953966

Target Extract Trails:

Remote Trail Name Seqno RBA Max MB

./dirdat/tr 4 0 100

……

3.7 备份目标端的OGG目录

#cp –ra /u01/ogg /u01/ogg_backup

3.8 记录下目标端replicat的checkpoint信息

GGSCI (server2) 1> info reptr, showch

REPLICAT REPTR Last Started 2015-01-30 13:03 Status STOPPED

Checkpoint Lag 00:00:00 (updated 00:10:36 ago)

Log Read Checkpoint File ./dirdat/tr000003

2015-01-30 13:18:16.296427 RBA 48953996

Current Checkpoint Detail:

Read Checkpoint #1

GGS Log Trail

Startup Checkpoint (starting position in the data source):

Sequence #: 0

RBA: 0

Timestamp: Not Available

Extract Trail: ./dirdat/tr

Current Checkpoint (position of last record read in the data source):

Sequence #: 3

RBA: 48953996

Timestamp: 2015-01-30 13:18:16.296427

Extract Trail: ./dirdat/tr

……

Current Checkpoint为 Sequence #: 3 RBA: 48953996

4、OGG软件升级

4.1 将新版OGG 11.2.1.0.1软件复制到原旧版OGG目录下

$ cp ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip/u01/ogg

4.2 删除OGG目录下的fbo_ggs_Linux_x64_ora11g_64bit.tar文件

fbo_ggs_Linux_x64_ora11g_64bit.tar文件是旧版OGG安装时解压出来的tar文件,新版OGG软件unzip解压时,也会生成此文件,当然也可以使用unzip解压时的覆盖替代手工删除

$rm fbo_ggs_Linux_x64_ora11g_64bit.tar

4.3 在原版OGG目录中安装(解压)新版OGG软件

$unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip

$tar xvf fbo_ggs_Linux_x64_ora11g_64bit.tar

4.4 验证升级成功情况

$cd $OGG

[oracle@server2 u01]$ cd $OGG

[oracle@server2 ogg]$ ./ggsci

Oracle GoldenGate Command Interpreter for Oracle

Version 11.2.1.0.1 OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO

Linux, x64, 64bit (optimized), Oracle 11g on Apr 23 2012 08:32:14

Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved.

GGSCI (server2) 1>

从这里看到,OGG软件版本已经升级至11.2.1.0.1

5、验证升级后replicat的checkpoint是否为一致

5.1 查看升级后replicat的checkpoint是否与升级前一致

GGSCI (server2) 46> info reptr, detail

REPLICAT REPTR Last Started 2015-01-30 13:03 Status STOPPED

Checkpoint Lag 00:00:00 (updated 00:12:58 ago)

Log Read Checkpoint File ./dirdat/tr000003

2015-01-30 13:18:16.296427 RBA 48953996

Extract Source Begin End

./dirdat/tr000003 * Initialized * 2015-01-30 13:18

./dirdat/tr000000 * Initialized * First Record

Current directory /u01/ogg

Report file /u01/ogg/dirrpt/REPTR.rpt

Parameter file /u01/ogg/dirprm/reptr.prm

Checkpoint file /u01/ogg/dirchk/REPTR.cpr

Checkpoint table GOLDENGATE.CHECKPOINT_REPTR_01

Process file /u01/ogg/dirpcs/REPTR.pcr

Stdout file /u01/ogg/dirout/REPTR.out

Error log /u01/ogg/ggserr.log

Current Checkpoint 跟升级前一样,仍为Sequence #: 3 RBA: 48953996,进一步证明升级成功。

6、验证升级后可正常同步数据场景准备

6.1 先记录下源端、目标端数据量为一致

(生产库环境此步可以跳过,因为生产库的表受业务的操作数据不断发生变化,本案例为创建一张专用用于测试升级的表进行测试)

源端

目标端

SQL> select count(*) from goldengate.ogg_upg;

COUNT(*)

----------

2150000

SQL> select count(*) from goldengate.ogg_upg;

COUNT(*)

----------

2150000

源端和目标端数据量一致。

6.2 在目标端replicat进程启动前在源端删除部分数据

SQL> delete goldengate.ogg_upg where rownum <1000001;

1000000 rows deleted.

SQL> commit;

SQL> select count(*) from goldengate.ogg_upg;

COUNT(*)

----------

1150000

7、重建目标端replicat进程

重建replicat进程的原因:ogg_11.1.1.1.2每条replicat进程只有CHECKPOINT一张表,而ogg_11.2.x.x.1每条replicat进程有CHECKPOINT,CHECKPOINT_LOX两张表,所以,如果在升级后,直接启动replicat进程,是无法启动的,会报如下错误:

ERROR OGG-00665 OCI Error describe for query (status = 942-ORA-00942: table or view does not exist), SQL<SELECT a.current_dir, a.seqno, a.rba, a.audit_ts, a.log_csn, a.log_xid, a.log_cmplt_csn, a.log_cmplt_xids, b.log_cmplt_xids FROM GOLDENGATE.CHECKPOINT_REPTR_01 a LEFT JOIN GOLDENGATE.CHECKPOINT_REPTR_01_lox b ON a.group_name = b.group_name AND a.group_key = b.group_key AND a.log_cmplt_csn = b.log_cmplt_csn WHERE a.group_name = 'REPTR' AND a.group_key = 2810015614>.

2015-01-28 05:12:59 ERROR OGG-01668 PROCESS ABENDING.

提示表不存在,这张表是指:GOLDENGATE.CHECKPOINT_REPTR_01_lox表(CHECKPOINT_LOX表),重建replicat的最终目的是让在重建进程时,自动将两张checkpoint表都自动创建起来。

7.1 删除replicat进程与checkpoint表

GGSCI>dblogin userid goldengate,password goldengate

GGSCI>delete replicat reptr

GGSCI>delete checkpointtable GOLDENGATE.CHECKPOINT_REPTR_01

7.2 重新建立replicat进程

GGSCI>dbloginuserid goldengate, password goldengate

GGSCI>add checkpointtable goldengate.checkpoint_reptr_01

GGSCI>add replicat reptr, exttrail ./dirdat/tr,checkpointtable goldengate.checkpoint_reptr_01

到这一步,replicat启动后,还是无法继续应用源端投递过来的trail的,因为源端的datapump进程做过ETROLLOVER了,所以需要手工修改replicat的sequence#和RBA号到与datadump进程的target extract trails中的seqno和RBA一致。

7.3 修改目标端replicat的extseqno和extrba号

根据上面一步,查出的源端的datadump进程的remotetrail file的seqno号和RBA,决定replicat要更改的extseqno和extrba号

GGSCI (server2) 37> Alter replicat reptrEXTSEQNO 4, EXTRBA 0

7.4 查看新建立的replicat进程的SEQ#和RBA号

GGSCI(server2) 27> info reptr, showch

GGSCI (server2) 3> info reptr, showch

REPLICAT REPTR Initialized 2015-01-30 13:39 Status STOPPED

Checkpoint Lag 00:00:00 (updated 00:00:07 ago)

Log Read Checkpoint File ./dirdat/tr000004

First Record RBA 0

Current Checkpoint Detail:

Read Checkpoint #1

GGS Log Trail

Startup Checkpoint (starting position in the data source):

Sequence #: 4

RBA: 0

Timestamp: Not Available

Extract Trail: ./dirdat/tr

Current Checkpoint (position of last record read in the data source):

Sequence #: 4

RBA: 0

Timestamp: Not Available

Extract Trail: ./dirdat/tr

……

Start checkpoint 的sequence#和RBA号已经通过手工,都定位到了源端ETROLLOVER后的状态

Current checkpoint的sequence#和RBA号已经通过手工,也都定位到了源端ETROLLOVER后的状态

7.5 查看checkpoint表的数据内容

SQL>select * from goldengate.checkpoint_reptr_01;

No rows selected

SQL>select * from goldengate.checkpoint_reptr_01_lox;

No rows selected

这时,两个checkpoint表中的数据还是空的,待replicat启动运行后,进行状态信息就会写入到checkpoint表中

8、启动源端和目标端进程

8.1 启动目标端的replicat和mgr进程

GGSCI>start mgr

GGSCI>start reptr

8.2 启动源端的datapump进程

GGSCI>start dpetr

9、验证是否能继续同步数据

此步最重要的,是要验证在升级时间时,源端所做的操作能否同步到目标库中来。本案例在升级过程中,对goldengate.ogg_upg表删除了1000000行数据。

9.1 查看目标端goldengate.ogg_upg表的数据变化

源端

目标端

SQL> select count(*) from goldengate.ogg_upg;

COUNT(*)

----------

2050000

SQL> select count(*) from goldengate.ogg_upg;

COUNT(*)

----------

2050000

9.2 目标端查看checkpoint表内check状态

select * from goldengate.checkpoint_reptr_01

-------------------------------------------------

REPTR 2149948420 4 19280017 2015-01-30 13:55:59.368501 2015/1/30 13:36:43 2015/1/30 14:01:01 /u01/ogg 17929533 7.16.20512 17929533 7.16.20512 1

从上面两步看来,升级后replicat正常的,接着升级前的状态在同步数据。

Goldengate升级之目标端(replicat端)升级的更多相关文章

  1. GPU端到端目标检测YOLOV3全过程(下)

    GPU端到端目标检测YOLOV3全过程(下) Ubuntu18.04系统下最新版GPU环境配置 安装显卡驱动 安装Cuda 10.0 安装cuDNN 1.安装显卡驱动 (1)这里采用的是PPA源的安装 ...

  2. GPU端到端目标检测YOLOV3全过程(中)

    GPU端到端目标检测YOLOV3全过程(中)   计算机视觉初级部分知识体系                       总结了一下自己在计算机视觉初级部分的知识框架,整理如下.  个人所学并不全面( ...

  3. GPU端到端目标检测YOLOV3全过程(上)

    GPU端到端目标检测YOLOV3全过程(上) Basic Parameters: Video: mp4, webM, avi Picture: jpg, png, gif, bmp Text: doc ...

  4. pytorch实现yolov3(5) 实现端到端的目标检测

    torch实现yolov3(1) torch实现yolov3(2) torch实现yolov3(3) torch实现yolov3(4) 前面4篇已经实现了network的forward,并且将netw ...

  5. BPM端到端流程解决方案分享

    一.需求分析 1.企业规模的不断发展.管理水平的不断提升,通常伴随着企业各业务板块管理分工更细.更专业,IT系统同样越来越多.越来越专 业化.不可避免的,部门墙和信息孤岛出现了,企业的流程被部门或者I ...

  6. 详解APM数据采样与端到端

    高驰涛 云智慧首席架构师 据云智慧统计,APM从客户端采集的性能数据可能占到业务数据的50%,而企业要做到从Request到Response整个链路中涉及到的所有数据的准确采集,并进行有效串接,进而实 ...

  7. [DeeplearningAI笔记]ML strategy_2_4端到端学习

    机器学习策略-端到端学习 End-to-end deeplearning 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.9 什么是端到端学习-What is End-to-end dee ...

  8. 【OCR技术系列之七】端到端不定长文字识别CRNN算法详解

    在以前的OCR任务中,识别过程分为两步:单字切割和分类任务.我们一般都会讲一连串文字的文本文件先利用投影法切割出单个字体,在送入CNN里进行文字分类.但是此法已经有点过时了,现在更流行的是基于深度学习 ...

  9. 脚手架vue-cli系列五:基于Nightwatch的端到端测试环境

    不同公司和组织之间的测试效率迥异.在这个富交互和响应式处理随处可见的时代,很多组织都使用敏捷的方式来开发应用,因此测试自动化也成为软件项目的必备部分.测试自动化意味着使用软件工具来反复运行项目中的测试 ...

随机推荐

  1. [转]理解和配置 Linux 下的 OOM Killer

    最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有位客户抱怨 VPS 经常死机,登陆到终端看了一下,都是常见的 Out of memory 问题.这通常是因为某时刻应用程序大量请求内存导致系统 ...

  2. 接口测试与Postman

    阅读目录 1.接口测试简介 1.1 什么是接口测试  1.2 接口测试的必要性 1.3 接口测试流程 1.4 接口文档 1.5 接口测试用例设计 1.6 接口测试用例模板 2.Postman 2.1 ...

  3. let、var、const用法区别

    1.var var 声明的变量为全局变量,并会进行变量提升:也可以只声明变量而不进行赋值,输出为undefined,以下写法都是合法的. var a var a = 123  2.let let 声明 ...

  4. [jzoj 5781]【NOIP提高A组模拟2018.8.8】秘密通道 (最短路)

    传送门 Description 有一副nm的地图,有nm块地,每块是下列四种中的一种: 墙:用#表示,墙有4个面,分别是前面,后面,左面,右面. 起点:用C表示,为主角的起点,是一片空地. 终点:用F ...

  5. [luogu1447 NOI2010] 能量采集 (容斥原理)

    传送门 Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. 栋栋的 ...

  6. web开发如何使用高德地图API(二)结合输入提示和POI搜索插件

    说两句: 以下内容除了我自己写的部分,其他部分在高德开放平台都有(可点击外链访问). 我所整理的内容以实际项目为基础希望更有针对性的,更精简. 点击直奔主题. 准备工作: 首先,注册开发者账号,成为高 ...

  7. Vue.js教程—1.介绍和安装

    Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架.Vue 只关注视图层, 采用自底向上增量开发的设计.Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定 ...

  8. 使用大白菜U盘进入PE后再次重启电脑会留后门的清理方法

    使用大白菜U盘进入PE后再次重启电脑会留后门,这个后门主要是自动下载安装一些软件,比如金山毒霸等. 清除方法: 1.每次用完PE重启前,清理以下地方: ①c:\Windows\xxxxx.exe(查看 ...

  9. installed jre指向jdk而非jre位置&

    1.eclipse菜单 - Window - Preferences- Java - Installed JREs 将配置的JRE定位到JDK,例如JRE home:D:\Program Files ...

  10. UVa 10297 - Beavergnaw

    题目:假设一个底边与高为D的圆柱切去一部分使得.剩下的中心是底边与高为d的圆柱. 和以他们底面为上下地面的圆锥台,已知切去的体积,求d. 分析:二分,计算几何.圆锥台体积公式:π*(r^2+r*R+R ...