Steps to configure Oracle 11g Data Guard Physical Standby – Active Data Guard Part-I
Published3 years agobyJignesh Jethwa
Here in this article I am going to cover steps by step approach to configure Oracle 11g Data Guard Physical Standby.
In my case,Ingredients to simulate Physical Standby data guard environment are as below:
- 2 VM’s,Primary and DR with enough cpu and RAM in order to run oracle database.
- Primary server configuration
- CentOS 6.5
- Server name: pr
- IP: 192.168.17.131
- Oracle 11g software plus oracle instance.
- Oracle SID/Global_name: RTS
- Oracle db_unique_name: RTS
- Secondary server configuration
- CentOS 6.5
- Server name: dr
- IP: 192.168.17.132
- Oracle 11g software only.
- Oracle SID/Global name: RTS
- Oracle db_unique_name: RTSDR
Note:
- Oracle version on Primary and secondary should be identical. i.e. In my case it’s 11.2.0.1.0
- db_unique_name on standby and primary database should be different in order to used in DG_CONFIG setting of the LOG_ARCHIVE_CONFIG parameter.
- Primary and DR server should ping each other by IP as well as its server name. In order to ping with its server name,edit /etc/hosts file accordingly.
Primary Server Configurations:
<Step – 1 >
Enable Archive log:
Primary database is in No Archive Mode,Enable it:
sql> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 1 Current log sequence 3
sql> SHUTDOWN IMMEDIATE; sql> STARTUP MOUNT; sql> ALTER DATABASE ARCHIVELOG; sql> ALTER DATABASE OPEN;
sql> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 1 Next log sequence to archive 3 Current log sequence 3
<Step – 2 >
Enable force logging with the help of following sql command:
sql> ALTER DATABASE FORCE LOGGING;
<Step – 3 >
Verify initialization parameters db_name and db_unique_name on primary,In my case those are set to: RTS
sql> show parameter db_name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_name string RTS
sql> show parameter db_unique_name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_unique_name string RTS
<Step – 4 >
Issue following command to set LOG_ARCHIVE_CONFIG parameter for data guard config.
sql> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(RTS,RTSDR)';
Ensure your above changes as below:
sql> show parameter LOG_ARCHIVE_CONFIG NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_config string DG_CONFIG=(RTS,RTSDR)
<Step – 5 >
Issue following to set LOG_ARCHIVE_DEST_2,In my case i have used flash recovery area for remote archive log destination.
Note: Service and DB_UNIQUE_NAME reference the remote standby location.
sql> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=RTSDR NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=RTSDR';
Ensure your above changes as below:
sql> show parameter LOG_ARCHIVE_DEST_2 NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest_2 string SERVICE=rtsdr NOAFFIRM ASYNC V ALID_FOR=(ONLINE_LOGFILES,PRIM ARY_ROLE) DB_UNIQUE_NAME=rtsdr
Enable LOG_ARCHIVE_DEST_2:
sql> alter system set log_archive_dest_state_2=enable;
sql> show parameter log_archive_dest_state_2 NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest_state_2 string ENABLE
<Step – 6 >
Set log_archive_format parameter as below:
sql> alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;
sql> show parameter log_archive_format NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_format string %t_%s_%r.arc
Set log_archive_max_processes parameter to 30:
sql> alter system set log_archive_max_processes=30;
sql> show parameter log_archive_max_processes NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_max_processes integer 30
Set remote_login_passwordfile parameter to exclusive:
sql> alter system set remote_login_passwordfile=exclusive scope=spfile;
sql> show parameter remote_login_passwordfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ remote_login_passwordfile string EXCLUSIVE
<Step – 7 >
Set fal_server and fal_client parameter for primary database:
sql> alter system set fal_server=RTSDR;
sql> show parameter fal_server NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ fal_server string RTSDR
sql> alter system set fal_client='RTS'; sql> show parameter fal_client NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ fal_client string RTS
Set standby_file_management parameter to auto:
sql> alter system set standby_file_management=auto;
sql> show parameter standby_file_management NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ standby_file_management string AUTO
<Step – 8 >
Configure listener file and copy it to DR @ location: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin
Listener file:
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = RTS) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1) (SID_NAME = RTS) ) ) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = pr)(PORT = 1521)) ) ADR_BASE_LISTENER = /u01/app/oracle
<Step – 9 >
Entries for the primary and standby databases are needed in the “$ORACLE_HOME/network/admin/tnsnames.ora” files on both the servers.
RTS = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = pr)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = RTS) (GLOBAL_NAME = RTS) (UR=A) ) ) RTSDR = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dr)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = RTS) (GLOBAL_NAME = RTS) (UR=A) ) )
Ensure your above configuration by TNSPing utility on Primary and standby:
[oracle@pr admin]$ tnsping RTS TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 03-OCT-2014 06:04:09 Copyright (c) 1997,2009,Oracle. All rights reserved. Used parameter files: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = pr)(PORT = 1521))) (CONNECT_ DATA = (SERVICE_NAME = rts) (GLOBAL_NAME = RTS))) OK (10 msec)
[oracle@pr admin]$ tnsping RTSDR TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 03-OCT-2014 06:04:15 Copyright (c) 1997,Oracle. All rights reserved. Used parameter files: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dr)(PORT = 1521))) (CONNECT_ DATA = (SERVICE_NAME = RTS) (GLOBAL_NAME = RTS))) OK (20 msec)
<Step – 10 >
Backup primary database via RMAN backup utility:
[oracle@pr admin]$ rman target / Recovery Manager: Release 11.2.0.1.0 - Production on Sat Oct 4 02:02:11 2014 Copyright (c) 1982,Oracle and/or its affiliates. All rights reserved. connected to target database: RTS (DBID=1421312347)
RMAN> backup database plus archivelog;
Note:Backup location: Flash Recovery Area.
<Step – 11>
Create Standby control file.
sql> alter database create standby controlfile as '/u01/bkup/stndbyctrl.ctl';
<Step – 12>
Create pfile from spfile:
sql> create pfile='/u01/bkup/initRTS.ora' from spfile;
<Step – 13>
After creating parameter file as above,edit following changes in newly created pfile:
*.db_unique_name='RTSDR' *.fal_server='RTS'; *.log_archive_dest_2='SERVICE=RTS ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=RTS'
<Step – 14>
Copyparameter fileto DR @ location: /u01/app/oracle/product/11.2.0/dbhome_1/dbs/
[oracle@pr bkup]$ scp initRTS.ora oracle@192.168.17.132:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/
Copystandby control fileto DR @ location: /u01/app/oracle/oradata/RTS/control01.ctl & /u01/app/oracle/flash_recovery_area/RTS/control02.ctl
[oracle@pr bkup]$ scp stndbyctrl.ctl oracle@192.168.17.132:/u01/app/oracle/oradata/RTS/control01.ctl [oracle@pr bkup]$ scp stndbyctrl.ctl oracle@192.168.17.132:/u01/app/oracle/flash_recovery_area/RTS/control02.ctl
Copypassword fileto DR @ location: /u01/app/oracle/product/11.2.0/dbhome_1/dbs/
[oracle@pr ~]$ cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs/
[oracle@pr dbs]$ scp orapwRTS oracle@192.168.17.132:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/
CopyListener fileto DR @ location: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin
[oracle@pr bkup]$ cd /u01/app/oracle/product/11.2.0/dbhome_1/network/admin [oracle@pr admin]$ scp listener.ora oracle@192.168.17.132:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin
Edit DR databaselistener filewith host name. ( i.e.(HOST = dr))
And finally copyRMAN backupto DR @ flash recovery area.
[oracle@pr ~]$ cd /u01/app/oracle/flash_recovery_area/ [oracle@pr flash_recovery_area]$ scp -r RTS oracle@192.168.17.132:/u01/app/oracle/flash_recovery_area/
Standby/DR Server Configurations:
<Step – 15>
Startup standby database in mount state:
Set following environment variable as oracle user OR edit those in /home/oracle/.bash_profile in order to set it for every time while oracle user logged in:
export ORACLE_SID=RTS export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export PATH=$PATH:/u01/app/oracle/product/11.2.0/dbhome_1/bin
[oracle@DR ~]$ mkdir -p /u01/app/oracle/admin/RTS/adump sql> sqlplus / as sysdba
sql> startup mount ORACLE instance started. Total System Global Area 972898304 bytes Fixed Size 2219272 bytes Variable Size 566231800 bytes Database Buffers 398458880 bytes Redo Buffers 5988352 bytes Database mounted.
<Step – 16>
Create spfile from pfile:
sql> create spfile from pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initRTS.ora';
<Step – 17>
Start listener on standby:
[oracle@dr ~]$ lsnrctl start
<Step – 18>
Create follwoing directories on DR server,in case those are not available:
/u01/app/oracle/admin/RTS/adump
/u01/app/oracle/flash_recovery_area
<Step – 19>
Restore and recover database @ DR with RMAN backup utility.
RMAN> list backup of database summary; List of Backups =============== Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag ------- -- -- - ----------- --------------- ------- ------- ---------- --- 6 B F A DISK 05-OCT-14 1 1 NO TAG20141005T065604
RMAN> restore database;
RMAN> recover database;
Note: Recovery of database would be Failed with RMAN-06054 error,We can ignore it because RMAN will ask for unknown archive log ( i.e. next archive log sequence,i.e. 10 ) who is not also available on Primary database.
Error log: RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 10 and starting SCN of 1009554
<Step – 20>
Create standby redolog file to Primary and DR for the user of switch over,It should be match the configuration of the primary server.
Note: Create one additional standby redolog file on both.
sql> sqlplus / as sysdba sql> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='MANUAL' scope=spfile; sql> ALTER DATABASE ADD STANDBY LOGFILE('/u01/app/oracle/oradata/RTS/stndby1.log') size 51M; sql> ALTER DATABASE ADD STANDBY LOGFILE('/u01/app/oracle/oradata/RTS/stndby2.log') size 51M; sql> ALTER DATABASE ADD STANDBY LOGFILE('/u01/app/oracle/oradata/RTS/stndby3.log') size 51M; sql> ALTER DATABASE ADD STANDBY LOGFILE('/u01/app/oracle/oradata/RTS/stndby4.log') size 51M; sql> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT='AUTO' scope=spfile;
<Step – 21>
Start apply process @ DR.
sql> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE nodelay DISCONNECT FROM SESSION;
In case of you want to cancel apply process,issue following command:
sql> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
<Step – 22>
After graceful completion of above apply process,verify archive logs on Primary as well as DR.
On Primary:
sql> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 8 Next log sequence to archive 10 Current log sequence 10
On Standby:
sql> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 8 Next log sequence to archive 0 Current log sequence 10
By above result,archive logs on both the databases are in sync now.
To test your data guard configuration,generate archive logs on primary site and verify it on DR site:
sql> alter system switch logfile; //Give this command multiple times for testing.
On Primary:
sql> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 19 Next log sequence to archive 21 Current log sequence 21
OR
sql> select max(sequence#) from v$archived_log; MAX(SEQUENCE#) -------------- 20
On Standby:
sql> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 19 Next log sequence to archive 0 Current log sequence 21
OR
sql> select max(sequence#) from v$archived_log; MAX(SEQUENCE#) -------------- 20
Cheers!!Our Data Guard configuration has been configured successfully.
Verify database roles by below mentioned sql query:
On Primary:
sql> select name,open_mode,database_role from v$database; NAME OPEN_MODE DATABASE_ROLE --------- -------------------- ---------------- RTS READ WRITE PRIMARY
On DR:
sql> select name,database_role from v$database; NAME OPEN_MODE DATABASE_ROLE --------- -------------------- ---------------- RTS MOUNTED PHYSICAL STANDBY
You can also verify total number of log sequence generated and applied on DR site,by below sql query:
sql> ALTER SESSION SET nls_date_format='DD-MON-YYYY HH24:MI:SS';
sql> SELECT sequence#,first_time,next_time,applied FROM v$archived_log ORDER BY sequence#;
SEQUENCE# FIRST_TIM NEXT_TIME APPLIED ---------- --------- --------- --------- 3 04-OCT-14 04-OCT-14 YES 4 04-OCT-14 04-OCT-14 YES 5 04-OCT-14 04-OCT-14 YES 6 04-OCT-14 05-OCT-14 YES 7 05-OCT-14 05-OCT-14 YES 8 05-OCT-14 05-OCT-14 YES 9 05-OCT-14 05-OCT-14 YES 10 05-OCT-14 05-OCT-14 YES 11 05-OCT-14 05-OCT-14 YES 12 05-OCT-14 05-OCT-14 YES 13 05-OCT-14 05-OCT-14 YES 14 05-OCT-14 05-OCT-14 YES 15 05-OCT-14 05-OCT-14 YES 16 05-OCT-14 05-OCT-14 YES 17 05-OCT-14 05-OCT-14 YES 18 05-OCT-14 05-OCT-14 YES 19 05-OCT-14 05-OCT-14 YES 20 05-OCT-14 05-OCT-14 YES
In case of you are facing any kind of error than following sql query will help you to diagnose it.
sql> select dest_name,status,error from v$archive_dest where dest_name='LOG_ARCHIVE_DEST_2'; DEST_NAME -------------------------------------------------------------------------------- STATUS ERROR --------- ----------------------------------------------------------------- LOG_ARCHIVE_DEST_2 VALID
Note: LOG_ARCHIVE_DEST_2 should be VALID in order to continue Data Guard sync.
OR
sql> select message from v$dataguard_status;
Note:This command will give you appropriate message about the dataguard current status.
By default,for a newly created standby database,the primary database is in maximum performance mode.
Protection Mode:
Default protection mode of newly configured standby database would be maximum performance mode.
There are 3 protection modes: Maximum Availability,Maximum Performance and Maximum Protection. for more information,click me.
By above mentioned steps you can configure Data Guard in your environment,Stay tune with my next article aboutData Guard Switch Over and Switch Back steps.
Share this:
Related
Steps to configure Manual Data Guard - Oracle 11g Manual Data Guard Part-I
April 27,2016
In "Oracle"
Oracle 11g Data Guard Switchover and Switchback - Active Data Guard Part-II
October 8,2014
In "Oracle 11g"
Switch over and switch back - Oracle 11g Manual Data Guard Part-II
May 12,2016
In "Oracle"
This entry was posted inOracle 11g,Oracle Replicationand taggedData Guard.
Post navigation
←RMAN-06059: expected archived log not found,loss of archived log compromises recoverability
Bash Code Injection Vulnerability CVE-2014-7169 Affecting Linux & OS X Systems→
40 THOUGHTS ON “STEPS TO CONFIGURE ORACLE 11G DATA GUARD PHYSICAL STANDBY – ACTIVE DATA GUARD PART-I”
-
Felipeon July 28,2015
Hi Jignesh,
I am stuck on step 17…trying to start dr’s listener….
i am getting the following error:
LSNRCTL> start
Starting /u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait…TNSLSNR for Linux: Version 11.2.0.1.0 – Production
System parameter file is /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/sg2/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sg2)(PORT=1521)))
TNS-01201: Listener cannot find executable /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle for SID RTS-
Hello,Thank you for writing.
Please ensure listener.ora and Tnsnames.ora file entries according to steps given.
Also verify tnsping from both the server to both the databases.
Step no 8 and 9 and 13.Please have a close look of TNS error: TNS-01201: Listener cannot find executable /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle for SID RTS
Somewhere,You have set SID name to RTS. Please change it to your given SID name..
-
-
Vimal.P.Son July 31,2015
could you please explain what is (UR=A) entry in tnslistner.ora file (step – 9).
-
Jignesh Jethwaon August 1,2015
Thank you for writing.
(UR=A) entry in tnsnames.ora file is use to connect your auxiliary database.
Stay Tune.-
Vimal.P.Son August 14,2015
Thanks Jignesh.
I’m able to connect auxiliary DB without that entry.I just simply tried,but worked.-
Jignesh Jethwaon August 14,2015
Welcome Vimal,
Sounds good.
-
-
-
-
Pakalitha Makometsaneon August 26,2015
Dear Jignesh
I found a very informative article that is named in the subject line from your website and I have followed it to configure Data Guard on my two oracle 11g servers. I have succeeded with all the steps until I get stuck when I have to configure the listener.ora file from the Production and copying it to the DR. Can you please give me some more details from there on how to configure the listeners and the tnsnames.ora file?
Should the configured listener.ora file still exist in the production server? that is,should the two servers have the same identical listener.ora file?
The same confusion happens with the configurations of the tnsnames.ora files on both servers,it is not clear how to configure them.
Lastly,I have seen you have used pr and dr in the article as examples of hosts when configuring the above files in question. should I assume that pr is the production server while dr is the disaster recovery server?
One more thing if you can clarify the ORACLE_HOME directories per which server that need to be configured in the listener.ora files and tnsnames.ora files
kind regards
Pakalitha
-
Jignesh Jethwaon August 28,2015
Thanks Pakalitha for writing…
Good to know that you trying to configure Data Guard.You can directly configure listener.ora and tnsnames.ora files by editing them manually. OR you can configure it through “Net Configuration Assistance” OR “Net Manager” oracle utility.
Listener.ora & tnsnames.ora files should exist on both the server.
In case of listener file,Whole listener.ora file can be identical on both the server instead of HOST entry. You need to specify host entry.
In case of my testing environment:
PR Listener file:
——————————
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = RTS)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = RTS)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PR)(PORT = 1521))
)
ADR_BASE_LISTENER = /u01/app/oracle
—-End———————–DR Listener file:
——————————
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = RTS)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = RTS)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DR)(PORT = 1521))
)
ADR_BASE_LISTENER = /u01/app/oracle
—-End———————–In case of tnsnames.ora file,yeah it is identical over both the nodes.
PR & DR tnsnames.ora file:
——————————
RTS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = PR)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = RTS)
(GLOBAL_NAME = RTS)
(UR=A)
)
)
RTSDR =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = DR)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = RTS)
(GLOBAL_NAME = RTS)
(UR=A)
) )
—-End———————–Yes you are right,You can assume PR as a Production Server and DR as a disaster recovery server.
On following dir,you need to configured listener.ora and tnsnames.ora files:
/u01/app/oracle/product/11.2.0/dbhome_1/network/admini.e. ORACLE_HOME: /u01/app/oracle/product/11.2.0/dbhome_1/
Hope this much is helpful for you.
Stay Tune.
-
-
Pakalitha Makometsaneon August 28,2015
I am on the tnsnames.ora files now,hope will be easy then
my tnsping commands are not working from the production to the dr,it gives this error,[oracle@srvoradb ~]$ tnsping RTGSDRTNS Ping Utility for Linux: Version 11.2.0.1.0 – Production on 28-AUG-2015 11:09:00
Copyright (c) 1997,Oracle. All rights reserved.
Used parameter files:
/oracle/111/network/admin/sqlnet.oraUsed TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = srvoradbbackup.centralbank.org.ls)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RTGS) (GLOBAL_NAME = RTGS) (UR=A)))
TNS-12543: TNS:destination host unreachable
RTGS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = srvoradb)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = RTGS)
(GLOBAL_NAME = RTGS)
(UR=A)
) )
RTGSDR =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = srvoradbbackup)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = RTGS)
(GLOBAL_NAME = RTGS)
(UR=A)
) )
my tnsnames.ora file is the above
[oracle@srvoradb ~]$ tnsping RTGSTNS Ping Utility for Linux: Version 11.2.0.1.0 – Production on 28-AUG-2015 11:14:14
Copyright (c) 1997,Oracle. All rights reserved.
Used parameter files:
/oracle/111/network/admin/sqlnet.oraUsed TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = srvoradb.centralbank.org.ls)(PORT = 1521))
TNS-12533: TNS:illegal ADDRESS parameters-
Jignesh Jethwaon August 28,2015
Kindly verify the network connection between PR & DR server. then Verify listener file entries like Oracle_home,and Oracle base and try to TNSPING again.
-
-
Pakalitha Makometsaneon August 28,2015
The tnsping succeeded after your intervention,thank you very much for your great help,I learnt quite a lot. much appreciated.
-
Jignesh Jethwaon August 28,2015
Welcome Pakalitha.
Stay Tune.
-
-
Khalid abo elmagdon September 4,2015
thank you very much for the tutorial
I followed your steps but it’s not working
when I try select error from v$archive_dest there is no errors but when select * i got the schedule for stndby db (pending) net_timout (300)
the both vm can ping each other and tnsping is okay-
Jignesh Jethwaon September 8,2015
Thanks Khalid for writing.
Please share the error message.
-
-
Vimal.P.Son September 8,
How to configure the archivelog deletion policy using RMAN.After configuring dataguard i’m facing space issue for the archive location.
After research,i’ve configured like this
In Primary DB,
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;and in Standby DB,
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE;Will this delete the log file right after it is applied in standby.Or will it wait for the space to fillup and once FRA is full,then only it’ll free up the space?.How does this thing works.
My intention is to delete the applied archive logs from primary and standby once it’s applied.
If you have any references for this please share it.
and by the way i’m using Oracle 11g Release2 on Linux machine.
Thank You.,
Vimal.P.S-
Jignesh Jethwaon October 1,2015
Thanks Vimal for writing.
I haven’t went through the scenario you have mentioned,It need to test on test environment. I will get beck to you on this.
-
-
Santhosh kumar Gon April 1,2016
Thank you so much for the post…
we are trying to configure the AGD.. is it possible to take backup from the standby server..we dont want to use scp or copy the backup files from the primary to standby by server..
Thanks-
Thank you santhosh for writing.
YES,it is possible to take backup from standby database with the help of RMAN.
-
-
Imanon June 15,2016
thank you so much for the post. currently i’m trying to learn oracle data guard 11g r2 on my windows server.
I have a problem. I already follow your instruction,but on my standby server,when i execute “select max(sequence#) from v$archived_log”,the result is blank or empty :sql> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
————–Does this means my standby and primary database are not sync?? and what do i miss?
Thanks,
-
Thanks Iman for writing!
Troubleshoot your configuration with steps i have already mentioned in my blog. Step no 22 onward.
-
-
Moon June 26,2016
I’m trying to replicate this tutorial on windows machines.
At Startup standby database in mount state,how can you initiate ‘sqlplus / as sysdba’ if on DR server there is only oracle software installed without any database created ?
Even if I create listener service before that,if the database service it’s not started,the sqlplus command will generate ‘ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor’Do you have any clue about this?
Thank you.
-
Thank you Mo for writing!!
I can initiate ‘sqlplus / as sysdba’ on DR server because,I have created pfile and standby control file.
Kindly verify step no: 9,11,12,13 and 14 and than try startup standby database in mount state.
Stay Tune.
-
-
ORALCE DBAon August 13,2016
thank you so much for the awesome post and i am new to data guard,i go through ur post and i successfully completed with Data guard…but after i got Error 12545 connecting to ORCL for fetching gap sequence can u suggest on this???
-
Jignesh Jethwaon August 30,2016
Thank you for writing!
I would request you to provide me error logs.
-
-
Aslam Baigon November 6,2016
Dear sir,
when a programmer creates application to retrieve the data from a database,he uses connecting string by providing ipaddress/hostname,serviceid,username and password.
Here my question is if one server crashed how the application will run without donwtime?
is there any way to continue and connect the other server immediately ?
or application will stop and again we need to modify connecting string details.
-
Jignesh Jethwaon November 11,2016
Dear Aslam,thanks for writing.
This is Primary-Standby dataguard configuration,it means your application connected to primary database and transactions are being replicated to standby through archive logs.
If your primary database unavilable(crashed) then your application will be stopped completely,in this case you need manual intervention to point your application to standby database server. Please dont forget to activate standby database as primary database.
-
-
Gustian Sadewaon November 9,2016
thank you for the tutorial,but I have some issues here.
I carefully follow up your instruction.
and here are the probem:
1. My database can not be opened in DR site
Database mounted.
ORA-10458: standby database requires recovery
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: ‘/u01/app/oracle/oradata/orcl/system01.dbf’2. when I start apply process,it won’t sync to Primary site
sql> select message from v$dataguard_status;
MESSAGE
——————————————————————————–
ARC0: Archival started
Managed Standby Recovery starting Real Time Apply
Media Recovery Waiting for thread 1 sequence 9
ARC1: Archival started
ARC2: Archival started
ARC3: Archival started
ARC4: Archival started
ARC5: Archival started
ARC6: Archival started
ARC7: Archival started
ARC8: Archival startedMESSAGE
——————————————————————————–
ARC9: Archival started
ARCa: Archival started
ARCb: Archival started
ARCc: Archival started
ARCd: Archival started
ARCe: Archival started
ARCf: Archival started
ARCg: Archival started
ARCh: Archival started
ARCi: Archival started
ARCj: Archival startedMESSAGE
——————————————————————————–
ARCk: Archival started
ARCl: Archival started
ARCm: Archival started
ARCn: Archival started
ARCo: Archival started
ARCp: Archival started
ARCq: Archival started
ARCr: Archival started
ARCs: Archival started
ARC1: Becoming the ‘no FAL’ ARCH
ARC3: Becoming the heartbeat ARCHMESSAGE
——————————————————————————–
ARC3: Becoming the active heartbeat ARCH
Error 1017 received logging on to the standby
FAL[client,USER]: Error 16191 connecting to orcl for fetching gap sequence
Error 1017 received logging on to the standby
FAL[client,ARC2]: Error 16191 connecting to orcl for fetching gap sequence
ARCt: Archival started
Wait timeout: thread 1 sequence 9
Managed Standby Recovery not using Real Time Apply
Attempt to start background Managed Standby Recovery process
MRP0: Background Managed Standby Recovery process started
Managed Standby Recovery not using Real Time ApplyMESSAGE
——————————————————————————–
Clearing online redo logfile 1 /u01/app/oracle/oradata/orcl/redo01.log
Clearing online redo logfile 1 complete
Clearing online redo logfile 2 /u01/app/oracle/oradata/orcl/redo02.log
Clearing online redo logfile 2 complete
Clearing online redo logfile 3 /u01/app/oracle/oradata/orcl/redo03.log
Clearing online redo logfile 3 complete
Media Recovery Waiting for thread 1 sequence 9
Error 1017 received logging on to the standby
FAL[client,USER]: Error 16191 connecting to orcl for fetching gap sequence
MRP0: Background Media Recovery cancelled with status 16037
MRP0: Background Media Recovery process shutdownMESSAGE
——————————————————————————–
Managed Standby Recovery Canceled
Attempt to start background Managed Standby Recovery process
MRP0: Background Managed Standby Recovery process started
Managed Standby Recovery not using Real Time Apply
Clearing online redo logfile 1 /u01/app/oracle/oradata/orcl/redo01.log
Clearing online redo logfile 1 complete
Clearing online redo logfile 2 /u01/app/oracle/oradata/orcl/redo02.log
Clearing online redo logfile 2 complete
Clearing online redo logfile 3 /u01/app/oracle/oradata/orcl/redo03.log
Clearing online redo logfile 3 complete
Media Recovery Waiting for thread 1 sequence 9MESSAGE
——————————————————————————–
Error 1017 received logging on to the standby
FAL[client,USER]: Error 16191 connecting to orcl for fetching gap sequence3. when I tried to connect RMAN in DR site
rman target sys/123456@stdbyRecovery Manager: Release 11.2.0.3.0 – Production on Wed Nov 9 07:44:41 2016
Copyright (c) 1982,2011,Oracle and/or its affiliates. All rights reserved.
connected to target database (not started)
RMAN>
—–but when I using this command,in DR site as well
rman target /Recovery Manager: Release 11.2.0.3.0 – Production on Wed Nov 9 07:45:27 2016
Copyright (c) 1982,Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1455168142,not open)
RMAN>
it can connect to DR database (started but not opened yet)
kindly need your help,
Thank you.
-
Jignesh Jethwaon November 11,2016
Thank you Gustian for writing!
1. My database can not be opened in DR site >>> It won’t be open in READ WRITE mode,it should be in MOUNTED(in order to apply archive logs) or READ ONLY mode(for query offloading for reporting).
2. when I start apply process,it won’t sync to Primary site >>> Kindly ensure all the steps mentioned in this article.
3. >>> Kindly ensure your connection string in tnsnames.ora file and copy password file from primary to standby.
-
-
Abdulwahid Aminyaron January 20,2017
Hi to all of you !
i want install the ORACLE VM VIRTUAL-Box with vagrant for linkage of KoBo toolBox as offline
so i don’t run this process step by step by commend line and other step please help me about these running of virtual Box with vagrant for set up the KoBo toolBox as offline
thanks
aminyar -
Vardhaman Shahon March 8,2017
Thanks a lot. its working but sometime its not a sync to standby database automatically then how to sync manually ??
-
There is two methods,one is to take incremental backup and shift to standby database and second is to copy your archive logs to standby database manually.
-
-
jontyon May 19,2017
hi,
my archives are not appliying and below is the error
select dest_name,error from v$archive_dest where dest_name=’LOG_ARCHIVE_DEST_2′;
DEST_NAME
——————————————————————————–
STATUS ERROR
——— —————————————————————–
LOG_ARCHIVE_DEST_2
ERROR ORA-12514: TNS:listener does not currently know of service-
check your standby database is in mount mode OR also check standby database listener.
-
-
Rameez Tariqon July 24,2017
Hello
My sequence # does not increase on standby server
sql> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 0
Next log sequence to archive 0
Current log sequence 0-
Troubleshoot configuration with given help.
Check:
sql> select message from v$dataguard_status;
and
sql> select dest_name,error from v$archive_dest where dest_name=’LOG_ARCHIVE_DEST_2′;
Note: in my case,LOG_ARCHIVE_DEST_2 is configured.-
Rameez Tariqon July 24,2017
on primary or standby?
-
Try with Primary first… then standby
-
-
-
Pakalitha Makometsaneon July 24,2017
Can you check your ORACLE_SID on your standby? I think it has to be the same as your production. If not,that is where your problem is I think.
-
-
Rameez Tariqon September 7,2017
Hello
How to remove data guard configuration?
-
Jignesh Jethwaon September 23,2017
On primary: Step 1: ALTER DATABASE NO FORCE LOGGING; Step 2: alter system set log_archive_dest_2=” scope=both; Step 3: alter system set log_archive_dest_state_2=disable scope=both; Step 4: clear fal_server and fal_client from parameter file Step 5: Remove DR entries from tnsping.ora file Step 6: Discard complete DR server. Done
-