[oracle] flash recovery area 闪回恢复区

Oracle 10g中增加了一个新特性: flash recovery area 闪回恢复区。因此,在安装oracle数据库时默认会启用闪回恢复区,主要用来存放归档日志,rman备份集,控制文件,spfile文件等等。
闪回恢复区由两个参数控制:db_recovery_file_dest和db_recovery_file_dest_size. 前者是存储位置,后者是存储的大小。
数据库非归档――>归档:
一旦有了闪回恢复区, 我们将数据库从非归档变为归档就变得非常容易。 只需将数据库设置为mount状态,然后设alter database archivelog; alter database open;就可以了。
db_recovery_file_dest_size参数控制:
这个参数主要是控制闪回区大小的。既是磁盘空间足够大,但是如果db_recovery_file_dest_size设置为1G,那么一旦闪回区的文件达到1G之后,就不会再增加了; 严重的话,会导致数据库的挂起。
如何解决这个问题呢? 如果简单认为将db_recovery_file_dest指定目录中的文件清空就可以解决的话, 那么你就大错特错了。因为你rm *只是告知os清空目录, 可是oracle并不知道你已经清空。你可以试试在sqlplus中, 看一下SELECT NAME, space_limit, space_used FROM v r e c o v e r y f i l e d e s t ; 结 果 显 示 你 的 s p a c e u s e d 并 没 有 减 少 。 怎 么 让 它 减 少 呢 ? 这 就 要 用 到 r m a n 了 。 首 先 连 接 进 入 r m a n , 检 查 一 下 目 前 的 归 档 日 志 的 情 况 ( l i s t a r c h i v e l o g a l l ; ) 如 果 磁 盘 上 的 归 档 日 志 文 件 已 经 被 o s 删 除 , 那 么 还 需 要 c r o s s c h e c k 一 下 ( c r o s s c h e c k a r c h i v e l o g a l l ; ) 。 然 后 就 可 以 删 除 了 ( c h a n g e a r c h i v e l o g a l l d e l e t e ; ) 这 时 候 你 在 检 查 一 下 v recovery_file_dest; 结果显示你的space_used并没有减少。 怎么让它减少呢? 这就要用到rman了。 首先连接进入rman,检查一下目前的归档日志的情况(list archivelog all;)如果磁盘上的归档日志文件已经被os删除, 那么还需要crosscheck一下(crosscheck archivelog all;)。 然后就可以删除了(change archivelog all delete;) 这时候你在检查一下v recoveryfiledestspaceusedrmanrman,listarchivelogall;oscrosscheck(crosscheckarchivelogall;)changearchivelogalldelete;vrecovery_file_dest视图,就可以发现space_used已经清空了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值