2013年(350)
分类: Oracle
2013-04-27 17:03:17
问:是否有独立的进程负责写 Logs(闪回日志)呢?
答:当然有,RVWR(Recovery Writer)正是负责此项工作的进程,与Flashback Database特性相同,该进程也是自版本开始引入,主要负责将闪回数据从SGA的闪回缓冲区(Flashback Buffer)中写到磁盘上。
问:启用Flashback Database需要在什么状态下进行?
答:必须在被置为mount状态时操作,也就是说如果想为当前正常操作的数据库打开Flashback Database特性,必须首先shutdown,然后启动到mount状态后,再通过alter database flashback on命令将其置于Flashback的保护之下。号称Oracle11gR2版本时,alter database flashback on命令可以在线操作了,不过未及,有兴趣有环境的朋友可以私下尝试。
问:如果RVWR不能写数据到磁盘,会千万什么影响?
答:简单的讲就俩字儿:报错!
问:SGA中的闪回缓冲区大小是否能够调整?
答:不能直接调整,Flashback Buffer被设置为LOG_BUFFER的2倍,因此如果希望增大闪回缓冲区的大小,可以通过加大LOG_BUFFER的方式间接实现。
问:能否使用RMAN备份Flashback Logs?
答:不可以的,Flashback Logs是由ORACLE自行维护,这部分数据也不需要。即使执行BACKUP RECOVERY AREA命令,也不会备份Flashback Logs,该项命令仅备份FRA中的下列部分:
问:Flashback Logs什么情况下会被删除?
答:正如前面所说,ORACLE自动维护Flashback Logs,因此一般情况下不需要DBA动手,ORACLE会在满足DB_FLASHBACK_RETENTION_TARGET初始化参数设置值的基本上,自动对Flashback Logs文件进行清理。
问:当Flashback Database到一个之前的时间点,不过还没有执行RESETLOGS之前,是否还可以再次Flashback Database到其它时间点?
答:相当可以!在OPEN RESETLOGS之前,DBA可以无限次执行FLASHBACK DATABASE,只要恢复的时间点在可操作范围内。
问:是否能够查看到FLASHBACK DATABASE操作的进展?
答:当执行FLASHBACK DATABASE操作时,可以通过查询V$SESSION_LONGOPS视图,来查看对应会话所做的操作。FLASHBACK DATABASE操作分为两个部分,一部分执行的是闪回操作,即恢复数据块的前映像;另一部分执行的是介质恢复的操作,通过应用REDOLOGS,将数据库修复到一致性状态。
问:手动删除过FRA中的文件,导致与V$FLASH_RECOVERY_AREA_USAGE中不符,怎样同步呢?
答:正如前文中所说,FRA中的文件和空间是由ORACLE自行维护,手动删除后出现的实际空间与数据字典中记录空间不符实在太正常不过。这里三思提两个解决方案:
1、如果删除的是归档、备份等文件,可以通过在RMAN清除这部分无效的记录,触发同步数据字典的操作;
2、先关闭FLASHBACK DATABASE特性,然后再重新启用该特性,触发同步数据字典的操作。;