ORA-19502: write error on file "", block number (block size=)

1. 问题描述

检查alert发现如下报错:

Wed Jun 08 23:03:50 2016
LNS: Attempting destination LOG_ARCHIVE_DEST_2 network reconnect (19502)
LNS: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned
Error 19502 for archive log file 5 to 'PRODS'
Errors in file /u01/PROD/oracle/diag/rdbms/prod/PROD1/trace/PROD1_nsa2_25439.trc:
ORA-19502: write error on file "", block number  (block size=)
LNS: Failed to archive log 5 thread 1 sequence 22037 (19502)

去查看DG:

发现端午假期几天的归档尚未在备库应用,也未传过去

SQL> l
  1* select dest_name, error from v$archive_dest
SQL> /


DEST_NAME ERROR
---------------------------------------- -----------------------------------------------------------------
LOG_ARCHIVE_DEST_1
LOG_ARCHIVE_DEST_2 ORA-19502: write error on file "", block number  (block size=)
LOG_ARCHIVE_DEST_3

2. 问题分析

根据alert应该是由于网络原因导致LOG_ARCHIVE_DEST_2报错之类

再去备库查应用进程MRP0发现是停止的

3. 问题解决

主库查看近几天的日志都在(11g 如果备库日志未应用主库会保留)

先enable主库LOG_ARCHIVE_DEST_2

SQL>  alter system set log_archive_dest_state_2=enable;
System altered.
SQL> 

SQL> select dest_name, error from v$archive_dest;
DEST_NAME ERROR
---------------------------------------- -----------------------------------------------------------------
LOG_ARCHIVE_DEST_1
LOG_ARCHIVE_DEST_2
LOG_ARCHIVE_DEST_3
LOG_ARCHIVE_DEST_4
LOG_ARCHIVE_DEST_5

禁用如下:

  alter system set log_archive_dest_state_2=defer; 

日志也已经开始传输:

备库再启动应用进程:

SQL> alter database recover managed standby database disconnect from session;

再次查看备库情况DG已运行正常

SQL> l
  1* select PROCESS,STATUS, THREAD#,SEQUENCE# from v$managed_standby
SQL> /                                                                            


PROCESS   STATUS  THREAD#  SEQUENCE#
--------- ------------ ---------- ----------
ARCH  CLOSING 1      22036
ARCH  CLOSING 2      15425
ARCH  CLOSING 2      15116
ARCH  CLOSING 1      22197
RFS  WRITING 1      22198
RFS  WRITING 2      15485
MRP0  APPLYING_LOG1      22034
RFS  WRITING 1      22088
RFS  WRITING 1      22089
RFS  WRITING 2      15532
RFS  OPENING 2      15486


PROCESS   STATUS  THREAD#  SEQUENCE#
--------- ------------ ---------- ----------
RFS  CLOSING 2      15484
RFS  WRITING 1      22087


13 rows selected.


SQL> 

另一种情况,日志传输之后MRP不应用,显示一直在等待存在的日志,可以重启下MRP

SQL> alter database recover managed standby database cancel;


Database altered.


SQL> alter database recover managed standby database using current logfile disconnect from session;


Database altered.


SQL> select PROCESS,STATUS, THREAD#,SEQUENCE# from v$managed_standby;


PROCESS   STATUS  THREAD#  SEQUENCE#
--------- ------------ ---------- ----------
ARCH  CLOSING 2 7450
ARCH  CLOSING 1 6856
ARCH  CLOSING 2 7449
ARCH  WRITING 2 7567
RFS  RECEIVING1 7471
RFS  WRITING 2 7568
RFS  RECEIVING2 7495
RFS  RECEIVING2 7497
RFS  RECEIVING1 7470
RFS  WRITING 1 7522
RFS  WRITING 1 7472
MRP0  APPLYING_LOG2 7459
RFS  RECEIVING2 7496


13 rows selected.


SQL>

### 回答1: ORA-19502Oracle数据库的一个错误代码,表示在写入文件时发生了错误。这个错误通常是由于磁盘空间不足、文件系统权限不足或磁盘故障等原因引起的。如果遇到这个错误,需要检查磁盘空间、文件系统权限和磁盘状态,以确定问题的根本原因并采取相应的措施来解决它。 ### 回答2: ORA-19502Oracle数据库的错误代码,表示在写入文件时发生了错误。 这个错误通常是由于以下几个原因之一造成的: 1. 磁盘空间不足:在进行写操作时,数据库需要足够的空间来存储数据。如果磁盘空间不足,就会出现ORA-19502错误。解决方法是释放一些空间或者增加磁盘容量。 2. 磁盘读/写错误:可能出现了硬件故障或者磁盘损坏,导致无法写入文件。在这种情况下,需要修复或更换损坏的硬件,或者修复数据库文件系统。 3. 文件权限问题:数据库文件的权限可能设置不正确,导致无法写入文件。在这种情况下,需要检查文件权限并更正。 4. 写入目录不存在:如果写入目录不存在或者无法访问,就会出现ORA-19502错误。需要确保指定的目录存在并且可读写。 5. 其他软件或进程占用了文件:其他正在运行的软件或进程可能占用了数据库文件,导致无法写入。在这种情况下,需要关闭并释放对文件的占用。 总之,ORA-19502错误是由于在写入文件时发生了错误,可能是由于磁盘空间不足、磁盘读/写错误、文件权限问题、写入目录不存在或者其他软件/进程占用文件等原因。根据具体情况,我们可以采取相应的措施来解决该问题。 ### 回答3: ORA-19502: 写文件错误是Oracle数据库中的一个错误代码,它意味着在数据库备份或恢复操作过程中,Oracle无法将数据写入指定的文件中。 这个错误通常由以下原因引起: 1. 磁盘空间不足:当磁盘空间不足时,Oracle无法将数据写入文件。请确保备份或恢复操作所需的目标文件的磁盘空间足够。 2. 文件权限问题:如果数据库无法在指定的文件上执行写操作,可能是由于文件权限设置不正确导致的。请确保数据库进程具有对目标文件的写权限。 3. 文件系统故障:如果目标文件所在的文件系统出现故障或损坏,Oracle将无法将数据写入文件。请检查文件系统状态,并修复任何故障或损坏的情况。 4. 被占用的文件:如果目标文件正在被其他进程占用或打开,Oracle将无法将数据写入文件。请确保没有其他进程正在使用目标文件,或者将其关闭,然后重试操作。 如果发生ORA-19502错误,您可以通过以下步骤来解决问题: 1. 检查磁盘空间:确保备份或恢复操作所需的目标文件的磁盘空间足够。 2. 检查文件权限:通过检查文件权限设置,确保数据库进程具有对目标文件的写权限。 3. 检查文件系统状态:检查目标文件所在的文件系统是否正常运行,并修复任何故障或损坏。 4. 检查文件占用情况:确保目标文件没有被其他进程占用或打开,或者将其关闭,然后重试操作。 总之,ORA-19502错误意味着Oracle无法将数据写入指定的文件中,可能是由于磁盘空间不足、文件权限问题、文件系统故障或被占用的文件导致的。通过检查和解决这些问题,您可以解决ORA-19502错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值