RAC环境中threads变更后如何确保goldengate继续正常复制
当rac节点变更的时候,比如我们添加或者删除了集群中的节点,理所当然会对节点对应的log threads进行添加或者删除,但会造成goldengate的map log threads的顺序发生紊乱。在进行这一类行为变更的时候,特别需要注意goldengate端也需要进行特别处理。
比如,在节点添加之前,goldengate map log threads顺序如下(数据库log thread在后,下同):
1—>1 (假设是sequence 100,rba 1001)
2—>2(假设是sequence 88,rba 3009)
当添加节点后,map log threads的顺序会变成:
1—->3(sequence 88,rba 3009)
2—->1(sequence 100,rba 1001)
3—->2(new)
当ogg重新工作的时候,因为此时map的顺序发生了变化,因此会造成抽取进度出现问题。
如果有足够的处理时间,简单而又安全的做法是停止源端应用,删除extract进程后,重新配置新的extract进程并从当前开始抽取。但在这段时间内,所有的操作需确保在应用已经停止服务的前提下,否则数据将造成丢失或者不一致,需要手工处理或者重新初始化。
如果应用无法停机呢?我们可以将新建的extract进度修改成停止之前的进度状态,从而避免操作过程中应用的停机行为。
需要我们特别记录的checkpoint有:Current Checkpoint、Recovery Checkpoint以及Write Checkpoint
1.正常停止extract(略)
2.获得extract的checkpoint记录
GGSCI (node1) 21> info ext_r1 showch
EXTRACT EXT_R1 Last Started 2011-08-16 22:35 Status STOPPED
Checkpoint Lag 00:00:00 (updated 00:06:21 ago)
Log Read Checkpoint Oracle Redo Logs
2011-08-17 03:32:48 Thread 1, Seqno 62, RBA 29890576
Log Read Checkpoint Oracle Redo Logs
2011-08-17 03:32:34 Thread 2, Seqno 42, RBA 18674704Current Checkpoint Detail:
Read Checkpoint #1
Oracle RAC Redo Log
Startup Checkpoint (starting position in the data source):
Thread #: 1
Sequence #: 61
RBA: 32112656
Timestamp: 2011-08-16 22:34:53.000000
SCN: 0.3743980 (3743980)
Redo File: +DATA1/my/onlinelog/group_1.261.758327805Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
Thread #: 1
Sequence #: 62
RBA: 29890576
Timestamp: 2011-08-17 03:32:48.000000
SCN: 0.3811675 (3811675)
Redo File: +DATA1/my/onlinelog/group_2.262.758327805Current Checkpoint (position of last record read in the data source):
Thread #: 1
Sequence #: 62
RBA: 29890576
Timestamp: 2011-08-17 03:32:48.000000
SCN: 0.3811675 (3811675)
Redo File: +DATA1/my/onlinelog/group_2.262.758327805BR Previous Recovery Checkpoint:
Thread #: 1
Sequence #: 0
RBA: 0
Timestamp: 2011-08-16 22:35:09.416136
SCN: Not available
Redo File:BR Begin Recovery Checkpoint:
Thread #: 1
Sequence #: 62
RBA: 22437392
Timestamp: 2011-08-17 02:35:11.000000
SCN: 0.3798208 (3798208)
Redo File:BR End Recovery Checkpoint:
Thread #: 1
Sequence #: 62
RBA: 24120320
Timestamp: 2011-08-17 02:35:16.000000
SCN: 0.3801192 (3801192)
Redo File:Read Checkpoint #2
Oracle RAC Redo Log
Startup Checkpoint (starting position in the data source):
Thread #: 2
Sequence #: 41
RBA: 25323024
Timestamp: 2011-08-16 22:34:40.000000
SCN: 0.3743980 (3743980)
Redo File: +DATA1/my/onlinelog/group_3.266.758328125Recovery Checkpoint (position of oldest unprocessed transaction in the data source):
Thread #: 2
Sequence #: 42
RBA: 18674704
Timestamp: 2011-08-17 03:32:34.000000
SCN: 0.3811674 (3811674)
Redo File: +DATA1/my/onlinelog/group_4.267.758328125Current Checkpoint (position of last record read in the data source):
Thread #: 2
Sequence #: 42
RBA: 18674704
Timestamp: 2011-08-17 03:32:34.000000
SCN: 0.3811674 (3811674)
Redo File: +DATA1/my/onlinelog/group_4.267.758328125BR Previous Recovery Checkpoint:
Thread #: 2
Sequence #: 0
RBA: 0
Timestamp: 2011-08-16 22:35:09.416136
SCN: Not available
Redo File:BR Begin Recovery Checkpoint:
Thread #: 2
Sequence #: 42
RBA: 15242240
Timestamp: 2011-08-17 02:35:02.000000
SCN: 0.3800455 (3800455)
Redo File:BR End Recovery Checkpoint:
Thread #: 2
Sequence #: 42
RBA: 15242240
Timestamp: 2011-08-17 02:35:02.000000
SCN: 0.3800455 (3800455)
Redo File:Write Checkpoint #1
GGS Log Trail
Current Checkpoint (current write position):
Sequence #: 3
RBA: 51132
Timestamp: 2011-08-17 03:32:48.695373
Extract Trail: /opt/ggs/dirdat/r1/exHeader:
Version = 2
Record Source = A
Type = 6
# Input Checkpoints = 2
# Output Checkpoints = 1File Information:
Block Size = 2048
Max Blocks = 100
Record Length = 4096
Current Offset = 0Configuration:
Data Source = 3
Transaction Integrity = 1
Task Type = 0Status:
Start Time = 2011-08-16 22:35:10
Last Update Time = 2011-08-17 03:32:48
Stop Status = G
Last Result = 402
3.新建extract进程。
GGSCI (node1) 34> ADD EXT ext_r1, BEGIN NOW, TRANLOG, THREADS 3
2011-08-17 03:52:26 INFO OGG-01749 Successfully registered EXTRACT EXT_R1 to start managing log retention at SCN 3826107.
EXTRACT added.
4.修改current checkpoint (注意每个thread都要修改)
GGSCI (node1) 35> alter EXTRACT ext_r1, TRANLOG, EXTSEQNO 62, EXTRBA 29890576,thread 1
EXTRACT altered.
GGSCI (node1) 36> alter EXTRACT ext_r1, TRANLOG, EXTSEQNO 42, EXTRBA 18674704,thread 2
EXTRACT altered.
5. 修改recovery checkpoint (注意每个thread都要修改)
GGSCI (node1) 42> ALTER EXTRACT ext_r1, IOEXTSEQNO 62, IOEXTRBA 29890576,thread 1
GGSCI (node1) 42> ALTER EXTRACT ext_r1, IOEXTSEQNO 42, IOEXTRBA 18674704,thread 2
6. 修改exttrail或者rmttrail的write checkpoint
GGSCI (node1) 47> ADD EXTTRAIL /opt/ggs/dirdat/r1/ex,SEQNO 3, RBA 51132, EXTRACT ext_r1
EXTTRAIL added.
7. 验证checkpoint是否修改成功(使用showch,略)
8.重新启动extract(略)
RAC环境中threads变更后如何确保goldengate继续正常复制的更多相关文章
- 怎么发现RAC环境中'library cache pin'等待事件的堵塞者(Blocker)?
怎么发现RAC环境中的'library cache pin'等待事件的堵塞者(Blocker) 參考自 How to Find the Blocker of the 'library cache pi ...
- 【翻译自mos文章】在11gR2 rac环境中,文件系统使用率紧张,而且lsof显示有非常多oraagent_oracle.l10 (deleted)
在11gR2 rac环境中,文件系统使用率紧张.而且lsof显示有非常多oraagent_oracle.l10 (deleted) 參考原文: High Space Usage and "l ...
- ReactJS antd 环境中项目上传图片后压缩(lrz的使用)
lrz说明 ( github地址 :https://github.com/think2011/localResizeIMG ) 用于:在客户端压缩好要上传的图片可以节省带宽更快的发送给后端,特别适合在 ...
- Oracle rac集群环境中的特殊问题
备注:本文摘抄于张晓明<大话Oracle RAC:集群 高可用性 备份与恢复> 因为集群环境需要多个计算机协同工作,要达到理想状态,必须要考虑在集群环境下面临的新挑战. 1.并发控制 在集 ...
- Oracle RAC 环境下的 v$log v$logfile
通常情况下,在Oracle RAC 环境中,v$视图可查询到你所连接实例的相关信息,而gv$视图则包含所有实例的信息.然而在RAC环境中,当我们查询v$log视图时说按照常理的话,v$log视图应当看 ...
- Oracle 11g RAC 环境下单实例非缺省监听及端口配置
如果在Oracle 11g RAC环境下使用dbca创建单实例数据库后,Oracle会自动将其注册到缺省的1521端口及监听器.大多数情况下我们使用的为非缺省监听器以及非缺省的监听端口.而且在Orac ...
- Oracle RAC环境下定位并杀掉最终阻塞的会话
实验环境:Oracle RAC 11.2.0.4 (2节点) 1.模拟故障:会话被级联阻塞 2.常规方法:梳理找出最终阻塞会话 3.改进方法:立即找出最终阻塞会话 之前其实也写过一篇相关文章: 如何定 ...
- RAC环境修改参数生效测试
本篇文档--目的:实验测试在RAC环境下,修改数据库参数与单实例相比,需要注意的地方 --举例说明,在实际生产环境下,以下参数很可能会需要修改 --在安装数据库完成后,很可能没有标准化,初始化文档,没 ...
- Oracle管理监控 之 rac环境密码文件管理
密码文件作用: 密码文件用于dba用户的登录认证. dba用户:具备sysdba和sysoper权限的用户,即oracle的sys和system用户. RAC环境中多个节点的密码文件应该保证一致,否则 ...
随机推荐
- Python学习—数据库篇之SQL补充
一.SQL注入问题 在使用pymysql进行信息查询时,推荐使用传参的方式,禁止使用字符串拼接方式,因为字符串拼接往往会带来sql注入的问题 # -*- coding:utf-8 -*- # auth ...
- DNS 原理
一.DNS 是什么? DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址.你可以把它想象成一本巨大的电话本. 举例来说,如果你要访问域名math.stac ...
- Linux命令面试集
Linux:免费开源,多用户多任务,衍生出很多附属版本,例如常用的RedHat... 常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a ...
- L2-018 多项式A除以B(模拟)
这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出一个非零多项式,先给出A,再给出B.每行的 ...
- python—集合
ps:非空即真,非0即真(空,0都返回False) pwd=input('pwd:').strip() if pwd: #三种判断为空的方法(直接判断就可以) # if pwd!='': # if l ...
- Sql 根据当前时间,获取星期一具体日期
--根据当前时间,计算每周一日期,周日为每周第一天 declare @getDate datetime --set @getDate='2018-12-30' set @getDate='2019-0 ...
- Unity正交模式摄像机与屏幕适配的方法
public class CameraAuto : MonoBehaviour { float fDefaultRatio = 720.0f / 1280.0f;//预先设定屏幕大小1280*720 ...
- error: command 'gcc' failed with exit status 1
MacOS下想安装MySQL-Python,执行语句: sudo pip install MySQL-Python 遇到了如下错误信息: /Users/kaitlyn/anaconda3/envs/e ...
- 4、下行短信发送WebService、下行短信发送服务 -功能详细设计 --短信平台
3. 下行短信发送WebService 开发一个WebService,供第三方系统调用,用于发送短信.WebService接收数据后,将信息存储入数据库的短信发送数据表中. WebService参数 ...
- 用DOM方式解析XML
一.用DOM方式解析XML 此例子节点结构如下: 1.获取book节点属性 (1).如果不知道节点的属性,通过 NamedNodeMap attrs = book.getAttributes(); 来 ...