DBA绝招之数据库闪回技术

Posted 海文国际

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DBA绝招之数据库闪回技术相关的知识,希望对你有一定的参考价值。

第一部分:使用闪回技术I

一:什么是闪回技术

1、闪回技术介绍

2、事务处理和还原

DBA绝招之数据库闪回技术

3、保证还原保留时间

DBA绝招之数据库闪回技术

4、准备数据库以进行闪回

1)  创建还原表空间

2)  启用自动还原管理

3)  指定还原保留时间和保证还原保留时间

4)  默认的数据库初始化参数:

  • UNDO_MANAGEMENT='AUTO'

  • UNDO_TABLESPACE='UNDOTBS1' 

  • UNDO_RETENTION=900


二:使用闪回查询及闪回版本查询   

1、使用闪回技术查询数据

1)闪回查询

  • 查询指定时间点的所有数据

2) 闪回版本查询

  • 查看两个时间点之间行的所有版本

  • 查看更改了行的事务处理

3)闪回事务处理查询

  • 查看事务处理所做的所有更改

4)闪回查询

用于查询指定时间点的所有数据

DBA绝招之数据库闪回技术

5)闪回查询:示例

DBA绝招之数据库闪回技术

6)闪回版本查询

DBA绝招之数据库闪回技术

7)闪回版本查询:注意事项

a)  不能使用 VERSIONS 子句查询:

  • 外部表

  • 临时表

  • 固定表

  • 视图

b)  VERSIONS 子句不能跨 DDL 命令使用

c)  段收缩操作已过滤掉


三:执行闪回表操作

1、闪回表概览

1)闪回表可将表恢复到特定的时间点

2)闪回表是一个原位操作

3)数据库保持联机

DBA绝招之数据库闪回技术

2、闪回表

1)使用闪回表,可将一个或多个表还原到特定时间点,而不需要还原备份

2)将从还原表空间检索数据来执行闪回表操作

3)您需要具有对特定表的 FLASHBACK ANY TABLE 或FLASHBACK 对象权限

4)需要对要闪回的表具有 SELECT、INSERT、DELETE和 ALTER 权限

5)必须对要执行闪回操作的表启用行移动

3、对表启用行移动

DBA绝招之数据库闪回技术

4、执行闪回表

DBA绝招之数据库闪回技术

5、 闪回表:注意事项

1)FLASHBACKTABLE 命令作为单个事务处理执行,要求获取 DML 排它锁

2)不闪回统计信息

3)保留当前索引和从属对象

4)闪回表操作:

  • 不能对系统表执行

  • 不能跨 DDL 操作

  • 会生成还原和重做数据


四:使用闪回事务处理及查询  

1、回事务处理查询

DBA绝招之数据库闪回技术

2、用 Oracle Enterprise Manager执行闪回事务处理查询

DBA绝招之数据库闪回技术

3、闪回事务处理查询:注意事项

1)DDL命令被视为字典更新

2)通过执行 DDL 命令对事务处理执行闪回事务处理查询时,会显示对数据字典所做的更改

3)删除的对象显示为对象编号

4)删除的用户显示为用户标识符

4、回事务处理

1)建立闪回事务处理的先决条件

2)逐步完成可能的工作流

3)使用闪回事务处理向导

4)查询有依赖关系及没有依赖关系的事务处理

5)选择回退选项和闪回事务处理

6)检查结果

5、先决条件

DBA绝招之数据库闪回技术

6、闪回事务处理

1)可使用 Oracle Enterprise Manager 或命令行闪回事务处理

2)EM使用闪回事务处理向导,该向导调用带 NOCASCADE选项的DBMS_FLASHBACK.TRANSACTION_BACKOUT过程

3)如果 PL/SQL 调用成功完成,即意味着事务处理不具有任何依赖关系,并且已成功回退单个事务处理

7、可能的工作流

1)查看表中的数据

2)发现逻辑问题

