DBA绝招之数据库闪回技术
Posted 海文国际
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DBA绝招之数据库闪回技术相关的知识,希望对你有一定的参考价值。
第一部分:使用闪回技术I
一:什么是闪回技术
1、闪回技术介绍
2、事务处理和还原
3、保证还原保留时间
4、准备数据库以进行闪回
1) 创建还原表空间
2) 启用自动还原管理
3) 指定还原保留时间和保证还原保留时间
4) 默认的数据库初始化参数:
UNDO_MANAGEMENT='AUTO'
UNDO_TABLESPACE='UNDOTBS1'
UNDO_RETENTION=900
二:使用闪回查询及闪回版本查询
1、使用闪回技术查询数据
1)闪回查询
查询指定时间点的所有数据
2) 闪回版本查询
查看两个时间点之间行的所有版本
查看更改了行的事务处理
3)闪回事务处理查询
查看事务处理所做的所有更改
4)闪回查询
用于查询指定时间点的所有数据
5)闪回查询:示例
6)闪回版本查询
7)闪回版本查询:注意事项
a) 不能使用 VERSIONS 子句查询:
外部表
临时表
固定表
视图
b) VERSIONS 子句不能跨 DDL 命令使用
c) 段收缩操作已过滤掉
三:执行闪回表操作
1、闪回表概览
1)闪回表可将表恢复到特定的时间点
2)闪回表是一个原位操作
3)数据库保持联机
2、闪回表
1)使用闪回表,可将一个或多个表还原到特定时间点,而不需要还原备份
2)将从还原表空间检索数据来执行闪回表操作
3)您需要具有对特定表的 FLASHBACK ANY TABLE 或FLASHBACK 对象权限
4)需要对要闪回的表具有 SELECT、INSERT、DELETE和 ALTER 权限
5)必须对要执行闪回操作的表启用行移动
3、对表启用行移动
4、执行闪回表
5、 闪回表:注意事项
1)FLASHBACKTABLE 命令作为单个事务处理执行,要求获取 DML 排它锁
2)不闪回统计信息
3)保留当前索引和从属对象
4)闪回表操作:
不能对系统表执行
不能跨 DDL 操作
会生成还原和重做数据
四:使用闪回事务处理及查询
1、回事务处理查询
2、用 Oracle Enterprise Manager执行闪回事务处理查询
3、闪回事务处理查询:注意事项
1)DDL命令被视为字典更新
2)通过执行 DDL 命令对事务处理执行闪回事务处理查询时,会显示对数据字典所做的更改
3)删除的对象显示为对象编号
4)删除的用户显示为用户标识符
4、回事务处理
1)建立闪回事务处理的先决条件
2)逐步完成可能的工作流
3)使用闪回事务处理向导
4)查询有依赖关系及没有依赖关系的事务处理
5)选择回退选项和闪回事务处理
6)检查结果
5、先决条件
6、闪回事务处理
1)可使用 Oracle Enterprise Manager 或命令行闪回事务处理
2)EM使用闪回事务处理向导,该向导调用带 NOCASCADE选项的DBMS_FLASHBACK.TRANSACTION_BACKOUT过程
3)如果 PL/SQL 调用成功完成,即意味着事务处理不具有任何依赖关系,并且已成功回退单个事务处理
7、可能的工作流
1)查看表中的数据
2)发现逻辑问题
3)使用闪回事务处理
执行查询
选择事务处理
闪回事务处理(如果没有冲突)
选择其它回退选项(如果存在冲突)
4)回事务处理结果
8、闪回事务处理向导
9、选择其它回退选项
10、最后步骤(不使用 EM)
选择回退选项后,会在DBA_FLASHBACK_TXN_STATE 和
DBA_FLASHBACK_TXN_REPORT 视图中生成相关性报告
检查显示了已回退的所有事务处理的相关性报告
提交更改使其成为永久更改
回退以放弃更改
第二部分:使用闪回技术II
一:使用 OracleTotal Recall
1、Oracle Total Recall 概览
自动跟踪数据库历史更改:
在您指定的保留期内在表级别启用
所有后续更改都是透明存储的并能够防止篡改
早于保留期的记录会被自动删除
使用闪回技术检索历史记录
2、设置过程
1)创建用于保存 FDA 的新表空间。
2)使用 FLASHBACK ARCHIVE ADMINISTER 系统权限:创建闪回数据归档,将它分配到表空间,并指定其保留期
3)使用 FLASHBACK ARCHIVE 对象权限:变更基表以启用归档并将其分配到一个闪回归档
3、TotalRecall 的工作原理
1)历史数据
后台进程以自优化间隔(默认:5 分钟)
2)异步捕获行
是以压缩和分区形式存储的
根据保留策略自动清除
基于时间和卷自动创建分区
查询跳过不相关的分区
4、OracleTotal Recall 场景
1)使用闪回数据归档访问历史数据:
2)可以选择增加空间:
3)可以选择更改保留时间:
4)可以选择清除数据:
5)可以选择删除闪回数据归档:
5、透明的方案演化
1)DDL支持
添加、删除、重命名和修改列
删除和截断分区
重命名和截断表
2)闪回查询可以跨 DDL 更改运行。
3)不能自动支持所有其它 DDL(请见下一个幻灯片)
6、完整方案演化
1)取消关联或关联 DBMS_FLASHBACK_ARCHIVE 程序包中的过程:
对指定的表禁用 Total Recall 并允许更复杂的 DDL(升级、拆分表,等等)
在关联期间执行方案完整性检查(基表和历史记录表必须为相同的方案)
2)注:应谨慎使用此项功能,请注意此功能会导致归档不再保持不变,因为在取消关联期间历史记录可能会更改。
7、限制
1)如果使用 Hybrid Columnar 压缩,则对基表不能启用 Total Recall
2)如果使用取消关联,则不能保证历史记录的永久性(但您总可以通过正确的权限清除之前的历史记录)
3)历史记录表没有可移植性
8、准则
1)使用 SCN 进行精确查询
或者
2)为方便可使用闪回技术
3)闪回使用当前系统设置
4)在查询过去的数据之前,使用 COMMIT 或 ROLLBACK 操作确保数据库的一致性
5)不能从动态性能 (V$) 视图检索过去的数据。它们包含当前数据
6)但是,可以在静态数据字典视图(如 *_TABLES)中执行对过去数据的查询
9、查看闪回数据归档
查看结果:
二:使用闪回回收站
1、闪回删除和回收站
2、回收站
3、从回收站还原表
1)还原删除的表和从属对象
2)如果多个回收站条目具有相同原始名称,则:
使用系统生成的唯一名称来还原特定版本
使用原始名称时,还原的表遵循后进先出(LIFO) 的规则
3)重命名原始名称(如果当前正在使用该名称)
4、回收站:自动回收空间
5、回收站:手动回收空间
6、不使用回收站
回收站的安全注意事项:
7、查询回收站
第三部分:执行闪回数据库
一、配置闪回数据库
1、闪回数据库
闪回数据库操作:
作用类似于数据库的倒带按钮
可以在用户造成了逻辑数据损坏的情况下使用
2、闪回数据库体系结构
3、配置闪回数据库
二、执行闪回数据库操作
1、需要执行的操作
1)确保数据库处于ARCHIVELOG 模式
2)启用闪回日志记录并指定快速恢复区
2、闪回数据库:示例
1)闪回:以独占模式装载数据库
2)复查更改:以只读方式打开数据库
3)完成:使用 RESETLOGS 以读/写方式打开数据库
3、闪回数据库注意事项
1)闪回数据库操作完成后,打开数据库:
在只读模式下验证使用的目标时间或 SCN 正确无误
使用 RESETLOGS 操作以允许 DML
2)“闪回”与“恢复”是对立的
3)以下情况下不能使用闪回数据库操作:
控制文件已还原或已重新创建。
表空间已删除。
数据文件的大小已被减小。
4)使用 TO BEFORE RESETLOGS 子句闪回至上一次 RESETLOGS 操作前的那一刻
三:监视闪回数据库
1、要针对保留目标监视容量
1)查看快速恢复区的磁盘限额:
2)确定当前闪回窗口:
3)监视闪回数据库日志中的日志记录:
2、使用 EM 监视闪回数据库
3、保证还原点
使用保证还原点可确保在任何时间通过执行FLASHBACK DATABASE 命令都可闪回到该 SCN
4、闪回数据库和保证还原点
1)要使用保证还原点,数据库必须满足以下先决条件:
COMPATIBLE 初始化参数必须设置为 10.2 或更大值
数据库必须在 ARCHIVELOG 模式下运行
FLASHBACK DATABASE 需要使用大约从还原点时间开始的归档重做日志
必须配置快速恢复区
学习最新热门IT技术
找一份自己满意的高薪工作
升职加薪就是它了
免费领取甲骨文内部学习资料
海妹在这等你来试听哦~
【点击“阅读原文”预约报名海文6月免费试听课程。】
以上是关于DBA绝招之数据库闪回技术的主要内容,如果未能解决你的问题,请参考以下文章
己亥清爽恢复系列之数据文件4篇:DROP表后如何恢复(非闪回技术)