三 补充日志(supplemental logging)

补充日志是对重做记录中变更矢量的补充信息,增加了变更矢量记载的记录量。Oracle某些功能要求启用补充日志才能正常或更好的工作,比如logminer(日志挖掘器)、闪回事务查询、闪回事务等。

对于insert和delete来说,常规的重做记录记载了被更改的行的所有字段,没有什么补充,但是update例外,不但所有字段的旧值没有被记录(除非更新所有字段),有时update还是导致行迁移,

补充日志主要就是为update服务的,补充的目的就是要高度还原真实的update,在某种情况下,当实例和介质恢复不能百分百地完成作用时,只能向残存的日志索取更多的信息

1 数据库级补充日志

在oracle 11g中,默认不启用

TEST@ orcl >select supplemental_log_data_min sl_min,supplemental_log_data_pk sl_pk,supplemental_log_data_ui sl_ui,
supplemental_log_data_fk sl_fk,supplemental_log_data_all sl_all from v$database;  2  SL_MIN     SL_ SL_ SL_ SL_
-------- --- --- --- ---
NO     NO  NO  NO  NO

最小补充日志是最基本的一种数据库级补充日志

LogMiner依赖最小补充日志产生的特殊信息以识别、分组与合并dml所产生的重做记录,目的是为了让logminer通过分析redo log就可以识别由update导致的行迁移、行移动。

如果update命令导致行变长,在数据块空间不足的情况下行会部分(行头部除外)迁移至另一个数据块,称为行迁移

TEST@ orcl >alter database add supplemental log data; ##启用最小补充日志
Database altered.
TEST@ orcl >select supplemental_log_data_min sl_min from v$database;
SL_MIN
--------
YES
TEST@ orcl >alter database drop supplemental log data; ##关闭最小补充日志

启用最小补充日志不会对重做记录的生成产生明显的额外开销,又能使日志文件支持logminer和闪回事务查询功能,提高数据块抵抗人为错误的能力上考虑,应该启用此功能。

注意:凡是启用或关闭数据库级补充日志都会导致共享池中的所有的sql命令游标非法,在短期内硬解析会显著上升。

TEST@ orcl >select count(*) from scott.emp;COUNT(*)
----------14
TEST@ orcl >select invalidations from v$sql where sql_text='select count(*) from scott.emp';
INVALIDATIONS
-------------0
select sql_text,invalidations from v$sql where sql_text like 'select count(*) %';

关键字段补充日志有4种主键、唯一索引、外键和全体字段补充日志。

--alter database add supplemental log data (primary key) columns;

开启主键补充日志的前提必须要开启最新补充日志,关闭也是一样。

主键补充日志的作用是在update命令的重做记录中添加被修改行的主键字段的旧值。

唯一索引补充日志只有当唯一索引字段被update时才会记录该字段。

外键补充一样,只有当外键字段被update修改时,其修改前的旧值才会被记录。

全体字段补充日志,它和主键补充一样同为不条件,无论哪个字段被update,所有字段(除了LOB\LONG类型)的旧值都将被记录。

--alter database add supplemental log data (all) columns;

2 表级补充日志

针对某些表进行日志补充,前提要开启数据库最小日志补充。

表级补充分为主键、唯一索引、外键、全字段和自定义5种类型,前4种与数据库级对应的类型特点一样。

--alter table scott.emp add supplemental log data (primary key) columns;

--alter table scott.emp add supplemental log group emp_info(first_name,last_name,email);

如果只从DML命令性能的角度出发,没有人会启用补充日志,建议至少启用最小日志补充,否则至少将丧失logminer和闪回事务查询功能。

转载于:https://www.cnblogs.com/yhq1314/p/10938939.html

