Friday, January 2, 2009

Log transport annoyance with ORA-01017 and ORA-16191

In 11g, setting up log transport for DataGuard, Streams, CDC, etc., you are likely to run into this annoyance. No matter how carefully you make the SYS passwords in the passwordfile the same byte-for-byte on both the source and destination hosts, the source archiver will fail trying to log in to the destination DB with these messages written to the alert log:

ORA-01017: invalid username/password; logon denied
ORA-16191: Primary log shipping client not logged on standby

The solution is to create the passwordfiles with orapwd using the argument 'ignorecase=y':

% orapwd file=orapwORCL password=crash_on_install ignorecase=y

This issue has been documented by several bloggers and forum participants, but there is still no note in Metalink as of today. I'm not sure what part of the codepath contains this bug or if perhaps this is one of those that would be addressed with the "not a bug" response from dev.

You will probably have found this article after following the instructions in the error documentation:

Check that primary and standby are using password files and that both primary and standby have the same SYS password. Restart primary and/or standby after ensuring that password file is accessible and REMOTE_LOGIN_PASSWORDFILE initialization parameter is set to SHARED or EXCLUSIVE.

Restart the primary. I love it :-) Jeez.

All I can say is I am sorry you went through this.

7 comments:

PaulB said...

Excellent find! Annoyance is a very good way to describe this issue! Cheers.

Justin said...

I does help, Bro!
Thanks very much.

Anonymous said...

me toooooooooo!!!
ACC DANNAZ MALEDIZ to Oracle ;-)

Anonymous said...

Hi,

Very useful. Solved my problem.

Thank you.

GNJ

Anonymous said...

thanks, solved my problem too!!

Rajesh said...

Tremenodus dear... really solved my problem... great observation!!!

Anonymous said...

There is no need to restart the primary database to fix the problem. I've just created the orapw file on primary and redo shipment started to work.