ORACLE_OCP之闪回数据库

ORACLE_OCP之闪回数据库

  • 文章目标:
    • 描述闪回数据库架构
    • 配置数据库以支持闪回数据库
    • 执行闪回数据库

一、闪回数据库:

  • 可以将数据库回退到过去的某一时刻,效果等同于RMAN的不完整恢复.他将丢失在闪回点之后的所有数据,因为他必须使用resetlogs打开数据库.
  • 它可以恢复一些逻辑错误,比如update语句忘记了where过滤条件,导致整个表的数据被修改等.

闪回数据库不能撤销物理损坏,而只能恢复用户错误造成的逻辑错误.

二、闪回数据库:连续数据保护

  • 快速的时间点恢复策略
  • 消除了还原整个数据库备份的需要
  • 为数据库提供持续的数据保护
  • 优化:更改前块记录
  • 恢复刚刚更改的块
  • 重播日志以将数据库还原到所需时间
  • 提供快速恢复:分钟,而不是几个小时
  • 需要单个命令来还原
  • 闪回数据库到正确的时间上

在这里插入图片描述

三、闪回数据库操作

  • 就像数据库的倒带按钮一样
  • 可以在用户造成逻辑数据损坏的情况下使用

在这里插入图片描述

四、闪回数据库架构

在这里插入图片描述

  • 启用闪回数据库,修改的块的镜像会不时的从数据库缓冲区复制到SGA内的闪回缓冲区,由恢复写入器进程(Recovery Writer,RVWR)将闪回缓冲区写入磁盘和闪回日志.闪回日志记录的是完整块镜像的日志.
  • 闪回数据库从性能考虑,并不会将所有块的变化写入闪回日志.
  • 假设有一个数据块X,每五分钟改变一次.那么从10点到11点,改变了20次,但是很可能只有12次变更写入了闪回日志.
  • 假设数据块X,9:00和9:05分的变更写入了闪回日志,而现在需要将数据库闪回至9:03
  • 闪回数据库首先会找到块X在9:00变更的完整镜像,然后应用redolog,将数据块A的变更推到9:03.
  • 这个恢复的方式虽然和RMAN不完整恢复相似,但是闪回数据库更加方便和快捷.
  • 假设有一个凌晨4点的RMAN备份,如果在上午11点发生了用户错误,使用RMAN不完整恢复,恢复到10:30.这实际上是将数据库所有的块(凌晨4点的版本),然后应用redolog向前推进至10:30
  • 而闪回数据库则不同,闪回日志只记录发生变化的块.按照上面的例子,只需要在闪回日志中找到9:03分之前的最近一个数据块的版本,其余的应用redolog即可.所以闪回数据库相对于RMAN不完全恢复有如下的优点:
    • 1.闪回数据库只恢复有变化的数据块(RMAN需要恢复所有的数据块)
    • 2.闪回数据库从最近的一个数据块版本恢复。RMAN不完全恢复是从距恢复时间点上最近的一份备份开始恢复,当备份恢复完成后,和恢复时间点差的时间上的事务需要进行REDO重演。

五、Configuring Flashback Database

SQL> ALTER SYSTEM SET
2 DB_FLASHBACK_RETENTION_TARGET=2880 SCOPE=BOTH;
SQL> ALTER DATABASE FLASHBACK ON;(mount模式下)
在这里插入图片描述

六、闪回数据库:示例

  • 闪回阶段: 数据库必须在Mount状态下 (以独占模式)进行闪回数据库操作

RMAN> FLASHBACK DATABASE TO TIME =
2> “TO_DATE(‘2009-05-27 16:00:00’,
3> ‘YYYY-MM-DD HH24:MI:SS’)”;

RMAN> FLASHBACK DATABASE TO SCN=23565;

RMAN> FLASHBACK DATABASE
2> TO SEQUENCE=223 THREAD=1;

SQL> FLASHBACK DATABASE
2 TO TIMESTAMP(SYSDATE-1/24);
SQL> FLASHBACK DATABASE TO SCN 53943;
SQL> FLASHBACK DATABASE TO RESTORE POINT b4_load;

  • 要查看闪回是否成功:以read only模式打开数据库
  • 确认闪回完成:用RESETLOGS 在 read /write下打开
  • Alter database open resetlogs;

七、闪回数据库注意事项

  • 闪回数据库操作完成后,打开数据库:
    • 在只读模式下,验证是否使用了正确的目标时间或SCN
    • 使用RESETLOGS操作以允许DML的方式打开数据库,让数据库正常工作。
  • 在以下情况下,您将无法使用闪回数据库:
    • 控制文件已还原或重新创建。
    • 表空间已删除。
    • 数据文件的大小已减小。
  • 使用TO BEFORE RESETLOGS子句闪回到上一次RESETLOGS操作之前。

八、监视闪回数据库信息

  • 监控达到保留目标的能力:

  • 查看闪回日志区磁盘配额:

    SQL> SELECT estimated_flashback_size,
    2 flashback_size
    3 FROM V$FLASHBACK_DATABASE_LOG;

  • 确定当前的闪回窗口:

    SQL> SELECT oldest_flashback_scn,
    2 oldest_flashback_time
    3 FROM V$FLASHBACK_DATABASE_LOG;

  • 监视闪回数据库日志中的日志:

    SQL> SELECT *
    2 FROM V$FLASHBACK_DATABASE_STAT;

九、A guaranteed restore point-保证的还原点

  • 有保证的还原点可确保您可以执行:
  • 随时向该SCN发送FLASHBACK DATABASE命令。

SQL> CREATE RESTORE POINT before_upgrade
2 GUARANTEE FLASHBACK DATABASE;

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

  • 要使用保证的还原点,数据库必须满足以下先决条件:
    • COMPATIBLE初始化参数必须设置为10.2或更大。
    • 数据库必须处于ARCHIVELOG模式。
    • FLASHBACK DATABASE要求从还原点左右开始使用归档的重做日志。
    • 必须配置快速恢复区。

十一、最佳实践:闪回数据库

  • 调整快速恢复区存储。
  • 使用ASM,配置足够的磁盘组,依此类推。
  • 使用物理备用数据库测试闪回日志记录。
  • 在运行比闪回保留期更长的工作负荷之后,请使用V$FLASHBACK_DATABASE_LOG调整日志空间的大小。
  • 创建保证的还原点(GRP),而无需启用闪回日志记录.
    • 为重复更新相同块的工作量节省磁盘空间
    • 删除GRP以立即回收空间
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值