Flashback Database 闪回数据库
条件: 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:oracleproduct10.2.0flash ????????????????????????????????????????????????_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(收缩)操作后的恢复。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |