Shutdown Standby Database
Step 1. Disable standby archive writing:
In the primary/production database
1 |
alter system set log_archive_dest_state_2=defer scope = both sid = '*'; |
Step 2. Deactivate auto recovery in the Standby Database
1 |
lter database recover managed standby database cancel; |
PS: When using a Real Application Cluster (RAC) the above command should be run on just ONE of the standby RAC nodes.
1 |
shutdown immediate |
This should be applied on all standby nodes in an RAC environment.
Startup Standby Database
If necessary archivelogs should be copied to the standby.
1 |
scp /opt/oracle/archive/*.arc oracle@DR-Site-IP:/opt/oracle/archive |
Step 3. Open the standby database and start the automatic recovery process.
1 2 3 4 5 |
startup nomount; alter database mount standby database; alter database recover managed standby database disconnect from session; |
PS: In a Real Appication Cluster (RAC) environment this should be applied on all of the standby nodes.
1 2 3 |
startup nomount alter database mount standby database; |
Step 4. Enable Standy Archive writing
On the primary/production database
1 |
alter system set log_archive_dest_state_2=enable scope = both sid = '*'; |
This only needs to be run on a single node in an RAC environment (sid=’*’).
Taking precautions before encountering any failures. Refer to Doc ID 1302539.1 for further details.
primary
1 2 3 |
alter system set DB_BLOCK_CHECKSUM=FULL scope=both sid='*'; alter system set DB_BLOCK_CHECKING=FULL scope=both sid='*'; alter system set DB_LOST_WRITE_PROTECT=TYPICAL scope=both sid='*'; |
standby
1 2 3 |
alter system set DB_BLOCK_CHECKSUM=FULL scope=both sid='*'; alter system set DB_BLOCK_CHECKING=FULL scope=both sid='*'; alter system set DB_LOST_WRITE_PROTECT=TYPICAL scope=both sid='*'; |
Errors & Solutions
1. File/Disk erro
ORA-15025: could not open disk “/dev/oracleasm/disks/DATA001”
ORA-27041: unable to open file
Linux-x86_64 Error: 13: Permission denied
Additional information: 9
SUCCESS: diskgroup DATA was mounted
Errors in file /u01/app/oracle/diag/rdbms/stdhira/stdhira/trace/stdhira_ora_26491.trc (incident=7361):
ORA-00600:
If there any errors, run the following command as a root user:
1 |
/u01/11.2.0/grid/bin/setasmgid o=/u01/app/oracle/product/11.2.0/db_1/bin/oracle |
2. Deletion of Applied Archivelogs
If the archivelog files are being managed in the Fast Recovery Area then automatic deletion of backed up and applied archivelog files can be setup by issuing the following RMAN configure command on the primary database:
1 |
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY BACKED UP <#> TIMES TO DISK; |
Creating a physical standby from ASM primary [ID 787793.1]
http://www.datadisk.co.uk/html_docs/oracle_dg/troubleshooting.htm
http://www.datadisk.co.uk/html_docs/oracle_dg/troubleshooting
http://www.oracledba.org
3. Data Guard Broker Status Summary:
Type Name Severity Status
Configuration dg_broker Warning ORA-16608
Primary Database hira Success ORA-00000
Physical Standby Database stdhira Warning ORA-16792
If there are any errors:
Using: show database ‘stdhira’ ‘InconsistentProperties’, find any different values (even if values are occasionally the same) and fix these errors with scope=spfile/both.
4. SQL Execution error=604, sql=[alter system set log_archive_dest_1=”]. See error stack below.
ORA-00604: error occurred at recursive SQL level 1
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16028: new LOG_ARCHIVE_DEST_1 causes less destinations than LOG_ARCHIVE_MIN_SUCCEED_DEST requires
ORA-00604 ORA-02097 ORA-16028
BUG 12535659 – BROKER OVERRIDES MANDATORY/LOG_ARCHIVE_MIN_SUCCEED_DEST
Solution:
Summary
In the Primary
1 |
remove configuration preserve destinations; |
RAC
1 |
alter system set log_archive_dest_1='location=+fra' scope=both sid='*'; |
single instance
1 |
alter system set log_archive_dest_1='location=+fra' scope=both ; |
The following steps have been explained in the metalink:
a. Use DGMGRL to gather information about the Broker configuration.
— From current Primary
1 2 |
show configuration verbose; show database verbose <db_unique_name> |
# This should be done for the Primary and each Standby
b. Remove the broker configuration.
1 2 |
connect sys/password remove configuration preserve destinations; |
# This ensures standby operations continue while the Broker configuration is being re-created.
c. Change the LOG_ARCHIVE_DEST_n destinations defined with LOCATION to remove DB_UNIQUE_NAME.
1 |
]alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/arch'; |
# This must be done on all databases in the Data Guard environment that Broker will manage.
d. Re-create the Broker configuration.
— From current Primary:
1 2 |
connect sys/password create configuration .... |
# Use the info from Step #1 to re-create the Broker configuration
# and modify the properties on each database before enabling.
e. ORA-16826: apply service state is inconsistent with the DelayMins property
This can be fixed by disabling and and then enabling the dgmgrl configuration as follows:
1 |
disable configurationenable configuration |
5. Places to look if there are any connection problems:
1 2 3 |
show parameter LOCAL_LISTENER ---> to view the values ALTER SYSTEM REGISTER; ALTER SYSTEM set LOCAL_LISTENER=LISTENER alter system set LOCAL_LISTENER='(ADDRESS = (PROTOCOL=TCP)(HOST=stddbk.sysdba.org)(PORT=1521))' scope=both; |
6. Exception in thread “main” java.lang.UnsatisfiedLinkError: /tmp/OraInstall2013-12-30_01-26-43PM/jdk/jre/lib/sparcv9/motif21/libmawt.so: ld.so.1: java: fatal: libXm.so.4: open failed: No such file or directory…..
Solution to this problem
1 |
export AWT_TOOLKIT=XToolkit |
Please letus know if there are any mistakes or omissions in the steps described in this article.
Useful resources:
http://tahiti.oracle.com
http://asanga-pradeep.blogspot.com/2010/11/rac-to-single-instance-physical-standby
http://easyoradba.com/2012/11/20/rac-to-single-instance-dataguard-oracle-11gr2-physical-standby/
http://dpmappsdba.blogspot.com/p/rac-to-single-instance-physical-standby
Queries
13 March 2019