清空 oracle 闪回区

简介:

 impdp 导入数据出现如下错误

 
  1. Errors in file /oracle/app/diag/rdbms/gavin/Gavin/trace/Gavin_arc0_5889.trc: 
  2. ORA-19809: 超出了恢复文件数的限制 
  3. ORA-19804: 无法回收 49837568 字节磁盘空间 (从 5218762752 限制中) 
  4. ARC0: Error 19809 Creating archive log file to '/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_180_%u_.arc' 

应为arc log 没有指定默认放在了闪回区,手工删除闪回区归档日志后,仍然出现以上错误,查询闪回区使用情况

 

 
  1. sys@GAVIN>SELECT substr(name, 1, 30) name, space_limit AS quota, 
  2.   2             space_used        AS used, 
  3.   3              space_reclaimable AS reclaimable, 
  4.   4              number_of_files   AS files 
  5.   5        FROM  v$recovery_file_dest ; 
  6.  
  7. NAME                                                                                                                          QUOTA       USED 
  8. ------------------------------------------------------------------------------------------------------------------------ ---------- ---------- 
  9. RECLAIMABLE      FILES 
  10. ----------- ---------- 
  11. /oracle/app/flash_recovery_are                                                                                           5218762752 5174088704 
  12.           0        110 

发现仍然记录了110个文件,并未释放.

使用rman对归档日志惊醒cross check

 

 
  1. [oracle@virtuabox ~]$ rman target / 
  2.  
  3. 恢复管理器: Release 11.2.0.1.0 - Production on 星期四 7月 19 14:00:00 2012 
  4.  
  5. Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved. 
  6.  
  7. 连接到目标数据库: GAVIN (DBID=2942876758) 
  8.  
  9. RMAN> crosscheck archivelog all
  10.  
  11. 使用目标数据库控制文件替代恢复目录 
  12. 分配的通道: ORA_DISK_1 
  13. 通道 ORA_DISK_1: SID=16 设备类型=DISK 
  14. 对归档日志的验证失败 
  15. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_70_80h2qxpn_.arc RECID=1 STAMP=789049214 
  16. 对归档日志的验证失败 
  17. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_71_80h6z3hl_.arc RECID=2 STAMP=789053542 
  18. 对归档日志的验证失败 
  19. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_72_80h6z8o7_.arc RECID=3 STAMP=789053549 
  20. 对归档日志的验证失败 
  21. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_73_80h6zlgv_.arc RECID=4 STAMP=789053557 
  22. 对归档日志的验证失败 
  23. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_74_80h6zrds_.arc RECID=5 STAMP=789053566 
  24. 对归档日志的验证失败 
  25. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_75_80h70264_.arc RECID=6 STAMP=789053571 
  26. 对归档日志的验证失败 
  27. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_76_80h707kp_.arc RECID=7 STAMP=789053577 
  28. 对归档日志的验证失败 
  29. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_77_80h70fg1_.arc RECID=8 STAMP=789053583 
  30. 对归档日志的验证失败 
  31. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_78_80h70mhx_.arc RECID=9 STAMP=789053589 
  32. 对归档日志的验证失败 
  33. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_79_80h70sgg_.arc RECID=10 STAMP=789053594 
  34. 对归档日志的验证失败 
  35. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_80_80h70zgp_.arc RECID=11 STAMP=789053601 
  36. 对归档日志的验证失败 
  37. ... 
  38. ... 
  39. ... 
  40. ... 
  41. ... 
  42. =/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_179_80h7k015_.arc RECID=110 STAMP=789054113 
  43. 已交叉检验的 110 对象 

使用rman 从数据库记录中删除归档日志的记录

 
  1. RMAN> delete expired archivelog all
  2.  
  3. 使用目标数据库控制文件替代恢复目录 
  4. 分配的通道: ORA_DISK_1 
  5. 通道 ORA_DISK_1: SID=20 设备类型=DISK 
  6. db_unique_name 为 GAVIN 的数据库的归档日志副本列表 
  7. ===================================================================== 
  8.  
  9. 关键字     线程序列     S 时间下限   
  10. ------- ---- ------- - ---------- 
  11. 1       1    70      X 19-7月 -12 
  12.         名称: /oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_70_80h2qxpn_.arc 
  13.  
  14. ... 
  15. ... 
  16. ... 
  17.  
  18. 110     1    179     X 19-7月 -12 
  19.         名称: /oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_179_80h7k015_.arc 
  20.  
  21.  
  22. 是否确定要删除以上对象 (输入 YES 或 NO)? yes 
  23. ... 
  24. ... 
  25. ... 
  26. 已删除的归档日志 
  27. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_70_80h2qxpn_.arc RECID=1 STAMP=789049214 
  28. 已删除的归档日志 
  29. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_71_80h6z3hl_.arc RECID=2 STAMP=789053542 
  30. 已删除的归档日志 
  31. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_72_80h6z8o7_.arc RECID=3 STAMP=789053549 
  32. ... 
  33. ... 
  34. ... 
  35. 已删除的归档日志 
  36. 归档日志文件名=/oracle/app/flash_recovery_area/GAVIN/archivelog/2012_07_19/o1_mf_1_179_80h7k015_.arc RECID=110 STAMP=789054113 
  37. 110 EXPIRED 对象已删除 

重新验证闪回区占用情况

 

 
  1. sys@GAVIN>SELECT substr(name, 1, 30) name, space_limit AS quota, 
  2.   2            space_used        AS used, 
  3.   3             space_reclaimable AS reclaimable, 
  4.   4              number_of_files   AS files 
  5.   5       FROM  v$recovery_file_dest ; 
  6.  
  7. NAME                                                                                                                          QUOTA       USED 
  8. ------------------------------------------------------------------------------------------------------------------------ ---------- ---------- 
  9. RECLAIMABLE      FILES 
  10. ----------- ---------- 
  11. /oracle/app/flash_recovery_are                                                                                           5218762752  143901184 
  12.           0          3 

