发表于: 2007.10.09 11:33
分类: Oracle技术
出处: http://logzgh.itpub.net/post/3185/403774
---------------------------------------------------------------
OS:AIX 5.3 64BIT
oracle:9.2.0.8 64BIT
data guard环境,一主一备,采用lgwr传送归档日志
在高峰期在主库报出ORA-16040: standby destination archive log file is locked这样的错误。
这个错误不影响业务,也不影响系统。
错误信息如下:
ARC3: Begin FAL archive (thread 1 sequence 20334 destination alisoft_std)
Creating archive destination LOG_ARCHIVE_DEST_3: 'alisoft_std'
Mon Oct 8 02:01:21 2007
ARC0: FAL archive, error 16040 creating remote archivelog file 'alisoft_std'
Mon Oct 8 02:01:21 2007
Errors in file /opt/oracle/admin/alisoft/udump/c2c_arc0_504316.trc:
ORA-16040: standby destination archive log file is locked
ARC0: FAL archive failed, see trace file.
ARCH: FAL archive failed. Archiver continuing
可以看出,这个时候先发生了fal,按说采用lgwr传送归档日志的话,是不需要发生fal的,但是却发生了。
由此可以推断出,之所以报出这个错误是由于主库归档进程在传送归档日志,而备库正在归档这个归档日志。
从alert日志来看,发现只要主库的日志切换太频繁,每分钟一个500M的归档日志,持续4,5分钟后,就会发生fal现象,当发生fal现象时,如果正好备库在归档这个日志时,就会报出ora-16040错误。
为什么会发生fal现象呢? 应该是备库归档进程归档日志的速率跟不上导致的。
为了解决这个错误,可以偿试:
1。增加redo log的大小,由500M增加到1G,减少日志切换的频率。
2.增加备库的归档日志进程数,因为备库中有三个归档目录,而最大归档进程数只设置了2。
我先试着将归档进程数调大为10。观察一段时间,如果还会出现ora-16040,则试着将redo log大小调大。











