闪回数据库的必备条件
1.数据库必须启动归档模式
SQL> archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 1
下一个存档日志序列 2
当前日志序列 2
2.数据库必须指定闪回区
SQL> show parameter db_recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/flash_recovery
_area
db_recovery_file_dest_size big integer 5G
3.数据库必须启用闪回特性
SQL> conn /as sysdba
已连接。
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
NO
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1266392 bytes
Variable Size 67112232 bytes
Database Buffers 96468992 bytes
Redo Buffers 2924544 bytes
数据库装载完毕。
SQL> alter database flashback on;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
YES
注意,关闭闪回特性就是:alter database flashback off;
4.db_flashback_retention_target参数指定最多可以闪回数据库到多久以前
SQL> show parameter db_flashback
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target integer 1440
5.启用强制归档
SQL> select force_logging from v$database;
FOR
---
NO
SQL> alter database force logging;
数据库已更改。
SQL> select force_logging from v$database;
FOR
---
YES
6.查看当前scn
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
481769
7.误操作
... ...
8.闪回数据库
SQL> conn /as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1266392 bytes
Variable Size 67112232 bytes
Database Buffers 96468992 bytes
Redo Buffers 2924544 bytes
数据库装载完毕。
SQL> flashback database to scn 481769;
闪回完成。
SQL> alter database open resetlogs;
数据库已更改。
SQL> select status from v$instance;
STATUS
----------