题记:
生产RAC,闪回和归档必须配置,但是闪回功能基本上用不到,读者只需要了解其作用以及如何紧急处理因归档或者闪回空间快满或者已经满导致数据库crash的解决方法即可。
数据库的备份、恢复始终是重点,后续继续讨论。
Oracle RAC 11R2配置归档、删除策略,闪回配置完整版,移步:http://my.oschina.net/1272149624/blog/611947
本文配置归档、闪回删除策略完整过程
归档日志删除
关于归档日志的删除,最佳删除方式通过RMAN进行删除!
误区:直接在操作系统层面删除归档日志,这是不可取的,因为对于归档日志而言,其归档日志信息存在于控制文件中,就算在操作系统层面删除了此物理文件,但与归档日志相关的视图(茹select * from gv$archived_log)并不会更新此删除信息,因此对于真正删除归档、降低归档空间使用率,从而避免因归档日志信息爆满导致系统hang住并没有帮助,因此删除归档日志最佳方法是通过RMAN工具进行删除。
推荐两种利用RMAN进行删除归档日志的方法:
A.RMAN> delete archivelog all completed before 'sysdate-7';--清除一周之前的所有归档日志
B.RMAN> backup database plus archivelog delete all input; --备份数据库+归档文件,并删除归档文件
当然,生产环境中,rman是管理archivelog的最佳工具。
关于rman备份、恢复、删除策略,我们后续会有相关介绍。
闪回日志删除
首先对闪回日志进行一个简单的描述:
undo和redo是oracle保证事务一致性最佳、最强搭档;
闪回、归档日志与undo、redo是一对一的关系,他们关乎着整个系统的备份是否能够快速,保证数据最大限度的减少丢失。
其次,oracle闪回空间由系统通过覆盖进行间接删除。
闪回日志大小控制,由两个参数控制
SQL> show parameter undo; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS1
undo_retention控制,闪回数据最多保留多久,默认为900(一刻钟);
SQL> show parameter db_recover NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_recovery_file_dest string +arch db_recovery_file_dest_size big integer 1G
db_recovery_file_dest_size,最大1G;
这两个参数中,undo_retention优先级比db_recovery_file_dest_size高,也就是说,undo_retention时间到了阀值,那么db_recovery_file_dest闪回日志将被覆盖。
视图v$flash_recovery_area_usage记载了整个库内归档、闪回、备份集等信息--DBA必须监控的视图
SQL> select * from v$flash_recovery_area_usage; FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES -------------------- ------------------ ------------------------- --------------- CONTROL FILE 0 0 0 REDO LOG 0 0 0 ARCHIVED LOG 0 0 0 BACKUP PIECE 3.81 0 3 IMAGE COPY 0 0 0 FLASHBACK LOG 19.92 0 4 FOREIGN ARCHIVED LOG 0 0 0 7 rows selected.