全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

解决Oracle RMAN删除归档日志不释放问题的方法

前言

当Oracle 归档日志满了后,将无法正常登入oracle,需要删除一部分归档日志才能正常登入ORACLE。

最近同事在工作中遇到一个问题,他那边的一套Oracle 11g数据库使用RMAN没办法删除旧的归档,导致磁盘使用率很高。

oracle@ps251n2s:[/opt/oracle/archive/db] ls -ltr |more
total 3059881082
-rw-r----- 1 oracle oinstall 725320704 May 20 2016 1_1_91233774.dbf
-rw-rw---- 1 oracle oinstall 1756937216 Jun 7 2016 1_2_91233774.dbf
-rw-rw---- 1 oracle oinstall 1756731392 Jun 21 2016 1_3_91233774.dbf
-rw-rw---- 1 oracle oinstall 1758001152 Jul 3 2016 1_4_91233774.dbf
-rw-rw---- 1 oracle oinstall 1756729344 Jul 15 2016 1_5_91233774.dbf
-rw-rw---- 1 oracle oinstall 1765750784 Jul 26 22:00 1_6_91233774.dbf
-rw-rw---- 1 oracle oinstall 1760346112 Aug 6 14:04 1_7_91233774.dbf
......

使用RMAN list archivelog all;查看日志也没有显示旧归档日志的记录

RMAN> list archivelog all;
using target database control file instead of recovery catalog
List of Archived Log Copies for database with db_unique_name DBS
=====================================================================
Key Thrd Seq S Low Time 
------- ---- ------- - ---------
1206 1 1206 A 14-JAN-17
Name: /opt/oracle/archive/db/1_1206_91233774.dbf
1207 1 1207 A 14-JAN-17
Name: /opt/oracle/archive/db/1_1207_91233774.dbf
1208 1 1208 A 14-JAN-17
Name: /opt/oracle/archive/db/1_1208_91233774.dbf
......

使用crosscheck检查也没有查到旧归档日志记录

RMAN> crosscheck archivelog all;
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=16 device type=DISK
validation succeeded for archived log
archived log file name=/opt/oracle/archive/db/1_1206_91233774.dbf RECID=1206 STAMP=933244655
validation succeeded for archived log
archived log file name=/opt/oracle/archive/db/1_1207_91233774.dbf RECID=1207 STAMP=933249510
validation succeeded for archived log
archived log file name=/opt/oracle/archive/db/1_1208_91233774.dbf RECID=1208 STAMP=933254500
validation succeeded for archived log
archived log file name=/opt/oracle/archive/db/1_1209_91233774.dbf RECID=1209 STAMP=933259445
validation succeeded for archived log

查看v$archived_log视图也没有旧归档日志记录

解决过程

于是在网上找到一篇文章,大体意思是MAN删除归档日志的依据是controlfile中记录的归档日志,而不是你磁盘上实际存在的归档日志,如果你的归档日志已经不在controlfile中就无法被RMAN识别到,也就无法被删除。而致于归档信息何时在控制文件中被覆盖,这由一个参数control_file_record_keep_time来控制。

查看数据库中的参数是默认的7天

SYS@db> show parameter CONTROL_FILE_RECORD_KEEP_TIME
NAME        TYPE       VALUE
------------------------------------ -------------------------------- ------------------------------
control_file_record_keep_time  integer       7

难道是在控制文件中归档日志的记录条数只能保留7天的么?于是到MOS去找相关文档找到一篇Why Are Controlfile Entries For Archived Logs Not Overwritten After CONTROL_FILE_RECORD_KEEP_TIME? (文档 ID 1056085.1),文档介绍CONTROL_FILE_RECORD_KEEP_TIME参数并不是强制在控制文件中保留多少天的归档日志条目,而是由V$CONTROLFILE_RECORD_SECTION视图中的ARCHIVED LOG条目去控制的,当RECORDS_TOTAL=RECORDS_USED时旧的归档日志就会被覆盖掉。

于是查数据库中的V$CONTROLFILE_RECORD_SECTION视图,看到ARCHIVED LOG行的records_total=224意味着控制文件中只能保留224条归档日志文件信息。

SYS@dbs> select * from v$controlfile_record_section where type='ARCHIVED LOG';
TYPE      RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID
---------------------------- ----------- ------------- ------------ ----------- ---------- ----------
ARCHIVED LOG      584   224   224   88  87  1235

查询v$archived_log视图,总数为224条

