Flashback Database 闪回数据库

来源:互联网 发布:淘宝尾款怎么付 编辑:程序博客网 时间:2024/06/06 04:33

条件:

1、必须处于归档模式

SQL> archive loglist

数据库日志模式            存档模式

自动存档             启用

存档终点            USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列     119

下一个存档日志序列   121

当前日志序列           121

SQL>

 

2、数据库必须指定了Flash Recovery Area

初始化参数:

Db_recovery_file_dest:指定FRA的存储路径,可以是文件系统、asm磁盘组,但是不能是裸设备。

如果是rac结构,建议将FRA置于共享存储中。

Db_recovery_file_dest_size:指定FRA最大可用空间。

 

SQL> showparameter db_recovery_file_dest

 

NAME                                 TYPE        VALUE

----------------------------------------------- ------------------------------

db_recovery_file_dest                string      D:\oracle\product\10.2.0\flash

                                                _recovery_area

db_recovery_file_dest_size           big integer 5000M

SQL>

 

3、数据库必须启动flashback database

SQL> selectflashback_on from v$database;

 

FLASHBACK_ON

------------------

NO

 

SQL> alterdatabase flashback on;

alter databaseflashback on

*

第 1 行出现错误:

ORA-38759:数据库必须仅由一个实例装载并且不能打开。

 

 

SQL> shutdownimmediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startupmount;

ORACLE 例程已经启动。

 

Total System GlobalArea  612368384 bytes

Fixed Size                  1250428 bytes

Variable Size             260049796 bytes

Database Buffers          343932928 bytes

Redo Buffers                7135232 bytes

数据库装载完毕。

SQL> alterdatabase flashback on;

 

数据库已更改。

 

SQL> selectflashback_on from v$database;

 

FLASHBACK_ON

------------------

YES

 

SQL>

 

4、参数db_flashback_retention_target:flashbacklog数据保留的时间。

SQL> showparameter db_flashback_retention_target;

 

NAME                                 TYPE        VALUE

----------------------------------------------- -----------------

db_flashback_retention_target       integer     1440 ====>单位是minute,即24小时

SQL>

该参数未直接指定flashrecovery area大小,但是受其约束。

如:库每天10%数据变动,设置为1440,则flash recovery area 要当前库实际容量的10%;设置为2880,则flashrecovery area 要当前库实际容量的20%;

 

5、启用force logging:强制所有操作均写入重做日志,否则对于nologging方式下插入的数据可能无法用flashbackdatabase恢复。

 

SQL> selectforce_logging from v$database;

 

FOR

---

NO

 

SQL> alterdatabase force logging;

 

数据库已更改。

 

SQL> alterdatabase no force logging;

 

数据库已更改。

 

 

Flashback database制约因素:

1、它用来讲数据库中的数据恢复到之前的某个时间点,而非介质恢复,因此不能用来恢复之前被删除的数据文件。

2、如果控制文件被重建,则在此之前所产生的所有flashback logs都失效,也就是不能讲flashback database 恢复到控制文件被重建之前。

3、不支持对数据库执行过shrin(收缩)操作后的恢复。

 

原创粉丝点击