上周五去某客户那里做数据库巡检。是window 2008系统上10g的一套NC系统的库,已经配置了DG,可是巡检时发现数据库报错:
Tue Nov 11 10:13:57 2014
LNS: Standby redo logfile selected for thread 1 sequence 3945 for destination LOG_ARCHIVE_DEST_2
Tue Nov 11 10:14:29 2014
Errors in file d:\oracle\product\10.2.0\admin\nc\bdump\nc_arc0_177356.trc:
ORA-16401: archivelog rejected by RFS
FAL[server, ARC0]: FAL archive failed, see trace file.
Sun Nov 16 04:05:12 2014
Errors in file d:\oracle\product\10.2.0\admin\nc\bdump\nc_arc0_177356.trc:
ORA-16055: FAL request rejected
ARCH: FAL archive failed. Archiver continuing
Sun Nov 16 04:05:15 2014
Errors in file d:\oracle\product\10.2.0\admin\nc\bdump\nc_arc0_177356.trc:
ORA-00270: error creating archive log 
提示归档日志被RFS进程拒绝。FAL进程请求被拒绝,无法创建归档日志
*** 2014-11-11 10:14:29.806
tkcrrsarc: (WARN) Failed to find ARCH for message (message:0x2)
tkcrrpa: (WARN) Failed initial attempt to send ARCH message (message:0x2)
Error 16401 creating standby archive log file at host 'ncdg'
ORA-16401: archivelog rejected by RFS
*** 2014-11-11 10:15:29.900
tkcrrsarc: (WARN) Failed to find ARCH for message (message:0x2)
tkcrrpa: (WARN) Failed initial attempt to send ARCH message (message:0x2)
Error 16401 creating standby archive log file at host 'ncdg'
ORA-16401: archivelog rejected by RFS
*** 2014-11-11 10:16:29.962
tkcrrsarc: (WARN) Failed to find ARCH for message (message:0x2)
tkcrrpa: (WARN) Failed initial attempt to send ARCH message (message:0x2)
Error 16401 creating standby archive log file at host 'ncdg'
ORA-16401: archivelog rejected by RFS
*** 2014-11-11 10:17:30.025
tkcrrsarc: (WARN) Failed to find ARCH for message (message:0x2)
tkcrrpa: (WARN) Failed initial attempt to send ARCH message (message:0x2)
Error 16401 creating standby archive log file at host 'ncdg'
ORA-16401: archivelog rejected by RFS
*** 2014-11-11 10:18:30.088
tkcrrsarc: (WARN) Failed to find ARCH for message (message:0x2)
tkcrrpa: (WARN) Failed initial attempt to send ARCH message (message:0x2)
Error 16401 creating standby archive log file at host 'ncdg'
ORA-16401: archivelog rejected by RFS
查看trace文件nc_arc0_177356.trc得知。从11月11日上午10点14分開始报错,也是类似的提示。再目标主机无法创建归档日志文件,平均1分钟报一次错误。在备库查看,发现原来是由于没有定期清理主库传递过来的归档日志。磁盘空间耗尽了。
70G空间所实用完了,因为客户的磁盘本来就比較小,当中一部分还用来存放数据文件,本身就要占用47G。
最后一个归档日志是11月11日,7:25生成的,后面就没有了,这和trace文件里的报错也是符合的。因为这个时刻耗尽了磁盘的最后一些空间,进而造成了主库报警日志中出现的无法创建远程归档的错误,既然找到问题了,那么处理就easy了,先把备库应用过的归档删除掉。释放磁盘空间。
因为备库归档存在GAP,而且这些GAP在主库的归档中也已经没有了,主库并没有保留许多的归档。切归档日志也没有单独做备份集,因此仅仅能是又一次配置DG Configuration。
今天过去客户那边,把DG又一次配置了一下。

步骤事实上非常easy,由于之前已经配置过一次,这次仅仅要是同步一下即可了,不须要改动參数,拷贝參数文件、password文件、tnsnames.ora、listener.ora等,仅仅须要在主库创建一个备库控制文件,然后再把主库的RMAN备份集拿到备库去恢复即可了。详细过程这里就不写了,配置完DG后。检查两边归档路径状态,确定没有error后开启redo apply。备库就又和主库数据同步了。

由于可用磁盘空间仍然比較小,因此这次专门给客户配置了自己主动删除备库归档日志的脚本。主要用到了3个文件。大致内容例如以下:
--delete_dg_archivelog
cd D:\archivelogdel
d: 
sqlplus / as sysdba @delete_archive.sql 
echo rman target / cmdfile=rman_checkcross.rman>>delete_archivelog.bat 
delete_archivelog.bat >>delete_dg_archivelog_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%".log 
exit 
--delete_archive.sql 
set lines 150 
col name for a150 
set pagesize 0 feedback off verify off heading off echo off 
spool delete_archivelog.bat 
select 'del '||name from v$archived_log where APPLIED='YES' AND NAME IS NOT NULL and DEST_ID=1; 
spool off 
exit; 
--rman_checkcross.rman 
crosscheck archivelog all; 
delete noprompt expired archivelog all; 
exit 

