Flashback Database功能非常类似与RMAN的不完全恢复,它可以把整个数据库回退到过去的某个时点的状态,这个功能依赖于Flashback log日志。比RMAN更快速和高效,因此Flashback Database 可以看作是不完全恢复的替代技术。闪回数据库的前提是要开启归档日志。 一、闪回原理 在启用闪回数据时,会将修改过的块的前映像作为闪回数据库日志保存在闪回恢复区中,如出现逻辑坏块或用户错误操作需要恢复到过去的时间点,闪回数据库将还原数据库的前映像,然后使用归档日志和redo前滚到期望恢复的时间点,因为无需还原数据库的数据文件,所有此过程速度比较传统的还原恢复通常快很多。 1.1 闪回限制: 1.2 配置闪回参数: 闪回数据库相关参数: ④ v$flash_recovery_area_usage; #闪回区使用率 1.3 开启归档和闪回功能: SQL> SELECT flashback_on, force_logging, log_mode FROM v$database; 开启闪回和归档方法: SQL>shutdown immediate; SQL>startup mount; SQL>alter database archivelog;#开启归档 1.4 闪回参数设置: alter system set db_recovery_file_dest_size=5G scope=both; alter system set db_recovery_file_dest='/home/app/flash_recovery_area' scope=both; alter system set db_flashback_retention_target=2880; 二、闪回数据库 闪回步骤: ① 关闭数据库
② 启动数据库到mount状态[exclusive模式]
③ 闪回至某个时间点,SCN或还原点
④ 使用resetlogs打开数据库
2.1 通过还原点闪回
通过v$restore_point视图,可以查看当前数据库的闪回点。
如果没有闪回点,可以创建个闪回点。方法如下:
SQL>CREATE RESTORE POINT FLASHPOINT_1 GRARANTEE FLASHBACK DATABASE;#创建一个flashpoint_1的闪回点 --进行相关的DML操作之后,闪回数据库到flashpoint_1状态 SQL>SHUTDOWN IMMEDIATE #关闭数据库 SQL>STARTUP MOUNT; #启到MOUNT状态 SQL>FLASHBACK DATABASE TO RESTORE POINT FLASHPOINT_1; #闪回数据库到flashpoint_1闪回点 SQL>ALTER DATABASE OPEN RESETLOGS; #打开数据库 --删除归档日志 RMAN TARGET / RMAN> DELETE ARCHIVELOG ALL; #删除所有归档日志 RMAN> EXIT; SQL>DROP RESTORE POINT FLASHPOINT_1; #删除闪回点 SQL>CREATE restore point FLASHPOINT_2 GRARANTEE FLASHBACK DATABASE; #新建闪回点 2.2 通过SCN闪回
SQL>SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER AS SCN_NO FROM DUAL;#获取当前数据库的SCN号 --进行相关的DML操作之后,闪回数据库到SCN_NO状态 SQL>SHUTDOWN IMMEDIATE #关闭数据库 SQL>STARTUP MOUNT; #启到MOUNT状态 SQL>FLASHBACK DATABASE TO SCN SCN_NO; #闪回数据库到闪回SCN_NO点 SQL>ALTER DATABASE OPEN RESETLOGS; #打开数据库 3 闪回数据库方法 3.1 sqlplus下基于SCN闪回 FLASHBACK DATABASE [<database_name>] TO SCN <system_change_number> 3.2 sqlplus下基于时间戳闪回 FLASHBACK DATABASE [<database_name>] TO TIMESTMP <system_timestamp_value> 3.3 sqlplus下基于还原点闪回 FLASHBACK DATABASE [<database_name>] TO RESTORE POINT <restore_point_name> 3.4 RMAN下基于时间戳闪回 RMAN> FLASHBACK DATABASE TO TIME = "TO_DATE('2013-12-08 12:45:00','YYYY-MM-DD HH24:MI:SS')" 3.5 RMAN下基于SCN闪回 RMAN> FLASHBACK DATABASE TO SCN=15809979; 3.6 RMAN下基于:归档序号 RMAN> FLASHBACK DATABASE TO SEQUENCE=192 THREAD=1; |
|
来自: 浸心阁 > 《flashback》