-- 日志记录模式(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;