Oracle 日志模式

血红的双手。 提交于 2020-04-27 17:51:08

-- 日志记录模式(LOGGING 、FORCE LOGGING 、NOLOGGING)



-- 三者的含义

LOGGING:

-- 当创建一个数据库对象时将记录日志信息到联机重做日志文件,LOGGING实际上是对象的一个属性,

-- 用来表示在创建对象时是否记录REDO日志,包括在做DML时是否记录REDO日志。

-- 一般表上不建议使用NOLOGGING,在创建索引或做大量数据导入时,可以使用NOLOGGING 。



FORCE LOGGING:

-- 强制记录日志,即对数据库中的所有操作都产生日志信息,并将该信息写入到联机重做日志文件。



NOLOGGING:

-- 正好与LOGGING、FORCE LOGGING 相反,尽可能的记录最少日志信息到联机日志文件。

-- FORCE LOGGING可以在数据库级别、表空间级别进行设定、而LOGGING与NOLOGGING可以在数据对象级别设定。

-- 在使用DATA GUARD 时,要求使用强制记录日志模式。注:FORCE LOGGING并不比一般的LOGGING记录的日志多,

-- 数据库在FORCE LOGGING状态下,NOLOGGING选项将无效,因为NOLOGGING将破坏DATAGUARD的可恢复性.

-- FORCE LOGGING强制数据库在任何状态下必须记录日志。



-- 附加日志

-- 附加日志(supplemental log)可以指示数据库在日志中添加额外信息到日志流中,以支持基于日志的工具,

-- 如逻辑standby、streams、GoldenGate、LogMiner。可以在数据库和表上设置。

-- 如下查询如果某列的值为YES就是开了那种附加日志

SELECT supplemental_log_data_min,

       supplemental_log_data_pk,

       supplemental_log_data_ui,

       supplemental_log_data_fk,

       supplemental_log_data_all

  FROM v$database;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!