changing the redo transport user:
----------------------------------
If we often need to change the SYS user's password in the primary database, it may be
troublesome to copy the password file to the standby site every time, especially when
there's more than one standby destination. In this case, the REDO_TRANSPORT_USER
parameter comes to our rescue. It's possible to change the default redo transport user from
SYS to another database user by setting this parameter.
Follow these steps to change the redo transport user in the Data Guard configuration:
1. Create a new database, which will be used for redo transport in the primary
database. Grant the SYSOPER privileges to this user and ensure that the standby
database has applied these changes:
SQL> CREATE USER DGUSER IDENTIFIED BY SOMEPASSWORD;
SQL> GRANT SYSOPER to DGUSER;
note:Don't forget that if the password expires periodically for this user,
this will pose a problem in Data Guard redo transport. So ensure
that the default profile does not include the PASSWORD_LIFE_
TIME and PASSWORD_GRACE_TIME settings. If it does, choose
another profile for this user.
2. Stop the redo transport from the primary database to the standby databases. We
can execute the DEFER command to defer the log destination with the ALTER
SYSTEM statement:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = 'DEFER';
3. Change the redo transport user by setting the REDO_TRANSPORT_ USER parameter
in the primary and standby databases:
SQL> ALTER SYSTEM SET REDO_TRANSPORT_USER = DGUSER;
4. Copy the primary database's password file to the standby site:
$ cd $ORACLE_HOME/dbs
$ scp orapwTURKEY standbyhost:/u01/app/oracle/product/11.2.0/
dbhome_1/dbs/orapwINDIAPS
5. Start redo transport from the primary database to the standby databases:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = 'ENABLE';
6. Check whether the redo transport service is running normally by switching redo logs
in the primary database:
SQL> ALTER SYSTEM SWITCH LOGFILE;
Check the standby database processes or the alert log file to see redo transport
service status:
SQL> SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS
FROM V$MANAGED_STANDBY ;