暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle补充日志(二)

老张的技术博客 2017-11-28
1336

四、标识关键字段补充日志

标识关键字段补充日志有四种:主键、唯一索引、外键和全体字段补充日志。这类附加日志必须建立在最小附加日志基础上,否则oracle会隐式启动最小附加日志,同样没有关闭标识关键字段补充日志前,不得关闭最小补充日志。可以累加,不会冲突

1、主键补充日志

这种日志用于记录主键字段的旧值。这是一种无条件式(lob、long除外)的补充日志,即无论主键字段本身是否会被修改,其旧值都会被记录。若没有主键,则用长度最小的非空唯一索引字段代替。若没有主键和非空唯一索引字段,则所有字段的旧值都会被记录下来,这将导致重做记录数据量暴涨。

启用主键补充日志:

2、唯一索引补充日志

只有当唯一索引字段被update修改时,才会记录该字段的旧值。是有条件式的

alter database add supplemtal log data (unique) columns;

3外键补充日志

当外键字段被更改时,记录其旧值,是有条件式的。

alter database add supplemtal log data (foreign key) columns;

4、全体字段补充日志

是无条件式的(lob、long除外)。会增加数据库的负担,一般情况下不启用。

alter database add supplemtal log data (all) columns;

五、表级补充日志

在表上启用附加日志:

alter table [table_name] add supplemtal log data (primary key|unique.....) columns;

可以自定义字段,如将first_name, last_name, email指定为一个名为emp_info的日志组:

alter table hr.employees add supplemtal log group emp_info(first_name, last_name, email);

*只要修改了上述三个字段中的任意一个,重做记录必须记录全部三个字段的旧值,也就有条件式的。若要声明无条件式的,只需在末尾声明always即可

alter table hr.employees add supplemtal log group emp_info(first_name, last_name, email) always;


文章转载自老张的技术博客,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论