处理完毕

由于本次事故是由于归档日志占用了大量的闪回区造成的,

所以可以考虑转移归档日志位置

查看归档情况

 
  1. sys@GAVIN>archive log list; 
  2. 数据库日志模式            存档模式 
  3. 自动存档             启用 
  4. 存档终点            USE_DB_RECOVERY_FILE_DEST 
  5. 最早的联机日志序列     181 
  6. 下一个存档日志序列   183 
  7. 当前日志序列           183 

文档存在了 文件恢复区 所以导致了闪回区满的情况

查看下闪回区的具体地址

 
  1. sys@GAVIN>show parameter DB_RECOVERY_FILE_DEST 
  2.  
  3. NAME                                 TYPE        VALUE 
  4. ------------------------------------ ----------- ------------------------------ 
  5. db_recovery_file_dest                string      /oracle/app/flash_recovery_are 
  6.                                                  a 
  7. db_recovery_file_dest_size           big integer 4977M 

我们指定归档日志存放点

将db_recovery_file_dest参数置空

以防万一,将log_archive_dest参数也置空

我们这里采用的生效参数是log_archive_dest_1,修改方法如下

 

 
  1. sys@GAVIN>alter system set db_recovery_file_dest = '' scope=spfile; 
  2.  
  3. 系统已更改。 
  4.  
  5. sys@GAVIN>alter system set log_archive_dest = '' scope=spfile; 
  6.  
  7. 系统已更改。 
  8.  
  9. sys@GAVIN>alter system set log_archive_dest_1 = 'location=/oracle/app/arc' scope=spfile; 
  10.  
  11. 系统已更改。 

重启数据库验证归档日志位置

 

 
  1. sys@GAVIN>shutdown immediate; 
  2. 数据库已经关闭。 
  3. 已经卸载数据库。 
  4. ORACLE 例程已经关闭。 
  5. sys@GAVIN>startup 
  6. ORACLE 例程已经启动。 
  7.  
  8. Total System Global Area  826753024 bytes 
  9. Fixed Size                  2217872 bytes 
  10. Variable Size             583010416 bytes 
  11. Database Buffers          234881024 bytes 
  12. Redo Buffers                6643712 bytes 
  13. 数据库装载完毕。 
  14. 数据库已经打开。 
  15. sys@GAVIN>archive log list; 
  16. 数据库日志模式            存档模式 
  17. 自动存档             启用 
  18. 存档终点            /oracle/app/arc 
  19. 最早的联机日志序列     181 
  20. 下一个存档日志序列   183 
  21. 当前日志序列           183 

至此完全结束


     本文转自 珏石头 51CTO博客,原文链接:http://blog.51cto.com/gavinshaw/935314,如需转载请自行联系原作者



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1天前
|
SQL Oracle 关系型数据库
不小心删除表或数据后,如何利用Oracle的闪回进行恢复
不小心删除表或数据后,如何利用Oracle的闪回进行恢复
|
11月前
|
Oracle 关系型数据库 内存技术
|
Oracle 关系型数据库 数据库
Oracle备份恢复之闪回技术
Oracle备份恢复之闪回技术
175 0
Oracle备份恢复之闪回技术
|
Oracle 关系型数据库
Oracle学习(十三):闪回
本文主要讲Oracle闪回
165 0
|
Oracle 关系型数据库 数据库
关于PostgreSQL数据库兼容Oracle数据库闪回查询的实现方案
注:关于在PostgreSQL上面实现Oracle数据库的闪回功能(闪回查询 闪回表 闪回删除…)的这个想法已经有很长时间了,但是鉴于本人的能力 精力和身体条件 迟迟没有完成。期间也有很多的小伙伴跟我一起研究过这个功能,但是最终都因为各种各样的问题 没有做下去。Oracle数据库闪回功能跨越版本较大,功能也比较强大 在PostgreSQL数据库上实现,需要对数据库内核有很深入的理解 两大数据库不同的底层原理也终将影响各自的实现策略,PostgreSQL标记删除就地插入的特点和基于事务快照行可见性的特性是我们可以开发PostgreSQL闪回查询的大前提。本文主要介绍 实现闪回查询的 一种实现方案
302 0
|
SQL 缓存 Oracle
Oracle的学习心得和知识总结(一)|Oracle数据库闪回技术详解
Oracle的学习心得和知识总结(一)|Oracle数据库闪回技术详解
360 0
Oracle的学习心得和知识总结(一)|Oracle数据库闪回技术详解
|
Oracle 关系型数据库
oracle 数据回滚,恢复误删的数据,闪回表功能的使用
oracle 数据回滚,恢复误删的数据,闪回表功能的使用
485 0
oracle 数据回滚,恢复误删的数据,闪回表功能的使用
|
Oracle 关系型数据库 数据库
Oracle DataGuard 备库配置闪回模式
Oracle 数据库闪回通常设置在 DataGuard 备库,如果主库误删数据,可用备库闪回至删除点之前,获取丢失数据,然后再自动同步回来!
|
SQL Oracle 关系型数据库
Oracle闪回drop和闪回查询
        Oracle提供了7种闪回技术,分别为:闪回drop、闪回查询、闪回数据归档、闪回表、闪回版本查询、闪回事务、闪回数据库。此次验证下Oracle数据库闪回drop和闪回查询。 一、闪回DROP         又名闪回删除。
11054 0
|
SQL Oracle 关系型数据库