3)使用闪回事务处理

  • 执行查询

  • 选择事务处理

  • 闪回事务处理(如果没有冲突)

  • 选择其它回退选项(如果存在冲突)

4)回事务处理结果

8、闪回事务处理向导

DBA绝招之数据库闪回技术

9、选择其它回退选项

DBA绝招之数据库闪回技术

DBA绝招之数据库闪回技术

10、最后步骤(不使用 EM)

选择回退选项后,会在DBA_FLASHBACK_TXN_STATE 和

DBA_FLASHBACK_TXN_REPORT 视图中生成相关性报告

  • 检查显示了已回退的所有事务处理的相关性报告

  • 提交更改使其成为永久更改

  • 回退以放弃更改


第二部分:使用闪回技术II

一:使用 OracleTotal Recall

1、Oracle Total Recall 概览

自动跟踪数据库历史更改:

  • 在您指定的保留期内在表级别启用

  • 所有后续更改都是透明存储的并能够防止篡改

  • 早于保留期的记录会被自动删除

  • 使用闪回技术检索历史记录

    DBA绝招之数据库闪回技术

2、设置过程

1)创建用于保存 FDA 的新表空间。

2)使用 FLASHBACK ARCHIVE ADMINISTER 系统权限:创建闪回数据归档,将它分配到表空间,并指定其保留期

DBA绝招之数据库闪回技术

3)使用 FLASHBACK ARCHIVE 对象权限:变更基表以启用归档并将其分配到一个闪回归档

DBA绝招之数据库闪回技术

3、TotalRecall 的工作原理

1)历史数据

  • 后台进程以自优化间隔(默认:5 分钟)

2)异步捕获行

  • 是以压缩和分区形式存储的

  • 根据保留策略自动清除

  • 基于时间和卷自动创建分区

  • 查询跳过不相关的分区

    DBA绝招之数据库闪回技术

4、OracleTotal Recall 场景

1)使用闪回数据归档访问历史数据:

DBA绝招之数据库闪回技术

2)可以选择增加空间:

DBA绝招之数据库闪回技术

3)可以选择更改保留时间:

DBA绝招之数据库闪回技术

4)可以选择清除数据:

DBA绝招之数据库闪回技术

5)可以选择删除闪回数据归档:

DBA绝招之数据库闪回技术

5、透明的方案演化

1)DDL支持

  • 添加、删除、重命名和修改列

  • 删除和截断分区

  • 重命名和截断表

    DBA绝招之数据库闪回技术

2)闪回查询可以跨 DDL 更改运行。

3)不能自动支持所有其它 DDL(请见下一个幻灯片)

6、完整方案演化

1)取消关联或关联 DBMS_FLASHBACK_ARCHIVE 程序包中的过程:

  • 对指定的表禁用 Total Recall 并允许更复杂的 DDL(升级、拆分表,等等)

  • 在关联期间执行方案完整性检查(基表和历史记录表必须为相同的方案)

2)注:应谨慎使用此项功能,请注意此功能会导致归档不再保持不变,因为在取消关联期间历史记录可能会更改。

DBA绝招之数据库闪回技术

7、限制

1)如果使用 Hybrid Columnar 压缩,则对基表不能启用 Total Recall

2)如果使用取消关联,则不能保证历史记录的永久性(但您总可以通过正确的权限清除之前的历史记录)

3)历史记录表没有可移植性

8、准则

1)使用 SCN 进行精确查询

或者

2)为方便可使用闪回技术

3)闪回使用当前系统设置

4)在查询过去的数据之前,使用 COMMIT 或 ROLLBACK 操作确保数据库的一致性

5)不能从动态性能 (V$) 视图检索过去的数据。它们包含当前数据

6)但是,可以在静态数据字典视图(如 *_TABLES)中执行对过去数据的查询

9、查看闪回数据归档

查看结果:

DBA绝招之数据库闪回技术


二:使用闪回回收站 

1、闪回删除和回收站

DBA绝招之数据库闪回技术

2、回收站

