【DB笔试面试814】在Oracle中,什么是闪回数据库(Flashback Database)?
闪回数据库就是当数据库出现逻辑错误时,能够将整个数据库回退到出错前的那个状态。应用场景包括:
① 系统管理员误删除了用户。
② 用户截断了表(TRUNCATE)。
③ 用户错误地执行了某个批处理任务,或者该批处理任务的脚本编写有问题,使得多个表的逻辑出现问题,无法采用闪回表的方式进行恢复。
闪回数据库是进行时间点恢复的新战略。它能够快速将Oracle数据库恢复到以前的时间,以正确更正由于逻辑数据损坏或用户错误而引起的任何问题。闪回日志可用于捕获旧版本的变化块。当需要执行恢复时,可快速重放闪回日志,以将数据库恢复到错误前的时间点,并且只恢复改变的块。这一过程非常快,可将恢复时间从数小时缩短至几分钟。此外,它还非常易用。通过发出以下简单的命令,可将数据库恢复到2:05PM。
1FLASHBACK DATABASE to '2:05 PM';
复制
要想启动Flashback Database的功能,那么需要满足以下几个条件:
① 数据库在Archivelog模式
② 数据库在MOUNT或OPEN状态
③ 使用闪回恢复区,参数db_recovery_file_dest_size和db_recovery_file_dest都必须配置,因为flashback log必须要求放在flash recovery area里,如下所示:
1alter system set db_recovery_file_dest_size=4g;
2alter system set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area';
3alter database add supplemental log data;
4alter database add supplemental log data(primary key,unique index) columns;
5alter database FLASHBACK on;--如果要关闭使用alter database flashback off;复制
在Flashback DB功能启用之后,Oracle启动了一个后台进程RVWR(Recovery Writer)负责把位于SGA中的Flashback Buffer中的Flashback Log写出到闪回恢复区中:
1--flashback buffer的大小:
2SQL> select * from v$sgastat where lower(name) like '%flash%';
3POOL NAME BYTES
4------------ -------------------------- ----------
5shared pool flashback generation buff 3981204
6SQL>
7
8--后台启动的RVWR进程:
9SQL> select addr,program from v$process where background=1 and program like '%RVWR%';
10ADDR PROGRAM
11-------- ----------------------------------------------------------------
128FACC870 ORACLE.EXE (RVWR)
13
14SQL> select paddr,description from v$bgprocess where paddr<>'00' AND paddr='8FACC870';
15PADDR DESCRIPTION
16-------- ----------------------------------------------------------------
178FACC870 Recovery Writer
18SQL>复制
在启用闪回数据库功能的过程中,生成的告警日志如下所示:
1Tue Feb 06 11:17:07 2018
2alter database FLASHBACK on
3Starting background process RVWR
4Tue Feb 06 11:17:07 2018
5RVWR started with pid=31, OS id=12594
6Allocated 3981120 bytes in shared pool for flashback generation buffer
7Flashback Database Enabled at SCN 2010282
8Completed: alter database FLASHBACK on复制
与闪回数据库有关的几个重要视图如下所示:
1SELECT * FROM V$FLASHBACK_DATABASE_LOG;--记录闪回日志信息,包括最早可以回复的SCN,闪回日志的大小
2SELECT * FROM V$FLASHBACK_DATABASE_STAT;--用于监视闪回数据库日志中记录闪回数据的开销,包含24小时的信息,每行代表一个小时的时间间隔,可以确定数据生成的变化,FLASHBACK_DATA和REDO_DATA分别表示时间间隔内写入的闪回字节数和Redo日志字节数
3SELECT * FROM V$FLASHBACK_DATABASE_LOGFILE ;--闪回数据库日志文件信息复制
& 说明:
有关如何开启闪回数据库的功能可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2136497/
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
==================================================================================================================
【干货来了|小麦苗IT资料分享】
★小麦苗DB职场干货:https://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w
★小麦苗数据库健康检查:https://share.weiyun.com/5lb2U2M
★小麦苗微店:https://weidian.com/?userid=793741433
★各种操作系统下的数据库安装文件(Linux、Windows、AIX等):https://pan.baidu.com/s/1hqff3Evv6oj2-Tn87MpFkQ
★小麦苗分享的资料:https://share.weiyun.com/57HUxNi
★小麦苗课堂资料:https://share.weiyun.com/5fAdN5m
★小麦苗课堂试听资料:https://share.weiyun.com/5HnQEuL
★小麦苗出版的相关书籍:https://share.weiyun.com/5sQBQpY
★小麦苗博客文章:https://share.weiyun.com/5ufi4Dx
★数据库系列(Oracle、MySQL、NoSQL):https://share.weiyun.com/5n1u8gv
★公开课录像文件:https://share.weiyun.com/5yd7ukG
★其它常用软件分享:https://share.weiyun.com/53BlaHX
★其它IT资料(OS、网络、存储等):https://share.weiyun.com/5Mn6ESi
★Python资料:https://share.weiyun.com/5iuQ2Fn
★已安装配置好的虚拟机:https://share.weiyun.com/5E8pxvT
★小麦苗腾讯课堂:https://lhr.ke.qq.com/
★小麦苗博客:http://blog.itpub.net/26736162/
★OCP培训:https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA
★12c的OCP培训:https://mp.weixin.qq.com/s/hMLHlyjMHhLmA0xN4hLvfw
★OCM培训:https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA
★高可用(RAC+DG+OGG)培训:https://mp.weixin.qq.com/s/4vf042CnOdAD8zDyjUueiw
★小麦苗课堂腾讯视频:http://v.qq.com/vplus/71f69a319a24c6808cd6e6189ae90664
==================================================================================================================
复制
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:230161599、618766405
● 微信:lhrbestxh
● 微信公众号:DB宝
● 提供Oracle OCP、OCM、高可用(rac+dg+ogg)和MySQL最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:DB宝,学习最实用的数据库技术。
