2. Enabling supplemental logging in the source database

Enabling supplemental logging in the source database

1° 准备:

源库启用附加日志,首先准备好想要从源库到目标库复制的表的列表

2° OGG需要打开库级附加日志和表级附加日志:

打开库级附加日志:
    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
切日志,保证配置OGG时的日志全部包含附加日志:
    alter system archive log current;
打开表级附加日志:
    su - oracle
    cd /ggs
    ./ggsci
    DBLOGIN USERID <USER> PASSWORD <PW>
    ADD TRANDATA <SCHEMA>.<TABLE_NAME>
    -- 使用具有修改源库对应用户的表的权限的用户登录
    -- 可以使用具有DBA权限的用户登录
    -- 一般我们会创建专门用于OGG的数据库用户,并赋权
    -- 然后使用该数据库用户进行登录,然后操作,如:
    -- DBLOGIN USERID system PASSWORD oracle
    -- DBLOGIN USERID ggs PASSWORD ggs
    -- ADD TRANDATA scott.*
    -- 可以使用通配符匹配某用户的所有表

3° 附加日志相关介绍:

附加日志会在redo数据中添加额外的列用来在目标库正确的识别该行
必须先打开库级最小附加日志,然后打开表级附加日志
当打开表级附加日志,会为表创建一个附加日志组,该日志组包含打开附加日志的表的所有列
这个额外的列会根据键约束生成:
    首先基于主键生成
    如果没有则基于第一个非空唯一键生成
    如果没有则基于第一个可空唯一键生成
    如果没有则基于所有列生成
OGG只考虑没有虚拟列、用户定义类型或者函数列的唯一性键,我们也可以手动指定
最好为所有表都创建一个主键或者唯一性键,尽量避免基于所有列生成该附加列

4° 表级附加日志开启的两种方法:

ggsci中使用ADD TRANDATA命令
sqlplus中使用ALTER TABLE ADD SUPPLEMENTAL LOG DATA命令
第二种方法更柔性化并且可以人为指定附加日志组名字
但是不能超过30个字符,否则OGG截取前30个字符作为附加日志组名字
官方推荐使用第一种方法

[TOC]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值