DBA绝招之数据库闪回技术

3、从回收站还原表

1)还原删除的表和从属对象

2)如果多个回收站条目具有相同原始名称,则:

  • 使用系统生成的唯一名称来还原特定版本

  • 使用原始名称时,还原的表遵循后进先出(LIFO) 的规则

3)重命名原始名称(如果当前正在使用该名称)

DBA绝招之数据库闪回技术

4、回收站:自动回收空间

DBA绝招之数据库闪回技术

5、回收站:手动回收空间

DBA绝招之数据库闪回技术

6、不使用回收站

DBA绝招之数据库闪回技术

回收站的安全注意事项:

DBA绝招之数据库闪回技术

7、查询回收站

DBA绝招之数据库闪回技术


第三部分:执行闪回数据库

一、配置闪回数据库

1、闪回数据库

闪回数据库操作:

作用类似于数据库的倒带按钮

可以在用户造成了逻辑数据损坏的情况下使用

DBA绝招之数据库闪回技术

2、闪回数据库体系结构

DBA绝招之数据库闪回技术

3、配置闪回数据库

DBA绝招之数据库闪回技术


二、执行闪回数据库操作

1、需要执行的操作

1)确保数据库处于ARCHIVELOG 模式

2)启用闪回日志记录并指定快速恢复区

DBA绝招之数据库闪回技术

2、闪回数据库:示例

1)闪回:以独占模式装载数据库

DBA绝招之数据库闪回技术

2)复查更改:以只读方式打开数据库

3)完成:使用 RESETLOGS 以读/写方式打开数据库

3、闪回数据库注意事项

1)闪回数据库操作完成后,打开数据库:

  • 在只读模式下验证使用的目标时间或 SCN 正确无误

  • 使用 RESETLOGS 操作以允许 DML

2)“闪回”与“恢复”是对立的

3)以下情况下不能使用闪回数据库操作:

  • 控制文件已还原或已重新创建。

  • 表空间已删除。

  • 数据文件的大小已被减小。

4)使用 TO BEFORE RESETLOGS 子句闪回至上一次 RESETLOGS 操作前的那一刻


三:监视闪回数据库

1、要针对保留目标监视容量

1)查看快速恢复区的磁盘限额:

DBA绝招之数据库闪回技术

2)确定当前闪回窗口:

DBA绝招之数据库闪回技术

3)监视闪回数据库日志中的日志记录:

DBA绝招之数据库闪回技术

2、使用 EM 监视闪回数据库

DBA绝招之数据库闪回技术

3、保证还原点

  • 使用保证还原点可确保在任何时间通过执行FLASHBACK DATABASE 命令都可闪回到该 SCN

    DBA绝招之数据库闪回技术

4、闪回数据库和保证还原点

1)要使用保证还原点,数据库必须满足以下先决条件:

  • COMPATIBLE 初始化参数必须设置为 10.2 或更大值

  • 数据库必须在 ARCHIVELOG 模式下运行

  • FLASHBACK DATABASE 需要使用大约从还原点时间开始的归档重做日志

  • 必须配置快速恢复区

学习最新热门IT技术

找一份自己满意的高薪工作

升职加薪就是它了DBA绝招之数据库闪回技术DBA绝招之数据库闪回技术DBA绝招之数据库闪回技术

DBA绝招之数据库闪回技术

免费领取甲骨文内部学习资料

海文六月免费试听课预约

在这等你来试听哦~

DBA绝招之数据库闪回技术

【点击“阅读原文”预约报名海文6月免费试听课程。】

以上是关于DBA绝招之数据库闪回技术的主要内容,如果未能解决你的问题,请参考以下文章

如何打造 PostgreSQL 闪回环境?

己亥清爽恢复系列之数据文件4篇:DROP表后如何恢复(非闪回技术)

MySQL 闪回工具MyFlash

oracle 恢复table删除数据 恢复package(使用闪回)

MySQL Flashback 闪回功能详解

oracle异机恢复测试