oracle10g 闪回恢复区
一 什么是闪回恢复区(flash recovery area)
闪回恢复区是oracle10g引入的概念,是一块用来存储恢复相关文件的一个存储空间,用来简化、完善备份与恢复的。个人理解,就是指定一个文件夹并设定它的大小,oracle就把恢复数据库相关的文件往里面放。
二 闪回恢复区里面的内容
SQL> select file_type from v$flash_recovery_area_usage;
FILE_TYPE
------------
CONTROLFILE
ONLINELOG
ARCHIVELOG
BACKUPPIECE
IMAGECOPY
FLASHBACKLOG
已选择6行。
三 启动闪回恢复区
要启动闪回恢复区,数据库必须在归档模式下,并且把数据库启动到mount状态下。然后执行
alter database flashback on;
open数据库之后,数据库就启动了闪回恢复区。可以通过下面的语句来查看当前数据库是否启动了闪回恢复区:
select flashback_on from v$database;
如果为yes则表示启动了闪回恢复区,否则就没有启动。
四 闪回恢复区的维护
跟闪回恢复区相关的参数
1) db_recovery_file_dest
用来指定闪回恢复区的路径的动态参数:
alter system set db_recovery_file_Dest='D:\oracle\flash_recover_area' scope=both;
闪回恢复区的默认路径是oracle_base下的flash_recovery_area文件夹。
2)db_recovery_file_dest_size
用来指定闪回恢复区大小的动态参数:
alter system set db_recovery_file_dest_size=2g scope = both;
3)db_flashback_retention_target
感觉我理解了这个参数,但是不好表达。拷贝一下资料里面的英文解释:db_flashback_retention_target specifies the upper limit (in minutes) on how far back in time the database may be flashed back.
也就是数据库可以闪回的upper limit,默认是1440,单位是秒。也就是默认情况下,数据库可以闪回到24小时前的状态,也就是保存了24小时之内的闪回数据(应该是闪回日志)。
这个参数跟undo_retention有点类似,闪回恢复区的空间富裕的话,闪回数据是不会自动删除的,可以闪回到24小时之后的某个时间。“db_flashback_retention_target specifies the upper limit on how far”,个人认为是最小时间,如果db_flashback_retention_target的值是1440的话,最少可以返回到24小时前的那个时间。
另外,这个参数也是可以动态修改的:
alter system set db_flashback_retention_target=2880 scope = both;
五 相关的动态性能表
V$FLASH_RECOVERY_AREA_USAGE
V$FLASHBACK_DATABASE_LOGFILE
V$FLASHBACK_DATABASE_LOG
V$FLASHBACK_DATABASE_STAT
V$RECOVER_FILE
V$RECOVERY_LOG
V$RECOVERY_STATUS
V$RECOVERY_FILE_STATUS
V$RECOVERY_PROGRESS
V$INSTANCE_RECOVERY
V$RECOVERY_FILE_DEST
闪回恢复区是oracle10g引入的概念,是一块用来存储恢复相关文件的一个存储空间,用来简化、完善备份与恢复的。个人理解,就是指定一个文件夹并设定它的大小,oracle就把恢复数据库相关的文件往里面放。
二 闪回恢复区里面的内容
SQL> select file_type from v$flash_recovery_area_usage;
FILE_TYPE
------------
CONTROLFILE
ONLINELOG
ARCHIVELOG
BACKUPPIECE
IMAGECOPY
FLASHBACKLOG
已选择6行。
三 启动闪回恢复区
要启动闪回恢复区,数据库必须在归档模式下,并且把数据库启动到mount状态下。然后执行
alter database flashback on;
open数据库之后,数据库就启动了闪回恢复区。可以通过下面的语句来查看当前数据库是否启动了闪回恢复区:
select flashback_on from v$database;
如果为yes则表示启动了闪回恢复区,否则就没有启动。
四 闪回恢复区的维护
跟闪回恢复区相关的参数
1) db_recovery_file_dest
用来指定闪回恢复区的路径的动态参数:
alter system set db_recovery_file_Dest='D:\oracle\flash_recover_area' scope=both;
闪回恢复区的默认路径是oracle_base下的flash_recovery_area文件夹。
2)db_recovery_file_dest_size
用来指定闪回恢复区大小的动态参数:
alter system set db_recovery_file_dest_size=2g scope = both;
3)db_flashback_retention_target
感觉我理解了这个参数,但是不好表达。拷贝一下资料里面的英文解释:db_flashback_retention_target specifies the upper limit (in minutes) on how far back in time the database may be flashed back.
也就是数据库可以闪回的upper limit,默认是1440,单位是秒。也就是默认情况下,数据库可以闪回到24小时前的状态,也就是保存了24小时之内的闪回数据(应该是闪回日志)。
这个参数跟undo_retention有点类似,闪回恢复区的空间富裕的话,闪回数据是不会自动删除的,可以闪回到24小时之后的某个时间。“db_flashback_retention_target specifies the upper limit on how far”,个人认为是最小时间,如果db_flashback_retention_target的值是1440的话,最少可以返回到24小时前的那个时间。
另外,这个参数也是可以动态修改的:
alter system set db_flashback_retention_target=2880 scope = both;
五 相关的动态性能表
V$FLASH_RECOVERY_AREA_USAGE
V$FLASHBACK_DATABASE_LOGFILE
V$FLASHBACK_DATABASE_LOG
V$FLASHBACK_DATABASE_STAT
V$RECOVER_FILE
V$RECOVERY_LOG
V$RECOVERY_STATUS
V$RECOVERY_FILE_STATUS
V$RECOVERY_PROGRESS
V$INSTANCE_RECOVERY
V$RECOVERY_FILE_DEST
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/235507/viewspace-620808/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/235507/viewspace-620808/