oracle 11g 数据库恢复技术 ---03 补充日志相关推荐

  1. oracle 11g 数据库恢复技术 --rman catalog

    Oracle RMAN的catalog并不是指标备份恢复操作的一个必要组件,但oracle推荐使用该组件.启用之后,归档日志.备份集.镜像复制等备份信息的保存地点是RMAN资料库(catalog), ...

  2. aix6.1 oracle12c,AIX6.1系统 oracle 11g数据库恢复过程

    [单位名称] 河北省某大型企业 [逻辑存储] IBM AIX6.1平台,数据库为64位的 Oracle 11g, 本地存储约900GB,其中"/opt"为一独立 lv,大小约200 ...

  3. 安装Oracle 11g数据库服务器类

    <Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南>第3章Oracle 11g数据库的安装,本章将介绍如何在32位系统结构的Windows 7操作系统平台上对Oracle ...

  4. 数据库恢复技术(事物、三种更新策略以及恢复策略)

    数据库恢复技术(事物.三种更新策略以及恢复策略) 数据库恢复所要达到的目标 数据库为了达到目标的恢复策略 事务和日志的基本内容 事务的基本内容 日志的基本内容 更新数据库规则和三种更新策略 数据库更新 ...

  5. 第10章 数据库恢复技术 | 数据库知识点整理

    第10章 数据库恢复技术 了解 数据库的一致性状态 数据库运行中可能产生的故障类型,它们如何影响事务的正常执行,如何破坏数据库数据 数据转储的概念及分类 数据库的镜像功能 掌握 事务的基本概念和事务的 ...

  6. bak文件转oracle文件,如何在Oracle 11g中恢复.bak文件(How to restore .bak file in oracle 11g)...

    如何在Oracle 11g中恢复.bak文件(How to restore .bak file in oracle 11g) 我有Oracle 11g备份文件(.bak文件)如何在Oracle 11g ...

  7. 数据库系统概论:第十章 数据库恢复技术

    事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元.事务处理(transaction processing)技术主要包括数据库恢复技术和并发控制技术. 10.1 事务的基本概念 事务:是用户定义 ...

  8. ubuntu14.04、CentOS安装oracle 11g数据库【转载】

    出处:https://blog.csdn.net/cainanxing/article/details/78988671 ubuntu14.04.CentOS安装oracle 11g数据库 折腾了好久 ...

  9. 第十章数据库恢复技术

    第十章数据库恢复技术 10.1_事务 事务的四个特性:原子性.一致性.隔离性.持续性 10.2_故障的种类 事务内部的故障 系统故障 介质故障 计算机病毒 10.3_恢复的实现技术 转储:动态和静态 ...

最新文章

  1. 能打造新型CPU的有机分子元件登Nature,用if语句攒出决策树,一个顶数千晶体管...
  2. 在res/xml中的文件
  3. java静态方法声明_方法本地类中的Java最终静态声明
  4. 初识MQ--mq常见技术介绍
  5. 人工智能泰斗迈克尔·乔丹分享机器学习要义:创新视角,直面挑战
  6. Spring AOP 前置通知
  7. sql 数据库检查_数据库检查点– SQL Server 2016中的增强功能
  8. html转换pdf中文失败,解决html导出pdf中文乱码问题的正确姿势
  9. Qt5 程序启动画面图片效果
  10. UE4 android开发
  11. 配置虚幻4 使用 Rider for UnReal Engine 开发游戏
  12. Navicat Premium 连接 MongoDB 失败: Cannot connect to MongoDB.No suitable servers found: ......
  13. xp系统steam无法连接到更新服务器,xp系统打不开steam提示“无法链接至steam网络”的处理办法...
  14. 09、Non-Black-Box ZK(Barak‘s protocol)--Alon Rosen
  15. java 美元符号_使用单个美元符号“$”作为java类名称的任何风险?
  16. 流量充值解决方案(附代码)
  17. HTML嵌套注释、多行注释、多级注释,提高生产力
  18. 【转】Quartz概述及入门实例
  19. python高斯噪声怎么去除_Python图像处理之Pillow--ImageFilter介绍
  20. 证明:因为矩阵A非0,所以AA'也非零

热门文章

  1. 剑指offer(26-33题)详解
  2. GDB调试:观察点(数据断点)【GDB调试】
  3. java同步机制简单介绍
  4. python3高性能网络编程_Python3 网络编程
  5. autorunner测试java代码,AutoRunner自动化测试工具介绍
  6. dom4j jar包_XML解析之DOM4j以及XPATH技术
  7. 看完这篇学会Ansible
  8. 华为认证数通专家HCIE-Datacom 11月30日发布
  9. ios 登录 java 后台,IOS苹果登录sign in with apple后端校验
  10. create 执行存储过程报错出现符号_年薪百万之路--第四十天 存储引擎