资讯专栏INFORMATION COLUMN

OGG中复制表的增删改

IT那活儿 / 1463人阅读
OGG中复制表的增删改
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

修改复制表结构

当数据库需要复制的表结构有所改变,如增加列,改变某些列的属性等表结构改变后,可以按照下列步骤执行:
  • 1)各进程使用lag exta验证无较大延迟(秒一级即可);

  • 2)各进程执行info exta,showch并验证ext进程重启所需日志存在;

  • 3)按顺序停止源和目标端进程;

  • 4)源和目标端执行修改表结构;

  • 5)如表有主键(或唯一索引)且本次修改未修改主键,则直接重启进程;

  • 6)但如果表无主键或者本次修改了主键(或唯一索引),则需继续执行下列步骤重建附加日志;

ggsci> dblogin userid goldengate, password XXXXXX

ggsci>
 delete trandata schema.table

ggsci>
 add trandata schema.table
  • 7)重新启动源端和目标端的抓取和复制进程。

注意:表结构变化后必须要重启ext/rep进程!否则各进程将按照旧的结构进行复制,会导致数据无法正确复制。

增加复制表

2.1 对于新增表,首先要在源端对其加入supplemental log

GGSCI 〉dblogin userid goldengate, password goldengate

GGSCI > info trandata .

如果不是enable则需要手动加入:

GGSCI > add trandata .

2.2 在源端系统上ggsci中执行stop extXX停止源端的抓取进程(注意检查所需最老归档日志是否存在);

2.3 在目标端系统上ggsci中执行stop repXX停止目标端的复制进程;

2.4 在源端修改ext进程参数,添加新表:

Ggsci> edit param extXX

在文件最后加入一行“table myschema.newtable;” 注意写全schema和表的名称

2.5 在目标端修改rep进程所包含的列表文件:

GGSCI> edit param repXX

在assumetargetdefs下面加入一行:Handlecollisions

//注:如果是空表的话不用加此冲突处理参数。

结尾加入一行“map ***.XXX, target ***.XXX, filter (@GETENV ("transaction", "csn") > 9543774);”注意写全schema和表的名称

2.6 在源端执行exp将该表数据按scn导出;(可选步骤,仅用于需要执行初始化的表;如表为新表,可以直接在备份端执行建表sql,然后执行重起即可)

2.7 在目标端执行imp将该表数据导入;(可选步骤,仅用于需要执行初始化的表)

2.8 在目标端系统上启动复制进程 repXX

GGSCI > start repXX

2.9 在源端系统上启动源端的抓取进程extXX和传输进程dpeXX

GGSCI > start er *

2.10 在目标端系统上去掉冲突处理(如果不需要去掉冲突处理则无需做此步)

GGSCI > lag repXX

直到AT EOF,停止repXX进程:

ggsci>stop repXX

修改repXX.prm:

ggsci>edit param repXX.prm

在handlecollions前面加—将其注释掉;

重新启动repXX:

ggsci>start repXX
即可进入正常复制状态。

删除复制表

要移除某个复制表,则执行以下步骤:
  • 直接源端的进程参数文件中注释掉包含该表的table行;

  • 目标端同样在rep进程里面注释掉包含该表的map行;

  • 源端使用info exta,showch查看检查点并验证归档日志是否存在,然后重启ext进程;

  • 目标端直接重启rep进程。



本文作者:张朝文(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129119.html

相关文章

  • MySQL: 的增删改查(基础)

    摘要:注释在中可以使用空格描述来表示注释说明即增加查询更新删除四个单词的首字母缩写。 1.CRUD 注释:在SQL中可以使用–空格+描述来表示注释说明CRUD 即增加...

    RobinTang 评论0 收藏0
  • thinkphp权限管理,auth类的使用

    摘要:本文代码截取于笔者刚做的一个微型一准备工作阅读类源码只需要大概看看,不要求读懂,路径在数据库准备把文件里的代码复制下来创建数据库即可,四个主要数据库,规则表,用户组表,用户组明细表关系表,用户表,其中用户表为自己创建,这四个表的字段可根据实 本文代码截取于笔者刚做的一个微型CRM 一、准备工作 1.阅读auth类源码只需要大概看看,不要求读懂,路径在/Thinkphp/Library/...

    int64 评论0 收藏0
  • Mybatis-实现数据的增删改

    摘要:如果是查询单个数据的话,用第二讲用过的方法就可以了。以的形式引用参数的属性,将使用反射读取参数的此属性。引用其他的等属性与此一致。 showImg(https://segmentfault.com/img/bVbst45?w=640&h=293); 用 mybatis 查询数据,包括列表 用 mybatis 增加数据 用 mybatis 更新数据. 用 mybatis 删除数据. ...

    darcrand 评论0 收藏0
  • JavaEE环境配置与示例教程

    摘要:环境配置运行环境安装配置数据库下载安装下载地址牢记安装过程中设置的用户的密码安装选择版本的安装配置数据库驱动教程前提开发环境参考环境配置文档基础知识基本语法协议基础知识只需了解请求即可基础的等。 **寒假的时候老师让写个简单的JavaEE教程给学弟or学妹看,于是写了下面的内容。发表到这个地方以防丢失。。。因为写的时候用的是word,直接复制过来格式有点乱。。。所以不要在意细节了。。...

    AbnerMing 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<