Skip to Main Content

Database Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Intermittent ORA-12545 failure for RAC standby

1007321Sep 1 2014 — edited Sep 3 2014

Hello,

I successfully created a RAC standby database, replicated from a primary in RAC too.

We're in 11gR2.

A few minutes after the last step in dgmgrl utility:

DGMGRL> enable configuration

a 'show configuration' showed errors, tailing the alert.log of an instance of the primary DB

would show (ABC01AS is my standby database):

Fatal NI connect error 12545, connecting to:

(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=scanserver-scan)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ABC01AS)(CID=(PROGRAM=oracle)(HOST=stby_host01)(USER=oracle))))

  VERSION INFORMATION:

        TNS for Linux: Version 11.2.0.4.0 - Production

        TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production

  Time: 01-SEP-2014 11:32:32

  Tracing not turned on.

  Tns error struct:

    ns main err code: 12545

...

Yet when connecting (thru sqlplus for instance) to the standby using the connect string shown in the alert.log

it worked fine:

[oracle@prim_host01 ]$ sqlplus system/pwd@"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=scanserver-scan)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ABC01AS)(CID=(PROGRAM=oracle)(HOST=stby_host01)(USER=oracle))))"

I had a look on Metalink note 553328.1, and in dgmgrl I checked the value of the StaticConnectIdentifier attribute:

DGMGRL> show instance 'ABC01AS1' 'StaticConnectIdentifier'

  StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scannode01)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ABC01AS_DGMGRL)(INSTANCE_NAME=ABC01AS1)(SERVER=DEDICATED)))'

DGMGRL>  show instance 'ABC01AS2' 'StaticConnectIdentifier'

  StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scannode02)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ABC01AS_DGMGRL)(INSTANCE_NAME=DWH01AS2)(SERVER=DEDICATED)))'

I did a connection test using the connect strings shown in this case (that differ from that shown in the alert.log):

[oracle@prim_host01 ]$ sqlplus -s system/pwd@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scannode01)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ABC01AS_DGMGRL)(INSTANCE_NAME=ABC01AS1)(SERVER=DEDICATED)))" @instance_name

INSTANCE_NAME

----------------

ABC01AS1

[oracle@prim_host01 ]$ sqlplus -s system/pwd@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scannode02)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ABC01AS_DGMGRL)(INSTANCE_NAME=ABC01AS2)(SERVER=DEDICATED)))" @instance_name

INSTANCE_NAME

----------------

ABC01AS2

(using SYS AS SYSDBA too) and it worked perfectly.

I had to do a 'disable configuration' and then enable it again right away to have my replication resume.

This morning it happened again - as long as I didn't disable/re-enable my dgmgrl configuration, my standby

was in error, dgmgrl kept showing:

Error: ORA-16810: multiple errors or warnings detected for the database

Error: ORA-16737: the redo transport service for standby database "dwh01as" has an error

So when you encounter ORA-12545: Connect failed because target host or object does not exist

and still can succesfully connect to your standby from the primary server through all would-be failing

connect strings, what are you supposed to do ?

Do you have any idea why DataGuard replication could start failing and displaying these errors, when

you can always connect to your target standby without the slightest problem ?? Have yuo seen this

behaviour before ?

Thanks a lot in advance...

Kind regards,

Seb

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 1 2014
Added on Sep 1 2014
1 comment
1,389 views