以下来说明一下这个脚本。当中第一个bat脚本就是去调用了delte_archive.sql和rman_checkcross.rman这2个命令文件。最基本的就是delete_archive.sql这个脚本的运行内容,用SQL拼接的方式找出已经应用过的归档文件,然后生成del命令。在OS级别删除它们。最后再调用rman命令交叉校验,最后删除expired的归档日志(OS级别的删了。也要通知控制文件这些归档已经不存在了。须要删除),假设日志还未在备库应用。那么之前的那条select语句是不会查询出行记录的。
今天第一次做的时候delete_archivelog.sql中select语句用DEST_ID=1的时候。竟然没查到数据行。用了DEST_ID=2才有结果。而后来又碰到用DEST_ID=2没结果,于是又换回DEST_ID=1才行。事实上最基本的就是要关注SQL脚本要跑出结果。否则之前的那些命令都等于不起作用了。没有结果,OS命令就不会去del这些文件,而假设OS级别没有del掉这些文件,那么RMAN就检查不出是expired的,因此也就不会从控制文件里删除这些归档的相关记录。
最后把这个脚本加入到windows任务计划中定期执行就可以,因为客户的日志切换频率并不高,因此暂定为每周清一次归档。

DG备库磁盘空间满导致无法创建归档相关推荐

  1. linux内存96后无法连接,linux服务器因磁盘空间满导致oracle数据库无法连接问题探索...

    记录一下程序连不上库问题解决过程: 此前没接触过linux,所以过程比较繁琐 首先我部署在linux服务器上的项目莫名其妙连不上oracle库了,用plsql连接报这个: 然后我就上putty,ssh ...

  2. oracle如何往dg加盘_学习笔记:Oracle DG系统 主备库中表空间和数据文件增加删除等管...

    天萃荷净 Oracle Data Guard表空间和数据文件管理汇总 汇总日常工作中操作,在Oracle DG结构系统中,如何删除备库表空间和数据文件,如何管理主库与备库之间的文件系统,详见文章内容. ...

  3. KingbaseES V8R6 集群运维案例 -- 磁盘空间问题导致集群故障

    某商业银行生产系统KingbaseES读写分离集群主库出现故障,导致集群主备发生切换.客户要求说明具体的原因. KingbaseES读写分离集群基本信息: KingbaseES集群信息   操作系统 ...

  4. Linux通过df命令查看显示磁盘空间满,但实际未占用问题

    问题产生:让同事查看挂载点 "/"占用100%的原因,查看之后发现是/home/work/下的一个日志文件太大占用导致,然后同事就直接执行了rm命令,结果导致文件删了,但是挂载点占 ...

  5. 磁盘空间满问题排查方法

    问题描述 在云服务器ECS Linux系统内创建文件时,出现类似如下空间不足提示: No space left on device - 问题原因 磁盘分区空间使用率达到百分之百. 磁盘分区inode使 ...

  6. mysql lsof打开数过多_lsof 查看进程打开的文件情况 df -h 磁盘空间满的异常处理...

    lsof的使用说明 2019/07/01 update chenxin lsof 查看进程打开了哪些文件 / 查看文件被哪个进程使用 lsof -u/-c/-p/^/file_path_and_fil ...

  7. 【面试真经】磁盘空间满问题排查方法

    文章目录 问题描述 问题原因 处理办法 1.分区容量满导致磁盘空间满 2.inode容量满 3. 修改inode数量 4. 如果要调整: 5. . 僵尸文件分析删除 总结 问题描述 在云服务器ECS ...

  8. oracle怎么增加一个dg备库,如何在单机实现多个dg备库,并切换到其中一个备库...

    一.创建第一个DG备库 1.1 修改主库orcl的参数 1.启动归档 如果没有归档: Sql> startup mount; Sql>alter database archivelog; ...

  9. 【DG】DG备库报ORA-28000: the account is locked的解决办法

    [DG]DG备库报ORA-28000: the account is locked的解决办法 测试用户为lhr 现象:主备库的lhr用户的状态都是OPEN,但是,备库连接的时候报ORA-28000: ...

最新文章

  1. 机器学习中的常见问题—损失函数
  2. java xsl生成word文件_导出生成xsl文件
  3. 带你上手一款下载超 10 万次的 IDEA 插件
  4. C++对象数组与对象指针
  5. koa2异常处理_koa2 中的错误处理以及中间件设计原理
  6. erlang 读取confg文件异常 could not start kernel pid error in config file
  7. Anbox之Ubuntu18.04安装(二)
  8. win8计算机背景黑色,Win8电脑桌面背景突然变黑怎么办?
  9. sonar-scanner历史版本下载(转载)
  10. 巨量创意signature
  11. php统计图移动端,移动端可视化视图、统计图表集合(持续更新综合案例)原型...
  12. 微软、google、IBM的某些招聘试题
  13. endNote教程 -4-编辑参考文件格式
  14. 请用一句话证明你是程序员
  15. Excel入门(二)
  16. exchange 网页无法连接服务器,exchange2016 无法连接服务器
  17. 华为P20PRO怎样开通云闪付_华为P20NFC_华为p20nfc怎么打开_华为p20nfc刷卡怎么用-站长之家...
  18. Chrome HackBar工具下载
  19. matlab ssd检测,基于SSD神经网络的违章停车车辆实时检测方法与流程
  20. [微信] 微信商户号 资金解决方案 自动提现 关闭

热门文章

  1. html2Escape js 转义
  2. ajax 无返回_AJAX技术学习
  3. ViewModel优雅的弹加载窗和获取Context
  4. 社会管理网格化 源码_全市社会治理网格化服务管理工作调研
  5. sql backup database备份d盘_Oracle RMAN备份与恢复
  6. python伪造浏览器请求头_Python3 伪装浏览器的方法示例
  7. 在 Element-UI 的 Table 组件上添加列拖拽效果
  8. 【Go语言】使用 http 库进行简单的接口测试
  9. python pip安装提示Consider using the `--user` option or check the permissions.
  10. 按位与 matlab,c# 按位与,按位或