goldengate个别表的重新初始化十大步骤

简介:


表的重新再同步(无需生产端时间窗口)
如果是某些表由于各种原因造成两边数据不一致,需要重新进行同步,但实际业务始终24小时可用,不能提供时间窗口,则可以参照以下步骤。(因较为复杂,使用需谨慎!)

列出需要重新初始化的表和当时exclude的原因(检查下面两个地方):
生产端抽取进程exclude表                   
容灾端复制进程中exclude表

1) 确认ext/dpe/rep进程均无较大延迟,否则等待追平再执行操作;

2) 停止目标端的rep进程;(如时间要求严格,可放到后面)
注意:步骤3-6为将源端数据通过exp/imp导入到目标端,客户也可以选择其它初始化方式,比如expdp/impdp。

3) 在源端获得当前的scn号。例如:
export ORACLE_SID=***(无单机多实例的无需做)
select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
          10144674732950
以下以获得的scn号为10144674732950为例

4) 在源端使用exp导出所需重新初始化的表或者几张表数据,并且指定到刚才记下的scn号。          
exp导出
确认在源端
确认ORACLE_SID正确
需要sysem用户,可以不用grant execute flashback to user,system密码******
export ORACLE_SID=***(无单机多实例的无需做)
exp system/****** tables=SCOTT.T9 file=/home/oracle/scott_t9_1.dmp grants=n statistics=none triggers=n compress=n FLASHBACK_SCN=10144674732950 log=/home/oracle/scott_t9_1.log;

5) 通过sftp传输到目标端;

6) 在目标端,使用imp导入数据;
确认在目标端
确认ORACLE_SID正确
用system用户,
export ORACLE_SID=***(无单机多实例的无需做)
truncate table scott.t9    删除记录
[oracle@localhost ~]$ imp system/oracle file=/home/oracle/scott_t9_1.dmp fromuser=scott touser=scott ignore=y log=/home/oracle/scott_t9_imp_1.log ;
特别注意:上面imp语句中没有使用commit=y的参数,如果对大表进行imp操作应该使用commit=y参数(数据分批量提交),原因:如果导入执行很长时间,imp操作被中断(好在是容灾端导入,不会有对业务系统产生很大压力),这个中断将导致这个大事物的回滚;回滚会占用更多时间(影响启动复制进程的时间);或者直接采用数据泵的方式导出导入(数据泵默认不需要commit参数);

7) 如果这些表有外键,在目标端检查这些外键并禁止它们(记得维护dirsql下的禁止和启用外键的脚本SQL);
确认有无外键,执行脚本禁用外键
确认在目标端
确认ORACLE_SID正确


8) 编辑目标端对应的rep参数文件,在其map里面加入一个过滤条件,只对这些重新初始化的表应用指定scn号之后的记录(一定要注意不要修改本次初始化之外的其它表,会造成数据丢失!):
map source.mytab, target target.mytab, filter ( @GETENV ("TRANSACTION", "CSN") >     10144674732950 ) ;

9) 确认参数无误后,启动目标端的rep进程;

10) 使用info repxx或者lag repxx直到该进程追上,停止该进程去掉filter即可进入正常复制。(去掉filter时间待定,因SCN一直增大,不受影响)



本文转自 liu99fifa 51CTO博客,原文链接:http://blog.51cto.com/andrewliu/668289,如需转载请自行联系原作者

相关文章
|
7月前
|
SQL 数据库
SQL面试50题------(初始化工作、建立表格)
这篇文章提供了SQL面试中可能会遇到的50道题目的建表和初始化数据的SQL脚本,包括学生、教师、课程和成绩表的创建及数据插入示例。
SQL面试50题------(初始化工作、建立表格)
|
SQL 数据库 Python
SQL Server创建及修改表实验报告(上)
SQL Server创建及修改表实验报告
153 1
|
SQL Go 数据库
SQL Server创建及修改表实验报告(下)
SQL Server创建及修改表实验报告(上)
99 0
|
10月前
|
存储 Oracle 关系型数据库
Oracle系列之七:表的创建与管理
Oracle系列之七:表的创建与管理
|
存储 SQL 数据库
工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(上)(1)
日常开发过程中,最常用的语句可能就是查询语句了。那么如果从数据库表中查询数据呢?
工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(上)(1)
工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(下)(1)
在上一篇文章中,我们介绍了 ABAP 的查询语句关键的三个部分: 1、SELECT result 部分 2、FROM source 部分 3、INTO target 部分
工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(下)(1)
工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(下)(2)
在上一篇文章中,我们介绍了 ABAP 的查询语句关键的三个部分: 1.SELECT result 部分 2.FROM source 部分 3.INTO target 部分
工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(下)(2)
|
SQL 数据库
数据库原理与应用(SQL Server)笔记 第十章 用户定义函数
数据库原理与应用(SQL Server)笔记 第十章 用户定义函数
数据库原理与应用(SQL Server)笔记 第十章 用户定义函数
|
存储 数据库
工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(上)(2)
日常开发过程中,最常用的语句可能就是查询语句了。那么如果从数据库表中查询数据呢?
工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(上)(2)
|
数据库
工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(下)(3)
在上一篇文章中,我们介绍了 ABAP 的查询语句关键的三个部分: 1.SELECT result 部分 2.FROM source 部分 3.INTO target 部分

热门文章

最新文章