今天数据库日志报警,然后查看日志报错如下:
Sat Jun 07 17:35:19 2014
Archived Log entry 3272 added for thread 1 sequence 3224 ID 0xaad09f63 dest 1:
Sat Jun 07 17:35:36 2014
LNS: Standby redo logfile selected for thread 1 sequence 3225 for destination LOG_ARCHIVE_DEST_2
Sat Jun 07 17:35:39 2014
ARC0: Archive log rejected (thread 1 sequence 3224) at host 'yjfcores'
FAL[server, ARC0]: FAL archive failed, see trace file.
ARCH: FAL archive failed. Archiver continuing
ORACLE Instance yjfcore - Archival Error. Archiver continuing.
trace记录
*** 2014-06-06 11:48:12.502 4645 krsu.c
Logged on to standby successfully
Client logon and security negotiation successful!
Error 16401 creating standby archive log file at host 'yjfcores'
*** 2014-06-07 15:56:21.520
kcrrwkx: unknown error:16401
Error 16401 creating standby archive log file at host 'yjfcores'
*** 2014-06-07 17:35:39.802
kcrrwkx: unknown error:16401
查看METLAINK,解释如下:
The Problem here is that the Primary Database is switching Logs too frequently.
Using ARCH to send the archives, every time there's a log switch the Primary has to send the Archivelog to the Standby, meanwhile another Log Switch occurred on the Primary which causes also another Archivelog to be sent to the Standby, but the first one has not finished yet, a GAP is formed and detected by the Standby. At this Time the first Archivelog is also sent as FAL Request, but this one will fail because the first one is still being archiving, locked, so the second one fails.
他的说法和明确就是由于日志切换非常频繁(或者网络带宽不够),ARCH或者LSN正在进行日志传输,但是这个时候进行了日志切换从而导致可能的GAP检测到了,启动了另外的一个归档进程传输GAP归档到STANDBY端,但是这个时候实际上这个日志或者归档正在传输锁定了文件,所以第二个进程自然要报错。解决方法
谢谢!
Sat Jun 07 17:35:19 2014
Archived Log entry 3272 added for thread 1 sequence 3224 ID 0xaad09f63 dest 1:
Sat Jun 07 17:35:36 2014
LNS: Standby redo logfile selected for thread 1 sequence 3225 for destination LOG_ARCHIVE_DEST_2
Sat Jun 07 17:35:39 2014
ARC0: Archive log rejected (thread 1 sequence 3224) at host 'yjfcores'
FAL[server, ARC0]: FAL archive failed, see trace file.
ARCH: FAL archive failed. Archiver continuing
ORACLE Instance yjfcore - Archival Error. Archiver continuing.
trace记录
*** 2014-06-06 11:48:12.502 4645 krsu.c
Logged on to standby successfully
Client logon and security negotiation successful!
Error 16401 creating standby archive log file at host 'yjfcores'
*** 2014-06-07 15:56:21.520
kcrrwkx: unknown error:16401
Error 16401 creating standby archive log file at host 'yjfcores'
*** 2014-06-07 17:35:39.802
kcrrwkx: unknown error:16401
查看METLAINK,解释如下:
The Problem here is that the Primary Database is switching Logs too frequently.
Using ARCH to send the archives, every time there's a log switch the Primary has to send the Archivelog to the Standby, meanwhile another Log Switch occurred on the Primary which causes also another Archivelog to be sent to the Standby, but the first one has not finished yet, a GAP is formed and detected by the Standby. At this Time the first Archivelog is also sent as FAL Request, but this one will fail because the first one is still being archiving, locked, so the second one fails.
他的说法和明确就是由于日志切换非常频繁(或者网络带宽不够),ARCH或者LSN正在进行日志传输,但是这个时候进行了日志切换从而导致可能的GAP检测到了,启动了另外的一个归档进程传输GAP归档到STANDBY端,但是这个时候实际上这个日志或者归档正在传输锁定了文件,所以第二个进程自然要报错。解决方法
- Ignore these Messages as long as the Standby Database keeps synchronized with the Primary
- Database Increase the Size of the Online Redologs to reduce Redolog Switch Frequency
- Increase Network Bandwith between the Primary and Standby Database
谢谢!