上周五去某客户那里做数据库巡检。是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分钟报一次错误。在备库查看,发现原来是由于没有定期清理主库传递过来的归档日志。磁盘空间耗尽了。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWFyb244MjE5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


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. 阿里云rds 磁盘空间满导致实例锁定

    1.RDS 数据日志已经快满了, 导致数据库不能写入,只读. 2. Binlog日志的保存及清理规则 MySQL实例的空间内默认清理binlog日志的规则如下: 实例空间内默认会保存最近18个小时内的 ...

  2. 模拟主库创建数据文件,dg备库空间不足时问题处理

    本篇文档测试目的: 模拟实际环境中,主库对表空间添加数据文件,备库空间不足,最终导致MRP进程自动断开,处理方式. 1.问题环境模拟 1)正常情况下的dg 主库创建数据文件,备库接受日志,自动创建表空 ...

  3. DG备库无法接受主库归档日志之密码文件

    DG备库无法接受主库归档日志之密码文件 实验目的:还原某个客户案例,客户审计需要,对主库sys用户进行锁定,一小时后对sys用户进行解锁后,发现备库无法接受主库的归档日志 本篇文章,测试sys用户与D ...

  4. linux磁盘空间满的处理

    Java中运行SQL插入数据时报错: linux磁盘空间满处理: 1.df -h  查看磁盘空间占用,实际上是查看磁盘块占用的文件(block) 2.分别查看输入以下命令 (面对磁盘满了,通过下列命令 ...

  5. No space left on device 解决Linux系统磁盘空间满的办法

    最近Linux电脑在执行mvn时候总是报错: No space left on device   原因是磁盘空间满了,我马上加了20G的硬盘容量,但是还是报错,上网查了一下,发现了解决方法,我用了其中 ...

  6. oracle所在磁盘空间不足导致了数据库异常

    oracle所在磁盘空间不足导致了数据库异常.需要减小数据文件的大小来解决. 1.检查数据文件的名称和编号 select file#,name from v$datafile; 2.看哪个数据文件所占 ...

  7. linux磁盘空间满?

    磁盘空间满啦 找到项目的logs文件夹 进入logs文件夹,会看到很多access.log*文件. 在Xshell里,输入命令cd 到项目节点的logs文件夹 可能还需要清空下回收站.

  8. DG备库,实时应用如何判断,MR进程,及MRP应用归档,三种情况的查询及验证

    本篇文档学习,DG备库,实时应用如何判断,MR进程,及MRP应用归档,三种情况的查询及验证 1.取消MRP进程 备库查询进程状态select process,client_process,sequen ...

  9. 因磁盘空间不足导致HDFS的NameNode进入安全模式问题记录

    因磁盘空间不足导致HDFS的NameNode进入安全模式问题记录,调用API上传及下载文件时报如下错误信息: org.apache.hadoop.ipc.RemoteException(org.apa ...

随机推荐

  1. laravel 只有/login路由403,如何解决

    链接/login自动转跳到/login/导致找不到 /public/login/ 目录导致403; 将路由中\login改为\login1访问正常,但login依然403,而不是未找到路由 链接/lo ...

  2. CHECKPOINT - 强制一个事务日志检查点

    SYNOPSIS CHECKPOINT DESCRIPTION 描述 预写式日志(Write-Ahead Logging (WAL))缺省时在事务日志中每隔一段时间放一个检查点. (要调整这个原子化的 ...

  3. c++ 回调的实现

    什么是回调?通常发生在需要两个角色即调用者与实现者的情形上,即我们希望当产生某个事件时,调用实现者定义的某个函数.当然这个概念很大,不是说操作系统的信号量,条件变量什么的,是在语言级别实现,如一个Fr ...

  4. Python 迭代器-生成器-面向过程编程

    上节课复习:1. 函数的递归调用 在调用一个函数的过程中又直接或者间接地调用了函数本身称之为函数的递归 函数的递归调用有两个明确的阶段: 1. 回溯 一层一层地调用本身 注意: 1.每一次调用问题的规 ...

  5. nohup 忽略所有挂断信号

    1.nohup 用途:不挂断地运行命令. 语法:nohup Command [ Arg … ] [ & ] 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup ...

  6. poj 2186 强连通分量

    poj 2186 强连通分量 传送门 Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 33414 Acc ...

  7. 基本dos

    文件夹的操作:   进入指定盘符:盘符名+:     dir:列出当前控制台下的所有文件以及文件夹  . cd +文件夹名称:进入指定文件夹     cd.. 返回上一级 cd \返回到当前目录的根目 ...

  8. AndroidSweetSheet:从底部弹出面板(1)

     AndroidSweetSheet:从底部弹出面板(1) AndroidSweetSheet又是一个从底部弹出面板的开源项目.我在以前写的文章中介绍了不少这些项目,见附录文章5,6,7,8.现在 ...

  9. Netbeans工具使用记录

     #自动换行设置 工具->选项->编辑器->格式设置

  10. Linux下汇编语言学习笔记7 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...