The below article explains a possible workaround for a scenario where Graceful Switchover fails during the last step of Recovery with the below error. The actual Graceful switchover does not fail but the step where the Archives are applied fails.
Problem Details
Problem Statement
Standby Recovery fails using SQLPLUS when doing Graceful Switchover during the synchronisation , where sqlplus is used for doing database recovery.
Applicable Error Code
Dbvisit Standby terminated...
Error Code: 2044
File (/usr/dbvisit/standby/tmp/<PID>.dbvisit.<timestamp>.last_archive.dbv) does not
exist or is empty. Please check space and file permissions.
Affected Versions
Have been noticed in Version 8.0
Affected Platforms
Noticed in Linux but should be platform independent.
Description
Error Encountered during switchover. The error would be something similar to below
Dbvisit Standby terminated...
Error Code: 1
Error returned from running command: "/usr/dbvisit/standby/dbvctl" -d devdb
--no_running_check --show_trace
=============================================================
Dbvisit Standby Database Technology (8.0.08.18506) (pid 3496)
dbvctl started on dbvlab03: Thu Jan 26 20:25:53 2017
=============================================================
DBVISIT_TRACEFILE=/usr/dbvisit/standby/trace/3496_dbvctl_devdb_201701262025.trc
>>> Applying Log file(s) from dbvlab01 to DB on dbvlab03:
Dbvisit Standby terminated...
Error Code: 2044
File (/usr/dbvisit/standby/tmp/3496.dbvisit.201701262025.last_archive.dbv) does not
exist or is empty. Please check space and file permissions.
Tracefile from server: dbvlab03 (PID:3496)
3496_dbvctl_devdb_201701262025.trc
Tracefile from server: dbvlab03 (PID:2367)
2367_dbvctl_switchover_devdb_201701262021.trc
Solution
There are two possible workarounds for this issue.
- by setting the value of the global variable DB_CONNECTION_MODE_DR in the DDC file or
- by setting the parameter APPLY_ARCHIVE_RMAN in the DDC file
Steps Performed
- Before proceeding, check if logs are getting applied on standby. Run ./dbvctl <DDC> on standby server and see if it errors out with above error.
- On primary, set APPLY_ARCHIVE_RMAN=Y in the DDC file. Run ./dbvctl -d <DDC> -c to copy the modified DDC file to the standby server. On standby, run ./dbvctl <DDC> to apply logs and verify if the error is repeating.
- If the error is repeating, set DB_CONNECTION_MODE_DR=dedicated as well in the DDC file (add it as the last line in the DDC file) on primary. Repeat the above operation of copying the DDC from primary to standby. Finally, run ./dbvctl <DDC> on standby to see if logs get applied.
To copy the DDC from Primary to Standby:
./dbvctl -d <DDC> -c
Comments