oracle 11g 数据库恢复技术 ---03 补充日志
三 补充日志(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和闪回事务查询功能。
oracle 11g 数据库恢复技术 ---03 补充日志的更多相关文章
- oracle 11g 数据库恢复技术 ---01 重做日志
一 redo log Oracle数据库中的三大核心文件分别是数据文件(data file).重做日志(redo log)和控制文件(control file).数据文件保证了数据库的持久性,是保存修 ...
- oracle 11g 数据库恢复技术 ---02 控制文件
oracle 11g 数据库恢复技术 ---02 控制文件 SYS@ orcl >show parameter control_file NAME TYPE VALUE ------------ ...
- oracle 11g 数据库恢复技术 ---04 rman
四 RMAN RMAN体系结构的主要组成部分: --1 目标数据库(target) --2 RMAN命令行客户端 --3 通道(channel) --4 快速恢复区(fast recovery are ...
- oracle 11g 数据库恢复技术 --rman catalog
Oracle RMAN的catalog并不是指标备份恢复操作的一个必要组件,但oracle推荐使用该组件.启用之后,归档日志.备份集.镜像复制等备份信息的保存地点是RMAN资料库(catalog), ...
- 在Windows 10上安装Oracle 11g数据库出现的问题及解决
在Windows 10上安装Oracle 11g数据库,并且很多次出现过:当安装的进度条进行到快要结束的时候弹出一个提示框.如下: [Java(TM)2 Platform Standard Editi ...
- 完美完全卸载Oracle 11g数据库
Oracle 11g可在开始菜单中卸载,然后同时需要删除注册表中相关内容. 操作系统:windows10专业版. 卸载步骤: 1.停用oracle服务:进入计算机管理,在服务中,找到oracle开头的 ...
- PL/SQL Developer工具包和InstantClient连接Oracle 11g数据库
一.前言 PLSQL Developer是Oracle数据库开发工具,很牛也很好用,PLSQL Developer功能很强大,可以做为集成调试器,有SQL窗口,命令窗口,对象浏览器和性能优化等功能. ...
- 在Windows10系统下安装Oracle 11g数据库
在Windows10系统下安装Oracle 11g数据库 https://blog.csdn.net/wei1992_6/article/details/60054727
- Oracle 11g数据库详解(2)
FAILED_LOGIN_ATTEMPTS 用于指定连续登陆失败的最大次数 达到最大次数后,用户会被锁定,登陆时提示ORA-28000 UNLIMITED为不限制 精确无误差 是 实时 PASSWOR ...
随机推荐
- Python核心技术与实战——九|面向对象
在搞清了各种数据类型.赋值判断.循环以后如果是从C++.Java语言入手的,就会有一个深坑要过:OOP(object oriented programming):公私有保护.多重继承.多态派生.纯函数 ...
- YNOI2016:掉进兔子洞 (莫队+bitset)
YNOI2016:掉进兔子洞 题意简述: 有 m 个询问,每次询问三个区间,把三个区间中同时出现的数一个一个删掉,问最后三个区间剩下的数的个数和,询问独立. 注意这里删掉指的是一个一个删,不是把等于这 ...
- 微信小程序 背景音频播放遇到的深坑
1.微信前台(聊天页)暂停后回到小程序,再点击播放,播放信息消失,无法续播 ios可以监听到 (onStop已经停止)事件, 安卓无法监听到,只能监听到普通的暂停事件. 2.
- java多线程sleep,wait,yield方法区别
sleep() 方法sleep()的作用是在指定的毫秒数内让当前“正在执行的线程”休眠(暂停执行).这个“正在执行的线程”是指this.currentThread()返回的线程.sleep方法有两个重 ...
- windows 10安装python3和python2
安装包下载: 安装包下载请点我 下载完安装包就可以开始安装了,下面是流程图! Python3.6安装流程: 选择自定义安装: 直接next 为电脑上的所有用户安装 然后install就ok了! 安装完 ...
- django orm(2)
目录 聚合函数 分组查询 F与Q查询 F查询 Q查询 事务 Django中的事务 orm字段及参数 自定义char字段 聚合函数 这里的聚合函数和SQL里的聚合函数对应,在使用前需要先进行模块的导入: ...
- springSecurity安全框架
一.是什么 是一种基于 Spring AOP 和 Servlet 过滤器的安全框架,对访问权限进行控制 二.作用 1.认证 用户名和密码认证,核对是否正确 2.授权 若正确,给予登录用户对应的访问权限 ...
- 用vue构建项目同一局域网下通过ip访问
在webpack配置文件下改为 host:'0.0.0.0' 改为后启动跳转不到登录页面 需手动修改浏览器上的0.0.0.0:8080为自己ip加上:8080 就可以在别的电脑上进行访问了 举一反三: ...
- luogu 2698 [USACO12MAR]花盆Flowerpot 单调队列
刷水~ Code: #include<bits/stdc++.h> using namespace std; #define setIO(s) freopen(s".in&quo ...
- 【bzoj4136】[FJOI2015]带子串包含约束LCS问题
题目描述: 带有子串包含约束的最长公共子序列问题可以具体表述如下. 给定2个长度分别为n和m的序列X和Y,以及一个子串包含约束集S. S中共有k个字符串S={S1,S2,…,Sk},其中字符串Si的长 ...