DATA GUARD的STANDBY数据库ORA-1009错误

一套10G的 DATA GUARDSTANDBY数据库不同步数据,出现了大量的ORA-1009错误。

Alert日志:
Thu Jan 21 23:18:38 CST 2016
Errors in file /oracle/admin/sjdb/bdump/sjdb_mrp0_14616.trc:
ORA-01009: missing mandatory parameter
Thu Jan 21 23:19:08 CST 2016
FAL[client, MRP0]: Error 1009 fetching archived redo log from NWDB
Thu Jan 21 23:19:08 CST 2016
Errors in file /oracle/admin/sjdb/bdump/sjdb_mrp0_14616.trc:
ORA-01009: missing mandatory parameter
Thu Jan 21 23:19:38 CST 2016
FAL[client, MRP0]: Error 1009 fetching archived redo log from NWDB
Thu Jan 21 23:19:38 CST 2016
Errors in file /oracle/admin/sjdb/bdump/sjdb_mrp0_14616.trc:
ORA-01009: missing mandatory parameter
Thu Jan 21 23:20:08 CST 2016
FAL[client, MRP0]: Error 1009 fetching archived redo log from NWDB
Thu Jan 21 23:20:08 CST 2016
Errors in file /oracle/admin/sjdb/bdump/sjdb_mrp0_14616.trc:
ORA-01009: missing mandatory parameter

查看trace文件/oracle/admin/sjdb/bdump/sjdb_mrp0_14616.trc
*** 2016-01-21 23:18:38.809 64896 kcrr.c
FAL[client, MRP0]: Error 1009 fetching archived redo log from NWDB
ORA-01009: missing mandatory parameter
*** 2016-01-21 23:19:08.826
Redo shipping client performing standby login
*** 2016-01-21 23:19:08.847 68920 kcrr.c
Logged on to standby successfully
Client logon and security negotiation successful!
*** 2016-01-21 23:19:08.849 64896 kcrr.c
FAL[client, MRP0]: Error 1009 fetching archived redo log from NWDB
ORA-01009: missing mandatory parameter
*** 2016-01-21 23:19:38.865
Redo shipping client performing standby login
*** 2016-01-21 23:19:38.886 68920 kcrr.c
Logged on to standby successfully
Client logon and security negotiation successful!
*** 2016-01-21 23:19:38.887 64896 kcrr.c
FAL[client, MRP0]: Error 1009 fetching archived redo log from NWDB
ORA-01009: missing mandatory parameter

导致问题的原因和FAL的设置有关,查询MOS资料发现只设置了FAL_SERVER而没有设置FAL_CLIENT,设置FAL_CLIENT之后问题解决。
此参数到11.2之后就不需要设置。


MOS文章如下:
FAL request Failed with ORA-01009 on Standby MRP trace. (文档 ID 1329119.1)

In this Document
Symptoms
Cause
Solution




Applies to:

Oracle Server - Enterprise Edition - Version: 10.1.0.2 to 10.2.0.4 - Release: 10.1 to 10.2
Information in this document applies to any platform.

Symptoms

FAL(Fetch Archive log) failed with below error messages on standby MRP trace,

<< zjjs_mrp0_1532138.trc >>

*** 2011-06-07 14:54:23.972 66535 kcrr.c
Logged on to standby successfully
Client logon and security negotiation successful!
*** 2011-06-07 14:54:23.982 62692 kcrr.c
FAL[client, MRP0]: Error 1009 fetching archived redo log from zjjs
ORA-01009: missing mandatory parameter

Cause

Standby has setup FAL_SERVER but FAL_CLIENT is missing on the Standby Database.

Solution

Set the FAL_CLIENT on standby.

For example,

Primary TNS-Alias -> chicago
Standby TNS-Alias -> boston

Ensure both TNS-Alias exist on the Primary and Standby Site TNSNAMES.ORA

On the Standby Database set

FAL_SERVER = 'chicago'
FAL_CLIENT= 'boston'

NOTE : From 11.2.0.x onwards there is no need to setup FAL_CLIENT any more because the FAL server will obtain the client's network address from the LOG_ARCHIVE_DEST_n Parameter that corresponds to the Client's DB_UNIQUE_NAME.
请使用浏览器的分享功能分享到微信等