SYS@dbs> select count(*) from v$archived_log;
COUNT(*)
----------
224

这时应该可以推断出由于控制文件中只能保留224条归档日志数据,所以以前的归档信息已经被控制文件刷出,RMAN无法识别到这些归档文件,所以就无法删除这些归档日志。

那么现在如果使用RMAN删除这些旧的归档日志呢?我想到使用catalog start with 命令重新注册这些文件到控制文件中

RMAN> catalog start with '/opt/oracle/archive/db';
......
File Name: /opt/oracle/archive/db/1_1005_91233774.dbf
File Name: /opt/oracle/archive/db/1_1006_91233774.dbf
File Name: /opt/oracle/archive/db/1_1007_91233774.dbf
Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done
......
RMAN> list archivelog all;
.....
1236 1 301 A 22-OCT-16
Name: /opt/oracle/archive/db/1_301_91233774.dbf
1237 1 302 A 22-OCT-16
Name: /opt/oracle/archive/db/1_302_91233774.dbf
......

旧的归档日志文件已经注册到控制文件中了,再使用RMAN进行删除就可以了

delete archivelog until logseq 1007;

再次查询v$controlfile_record_section视图,records_total也被“撑”大了

SYS@db> select * from v$controlfile_record_section where type='ARCHIVED LOG';
TYPE      RECORD_SIZE RECORDS_TOTAL RECORDS_USED FIRST_INDEX LAST_INDEX LAST_RECID
---------------------------- ----------- ------------- ------------ ----------- ---------- ----------
ARCHIVED LOG      584   896   742  807  652  1800

至此问题结束。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# oracle  # rman  # 归档日志  # 删除归档  # rman删除归档日志  # Oracle数据库如何删除归档日志文件  # Oracle删除归档日志及添加定时任务  # 解决Oracle数据库归档日志占满磁盘空间问题  # Oracle查询最近几天每小时归档日志产生数量的脚本写法  # Oracle归档日志写满(ora-00257)了怎么办  # win平台oracle rman备份和删除dg备库归档日志脚本  # oracle的归档模式 ORACLE数据库归档日志常用命令  # Linux下Oracle归档日志自动清理脚本代码(sh)  # oracle 如何关闭打开归档日志  # Oracle归档日志文件(查看、配置、删除)  # 登入  # 文档  # 数据库中  # 就会  # 是在  # 也就  # 也没  # 是由  # 没办法  # 去找  # 大了  # 中了  # 满了  # 一个问题  # 这篇文章  # 才能正常  # 谢谢大家  # 中就  # 无法正常  # 在工作中 


相关文章: 如何自定义建站之星网站的导航菜单样式?  制作证书网站有哪些,全国城建培训中心证书查询官网?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何在IIS管理器中快速创建并配置网站?  建站之星logo尺寸如何设置最合适?  详解jQuery停止动画——stop()方法的使用  如何高效搭建专业期货交易平台网站?  专业网站建设制作报价,网页设计制作要考什么证?  已有域名和空间,如何快速搭建网站?  南平网站制作公司,2025年南平市事业单位报名时间?  如何快速上传自定义模板至建站之星?  如何在Golang中使用replace替换模块_指定本地或远程路径  昆明网站制作哪家好,昆明公租房申请网上登录入口?  建站主机是否等同于虚拟主机?  在线制作视频网站免费,都有哪些好的动漫网站?  建站之星如何一键生成手机站?  西安专业网站制作公司有哪些,陕西省建行官方网站?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  开源网站制作软件,开源网站什么意思?  制作表格网站有哪些,线上表格怎么弄?  实例解析angularjs的filter过滤器  html制作网站的步骤有哪些,iapp如何添加网页?  如何快速生成凡客建站的专业级图册?  网站代码制作软件有哪些,如何生成自己网站的代码?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  建站之星如何配置系统实现高效建站?  网站按钮制作软件,如何实现网页中按钮的自动点击?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  如何在云服务器上快速搭建个人网站?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  建站之星安装失败:服务器环境不兼容?  建站之星如何优化SEO以实现高效排名?  青岛网站建设如何选择本地服务器?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  动图在线制作网站有哪些,滑动动图图集怎么做?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  c++ stringstream用法详解_c++字符串与数字转换利器  网站制作壁纸教程视频,电脑壁纸网站?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  宝塔新建站点为何无法访问?如何排查?  宝塔建站无法访问?如何排查配置与端口问题?  招贴海报怎么做,什么是海报招贴?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。