oracle的补充日志

官方文档:http://docs.oracle.com/cd/E11882_01/server.112/e22490/logminer.htm#SUTIL1582
默认情况下redo log是用来做实例恢复和介质恢复,只记载了需要的数据,但是基于redo log的应用,可能需要额外的字段,补充日志就是来记住这些额外的字段的。
默认情况下,oracle是不会提供补充日志的,所以在使用LogMiner的时候需要启用最小化的补充日志。
补充日志有2个级别:数据库级别的和表级别的
数据库级别的有2中类型:最小化补充日志和标识键日志。最小化补充日志不会对数据库生成redo文件产生大的影响。然后启用数据库范围的标识键日志会产生很大的影响。
最小化的补充日志记录了logminer标识,分组,合并操作需要的最少的信息。执行下面的语句启用最小补充日志:
alter database add supplemental log data;
数据库级别标识键的日志
这种类型的日志是当挖掘不在源数据库上进行,而是在如逻辑备库上执行的时候需要。此种方式的补充日志又有几种类型
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
这个是标识在更新的时候,行的所有的字段都会被记录。
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
这个是说主键的所有的字段都被记录。如果表没有主键,但是有1个或多个非空的唯一索引约束,那么一个唯一索引键被选中来唯一标识这个被更新的行。如果表没有主键也没有非空唯一索引,那么除了long和lob的字段都会被记录。因此建议表上有主键。
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;
This option causes the database to place all columns of a row’s composite unique key or bitmap index in the redo log file if any column belonging to the composite unique key or bitmap index is modified. The unique key can be due to either a unique constraint or a unique index.
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;
This option causes the database to place all columns of a row’s foreign key in the redo log file if any column belonging to the foreign key is modified.
上面提到的几种数据库级别的补充日志,对应的信息查询如下:
select SUPPLEMENTAL_LOG_DATA_MIN min,
SUPPLEMENTAL_LOG_DATA_PK pk,
SUPPLEMENTAL_LOG_DATA_UI ui,
SUPPLEMENTAL_LOG_DATA_FK fk,
SUPPLEMENTAL_LOG_DATA_ALL “all”
from v$database;

禁用补充日志是有顺序的,参见官网

表级别的补充日志:表级别的补充日志提供了与库级别的补充日志相同的选项:all,primary key,foreign key,unique key,只不过是只在表的级别上生效。
ALTER TABLE HR.EMPLOYEES ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

还可以参考下:
http://sugarlovecxq.blog.51cto.com/6707742/1693092

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值