Oracle Standby Database Creation Procedure:
Primary DB UNIQNM: GGSRC04TStandby DB UNIQNM: GGSRC04TSB1
Step 1) Ensure Primary db is using spfile & create password file if it doesnt exist already
cd $ORACLE_HOME/dbs
orapwd file=orapw${ORACLE_SID}
orapwd file=orapw${ORACLE_SID}
Actual output:
[oracle@vcentos79-oracle-ggsrc DGSetup]$ env|grep ORACLE
ORACLE_SID=GGSRC04T
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1
ORACLE_SID=GGSRC04T
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1
SQL> sho parameter pfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/12.2.0
.1/db_1/dbs/spfileGGSRC04T.ora
SQL> exit
[oracle@vcentos79-oracle-ggsrc DGSetup]$ ls -altr $ORACLE_HOME/dbs/orapw${ORACLE_SID}
-rw-r-----. 1 oracle oinstall 3584 Aug 24 19:53 /u01/app/oracle/product/12.2.0.1/db_1/dbs/orapwGGSRC04T
[oracle@vcentos79-oracle-ggsrc DGSetup]$
-rw-r-----. 1 oracle oinstall 3584 Aug 24 19:53 /u01/app/oracle/product/12.2.0.1/db_1/dbs/orapwGGSRC04T
[oracle@vcentos79-oracle-ggsrc DGSetup]$
Step 2) Enable Force Logging in primary & archivelog mode
ALTER DATABASE FORCE LOGGING;
select name,open_mode,force_logging from v$database;
select name,open_mode,force_logging from v$database;
Actual output:
SQL> select name,open_mode,force_logging,log_mode from v$database;
NAME OPEN_MODE FORCE_LOGGING
--------- -------------------- ---------------------------------------
LOG_MODE
------------
GGSRC04T READ WRITE YES
ARCHIVELOG
Step 3) Add standby redologfiles to primary using the formula (g+1)*t , where g is numer of groups and t is threads
NAME OPEN_MODE FORCE_LOGGING
--------- -------------------- ---------------------------------------
LOG_MODE
------------
GGSRC04T READ WRITE YES
ARCHIVELOG
Step 3) Add standby redologfiles to primary using the formula (g+1)*t , where g is numer of groups and t is threads
ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo04.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo05.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo06.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo07.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo05.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo06.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo07.log') SIZE 200M;
Actual output:
SQL> set lines 300
SQL> set pages 30000
SQL> set pages 30000
SQL> select group# from v$log;
GROUP#
----------
1
2
3
GROUP#
----------
1
2
3
SQL> select group# from v$standby_log;
no rows selected
no rows selected
SQL> select member from v$logfile;
MEMBER
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/oradata/GGSRC04T/redo01.log
/oradata/GGSRC04T/redo02.log
/oradata/GGSRC04T/redo03.log
MEMBER
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/oradata/GGSRC04T/redo01.log
/oradata/GGSRC04T/redo02.log
/oradata/GGSRC04T/redo03.log
SQL> select bytes from v$log;
BYTES
----------
209715200
209715200
209715200
BYTES
----------
209715200
209715200
209715200
SQL> select count(1) from v$thread;
COUNT(1)
----------
1
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo04.log') SIZE 200M;
Database altered.
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo05.log') SIZE 200M;
Database altered.
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo06.log') SIZE 200M;
Database altered.
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo07.log') SIZE 200M;
Database altered.
Database altered.
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo05.log') SIZE 200M;
Database altered.
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo06.log') SIZE 200M;
Database altered.
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oradata/GGSRC04T/sbyredo07.log') SIZE 200M;
Database altered.
SQL> select group# from v$standby_log;
GROUP#
----------
4
5
6
7
GROUP#
----------
4
5
6
7
SQL> select * from v$standby_log;
GROUP# DBID THREAD# SEQUENCE# BYTES BLOCKSIZE USED ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME CON_ID
---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ --------- ----------
4 UNASSIGNED 0 0 209715200 512 0 YES UNASSIGNED 0
5 UNASSIGNED 0 0 209715200 512 0 YES UNASSIGNED 0
6 UNASSIGNED 0 0 209715200 512 0 YES UNASSIGNED 0
7 UNASSIGNED 0 0 209715200 512 0 YES UNASSIGNED 0
SQL>
GROUP# DBID THREAD# SEQUENCE# BYTES BLOCKSIZE USED ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME LAST_CHANGE# LAST_TIME CON_ID
---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ --------- ------------ --------- ----------
4 UNASSIGNED 0 0 209715200 512 0 YES UNASSIGNED 0
5 UNASSIGNED 0 0 209715200 512 0 YES UNASSIGNED 0
6 UNASSIGNED 0 0 209715200 512 0 YES UNASSIGNED 0
7 UNASSIGNED 0 0 209715200 512 0 YES UNASSIGNED 0
SQL>
Step 4) Setup init params for the standby config in primary site
create pfile='/home/oracle/dba/DGSetup/pfileGGSRC04T_premod.ora' from spfile;
alter system set DB_UNIQUE_NAME=GGSRC04T scope=spfile;
alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(GGSRC04T,GGSRC04TSB1)' scope=spfile;
alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GGSRC04T' scope=spfile;
alter system set LOG_ARCHIVE_DEST_2='SERVICE=GGSRC04TSB1 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=GGSRC04TSB1' scope=spfile;
alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile;
alter system set LOG_ARCHIVE_FORMAT='log%t_%s_%r.arc' scope=spfile;
alter system set FAL_SERVER=GGSRC04TSB1 scope=spfile;
alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=spfile;
create pfile='/home/oracle/dba/DGSetup/pfileGGSRC04T_postmod.ora' from spfile;
alter system set DB_UNIQUE_NAME=GGSRC04T scope=spfile;
alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(GGSRC04T,GGSRC04TSB1)' scope=spfile;
alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GGSRC04T' scope=spfile;
alter system set LOG_ARCHIVE_DEST_2='SERVICE=GGSRC04TSB1 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=GGSRC04TSB1' scope=spfile;
alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile;
alter system set LOG_ARCHIVE_FORMAT='log%t_%s_%r.arc' scope=spfile;
alter system set FAL_SERVER=GGSRC04TSB1 scope=spfile;
alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=spfile;
create pfile='/home/oracle/dba/DGSetup/pfileGGSRC04T_postmod.ora' from spfile;
Actual output:
SQL> create pfile='/home/oracle/dba/DGSetup/pfileGGSRC04T_premod.ora' from spfile;
File created.
File created.
SQL> sho parameter unique
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_unique_name string GGSRC04T
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_unique_name string GGSRC04T
SQL> alter system set DB_UNIQUE_NAME=GGSRC04T scope=spfile;
System altered.
SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(GGSRC04T,GGSRC04TSB1)' scope=spfile;
System altered.
SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GGSRC04T' scope=spfile;
System altered.
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=GGSRC04TSB1 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=GGSRC04TSB1' scope=spfile;
System altered.
SQL> alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile;
System altered.
SQL> alter system set LOG_ARCHIVE_FORMAT='log%t_%s_%r.arc' scope=spfile;
System altered.
SQL> alter system set FAL_SERVER=GGSRC04TSB1 scope=spfile;
System altered.
SQL> alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=spfile;
System altered.
SQL> create pfile='/home/oracle/dba/DGSetup/pfileGGSRC04T_postmod.ora' from spfile;
File created.
System altered.
SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(GGSRC04T,GGSRC04TSB1)' scope=spfile;
System altered.
SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GGSRC04T' scope=spfile;
System altered.
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=GGSRC04TSB1 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=GGSRC04TSB1' scope=spfile;
System altered.
SQL> alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE scope=spfile;
System altered.
SQL> alter system set LOG_ARCHIVE_FORMAT='log%t_%s_%r.arc' scope=spfile;
System altered.
SQL> alter system set FAL_SERVER=GGSRC04TSB1 scope=spfile;
System altered.
SQL> alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=spfile;
System altered.
SQL> create pfile='/home/oracle/dba/DGSetup/pfileGGSRC04T_postmod.ora' from spfile;
File created.
SQL> !diff /home/oracle/dba/DGSetup/pfileGGSRC04T_premod.ora /home/oracle/dba/DGSetup/pfileGGSRC04T_postmod.ora
22a23
> *.db_unique_name='GGSRC04T'
25a27
> *.fal_server='GGSRC04TSB1'
27c29,32
< *.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST'
---
> *.log_archive_config='DG_CONFIG=(GGSRC04T,GGSRC04TSB1)'
> *.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GGSRC04T'
> *.log_archive_dest_2='SERVICE=GGSRC04TSB1 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=GGSRC04TSB1'
> *.log_archive_format='log%t_%s_%r.arc'
35a41
> *.standby_file_management='AUTO'
Step 5) Restart the primary database
22a23
> *.db_unique_name='GGSRC04T'
25a27
> *.fal_server='GGSRC04TSB1'
27c29,32
< *.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST'
---
> *.log_archive_config='DG_CONFIG=(GGSRC04T,GGSRC04TSB1)'
> *.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GGSRC04T'
> *.log_archive_dest_2='SERVICE=GGSRC04TSB1 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=GGSRC04TSB1'
> *.log_archive_format='log%t_%s_%r.arc'
35a41
> *.standby_file_management='AUTO'
Step 5) Restart the primary database
shu immediate;
alter database mount;
-- verify if archive mode is enabled. If not enable it using "alter database archivelog;"
alter database open;
alter database mount;
-- verify if archive mode is enabled. If not enable it using "alter database archivelog;"
alter database open;
Actual output:
SQL> shu immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 3221225472 bytes
Fixed Size 8625856 bytes
Variable Size 1442840896 bytes
Database Buffers 1761607680 bytes
Redo Buffers 8151040 bytes
Database mounted.
Database opened.
SQL> select name,open_mode,force_logging,log_mode from v$database;
NAME OPEN_MODE FORCE_LOGGING LOG_MODE
--------- -------------------- --------------------------------------- ------------
GGSRC04T READ WRITE YES ARCHIVELOG
SQL>
Step 6) Make /etc/oratab entry for standby db
SQL> shu immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 3221225472 bytes
Fixed Size 8625856 bytes
Variable Size 1442840896 bytes
Database Buffers 1761607680 bytes
Redo Buffers 8151040 bytes
Database mounted.
Database opened.
SQL> select name,open_mode,force_logging,log_mode from v$database;
NAME OPEN_MODE FORCE_LOGGING LOG_MODE
--------- -------------------- --------------------------------------- ------------
GGSRC04T READ WRITE YES ARCHIVELOG
SQL>
Step 6) Make /etc/oratab entry for standby db
GGSRC04TSB1:/u01/app/oracle/product/12.2.0.1/db_1:N
Actual output:
[oracle@vcentos79-oracle-ggsrc DGSetup]$ grep GGSRC04 /etc/oratab
GGSRC04T:/u01/app/oracle/product/12.2.0.1/db_1:N
GGSRC04TSB1:/u01/app/oracle/product/12.2.0.1/db_1:N
[oracle@vcentos79-oracle-ggsrc DGSetup]$
Step 7) Copy the primary password file and create standby password file from it
cp ${ORACLE_HOME}/dbs/orapw${ORACLE_SID} ${ORACLE_HOME}/dbs/orapw${ORACLE_SID}SB1
GGSRC04T:/u01/app/oracle/product/12.2.0.1/db_1:N
GGSRC04TSB1:/u01/app/oracle/product/12.2.0.1/db_1:N
[oracle@vcentos79-oracle-ggsrc DGSetup]$
Step 7) Copy the primary password file and create standby password file from it
cp ${ORACLE_HOME}/dbs/orapw${ORACLE_SID} ${ORACLE_HOME}/dbs/orapw${ORACLE_SID}SB1
Actual output:
[oracle@vcentos79-oracle-ggsrc admin]$ ls -ld ${ORACLE_BASE}/admin/${ORACLE_SID}/adump
ls: cannot access /u01/app/oracle/admin/GGSRC04TSB1/adump: No such file or directory
[oracle@vcentos79-oracle-ggsrc admin]$ mkdir -p ${ORACLE_BASE}/admin/${ORACLE_SID}/adump
[oracle@vcentos79-oracle-ggsrc admin]$ ls -ld ${ORACLE_BASE}/admin/${ORACLE_SID}/adump
drwxr-xr-x. 2 oracle oinstall 6 Sep 3 21:09 /u01/app/oracle/admin/GGSRC04TSB1/adump
[oracle@vcentos79-oracle-ggsrc admin]$ ls -ld /oradata/${ORACLE_SID}
drwxr-xr-x. 2 oracle oinstall 6 Sep 3 21:08 /oradata/GGSRC04TSB1
[oracle@vcentos79-oracle-ggsrc admin]$ ls -altr /oradata/${ORACLE_SID}
total 0
drwxr-xr-x. 6 oracle dba 73 Sep 3 21:08 ..
drwxr-xr-x. 2 oracle oinstall 6 Sep 3 21:08 .
[oracle@vcentos79-oracle-ggsrc admin]$
Step 8) Startup nomount the standby db with only 2 parameters
*.db_name=GGSRC04T
*.db_unique_name=GGSRC04TSB1
*.db_unique_name=GGSRC04TSB1
Actual output:
[oracle@vcentos79-oracle-ggsrc DGSetup]$ vi $ORACLE_HOME/dbs/initGGSRC04TSB1.ora
[oracle@vcentos79-oracle-ggsrc DGSetup]$ cat $ORACLE_HOME/dbs/initGGSRC04TSB1.ora
*.db_name=GGSRC04T
*.db_unique_name=GGSRC04TSB1
[oracle@vcentos79-oracle-ggsrc DGSetup]$
[oracle@vcentos79-oracle-ggsrc ~]$ env|grep ORACLE
ORACLE_SID=GGSRC04TSB1
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1
[oracle@vcentos79-oracle-ggsrc ~]$ sqlplus '/as sysdba'
SQL*Plus: Release 12.2.0.1.0 Production on Sun Sep 3 21:01:38 2023
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 243269632 bytes
Fixed Size 8619256 bytes
Variable Size 180357896 bytes
Database Buffers 50331648 bytes
Redo Buffers 3960832 bytes
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
GGSRC04TSB1 STARTED
SQL>
[oracle@vcentos79-oracle-ggsrc DGSetup]$ cat $ORACLE_HOME/dbs/initGGSRC04TSB1.ora
*.db_name=GGSRC04T
*.db_unique_name=GGSRC04TSB1
[oracle@vcentos79-oracle-ggsrc DGSetup]$
[oracle@vcentos79-oracle-ggsrc ~]$ env|grep ORACLE
ORACLE_SID=GGSRC04TSB1
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1
[oracle@vcentos79-oracle-ggsrc ~]$ sqlplus '/as sysdba'
SQL*Plus: Release 12.2.0.1.0 Production on Sun Sep 3 21:01:38 2023
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 243269632 bytes
Fixed Size 8619256 bytes
Variable Size 180357896 bytes
Database Buffers 50331648 bytes
Redo Buffers 3960832 bytes
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
GGSRC04TSB1 STARTED
SQL>
Step 9) create audit file directory in standby site & create controlfile directory in asm in standby
ls -ld ${ORACLE_BASE}/admin/${ORACLE_SID}/adump
controlfile path: /oradata/${ORACLE_SID}/controlfile/
controlfile path: /oradata/${ORACLE_SID}/controlfile/
Actual output:
[oracle@vcentos79-oracle-ggsrc admin]$ ls -ld ${ORACLE_BASE}/admin/${ORACLE_SID}/adump
ls: cannot access /u01/app/oracle/admin/GGSRC04TSB1/adump: No such file or directory
[oracle@vcentos79-oracle-ggsrc admin]$ mkdir -p ${ORACLE_BASE}/admin/${ORACLE_SID}/adump
[oracle@vcentos79-oracle-ggsrc admin]$ ls -ld ${ORACLE_BASE}/admin/${ORACLE_SID}/adump
drwxr-xr-x. 2 oracle oinstall 6 Sep 3 21:09 /u01/app/oracle/admin/GGSRC04TSB1/adump
[oracle@vcentos79-oracle-ggsrc admin]$
[oracle@vcentos79-oracle-ggsrc admin]$ ls -ld /oradata/${ORACLE_SID}
drwxr-xr-x. 2 oracle oinstall 6 Sep 3 21:08 /oradata/GGSRC04TSB1
[oracle@vcentos79-oracle-ggsrc admin]$ ls -altr /oradata/${ORACLE_SID}
total 0
drwxr-xr-x. 6 oracle dba 73 Sep 3 21:08 ..
drwxr-xr-x. 2 oracle oinstall 6 Sep 3 21:08 .
[oracle@vcentos79-oracle-ggsrc admin]$
Step 10) Add TNS entry for primary and standby (in my case primary and standby are in same server)
ls: cannot access /u01/app/oracle/admin/GGSRC04TSB1/adump: No such file or directory
[oracle@vcentos79-oracle-ggsrc admin]$ mkdir -p ${ORACLE_BASE}/admin/${ORACLE_SID}/adump
[oracle@vcentos79-oracle-ggsrc admin]$ ls -ld ${ORACLE_BASE}/admin/${ORACLE_SID}/adump
drwxr-xr-x. 2 oracle oinstall 6 Sep 3 21:09 /u01/app/oracle/admin/GGSRC04TSB1/adump
[oracle@vcentos79-oracle-ggsrc admin]$
[oracle@vcentos79-oracle-ggsrc admin]$ ls -ld /oradata/${ORACLE_SID}
drwxr-xr-x. 2 oracle oinstall 6 Sep 3 21:08 /oradata/GGSRC04TSB1
[oracle@vcentos79-oracle-ggsrc admin]$ ls -altr /oradata/${ORACLE_SID}
total 0
drwxr-xr-x. 6 oracle dba 73 Sep 3 21:08 ..
drwxr-xr-x. 2 oracle oinstall 6 Sep 3 21:08 .
[oracle@vcentos79-oracle-ggsrc admin]$
Step 10) Add TNS entry for primary and standby (in my case primary and standby are in same server)
GGSRC04T =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vcentos79-oracle-ggsrc)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = GGSRC04T)
)
)
GGSRC04TSB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vcentos79-oracle-ggsrc)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = GGSRC04TSB1)
)
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vcentos79-oracle-ggsrc)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = GGSRC04T)
)
)
GGSRC04TSB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vcentos79-oracle-ggsrc)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = GGSRC04TSB1)
)
)
Actual output:
GGSRC04TSB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vcentos79-oracle-ggsrc)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = GGSRC04TSB1)
)
)
LISTENER_GGSRC04TSB1 =
(ADDRESS = (PROTOCOL = TCP)(HOST = vcentos79-oracle-ggsrc)(PORT = 1521))
Step 11) Add static listener entry for primary and standby to facilitate active db duplication in both primary and standby site (in our case it is the same server)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vcentos79-oracle-ggsrc)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = GGSRC04TSB1)
)
)
LISTENER_GGSRC04TSB1 =
(ADDRESS = (PROTOCOL = TCP)(HOST = vcentos79-oracle-ggsrc)(PORT = 1521))
Step 11) Add static listener entry for primary and standby to facilitate active db duplication in both primary and standby site (in our case it is the same server)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = GGSRC04T)
(ORACLE_HOME = /u01/app/oracle/product/12.2.0.1/db_1)
(SID_NAME = GGSRC04T)
)
(SID_DESC =
(GLOBAL_DBNAME = GGSRC04TSB1)
(ORACLE_HOME = /u01/app/oracle/product/12.2.0.1/db_1)
(SID_NAME = GGSRC04TSB1)
)
)
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = GGSRC04T)
(ORACLE_HOME = /u01/app/oracle/product/12.2.0.1/db_1)
(SID_NAME = GGSRC04T)
)
(SID_DESC =
(GLOBAL_DBNAME = GGSRC04TSB1)
(ORACLE_HOME = /u01/app/oracle/product/12.2.0.1/db_1)
(SID_NAME = GGSRC04TSB1)
)
)
Actual output:
[oracle@vcentos79-oracle-ggsrc admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/12.1.0.2/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vcentos79-oracle-ggsrc)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = GGSRC04T)
(ORACLE_HOME = /u01/app/oracle/product/12.2.0.1/db_1)
(SID_NAME = GGSRC04T)
)
(SID_DESC =
(GLOBAL_DBNAME = GGSRC04TSB1)
(ORACLE_HOME = /u01/app/oracle/product/12.2.0.1/db_1)
(SID_NAME = GGSRC04TSB1)
)
)
[oracle@vcentos79-oracle-ggsrc admin]$
Step 12) Validate the db connection
sqlplus sys/pswd@<tnsentry> as sysdba-- primary
sqlplus sys/pswd@<tnsentry> as sysdba -- standby
sqlplus sys/pswd@<tnsentry> as sysdba -- standby
Actual output:
[oracle@vcentos79-oracle-ggsrc DGSetup]$ sqlplus sys@GGSRC04T as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Sun Sep 3 21:06:26 2023
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> exit
SQL*Plus: Release 12.2.0.1.0 Production on Sun Sep 3 21:06:26 2023
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> exit
[oracle@vcentos79-oracle-ggsrc DGSetup]$ sqlplus sys@GGSRC04TSB1 as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Sun Sep 3 21:06:34 2023
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> exit
[oracle@vcentos79-oracle-ggsrc DGSetup]$
SQL*Plus: Release 12.2.0.1.0 Production on Sun Sep 3 21:06:34 2023
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> exit
[oracle@vcentos79-oracle-ggsrc DGSetup]$
Step 13) Perform active database duplication to create standby. Frame the rman script
script: /home/oracle/dba/DGSetup/standbyGGSRC04TSB1.cmd
run {
allocate channel prmy1 type disk;
allocate channel prmy2 type disk;
allocate auxiliary channel stby1 type disk;
allocate auxiliary channel stby2 type disk;
duplicate target database for standby from active database
USING COMPRESSED BACKUPSET
dorecover
spfile
parameter_value_convert 'GGSRC04T','GGSRC04TSB1'
set db_name='GGSRC04T'
set db_unique_name='GGSRC04TSB1'
set fal_server='GGSRC04TSB1'
set log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GGSRC04TSB1'
set log_archive_dest_2='service=GGSRC04T ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=GGSRC04T'
set db_file_name_convert='/oradata/GGSRC04T','/oradata/GGSRC04TSB1'
set log_file_name_convert='/oradata/GGSRC04T','/oradata/GGSRC04TSB1'
reset local_listener
NOFILENAMECHECK;
}
run {
allocate channel prmy1 type disk;
allocate channel prmy2 type disk;
allocate auxiliary channel stby1 type disk;
allocate auxiliary channel stby2 type disk;
duplicate target database for standby from active database
USING COMPRESSED BACKUPSET
dorecover
spfile
parameter_value_convert 'GGSRC04T','GGSRC04TSB1'
set db_name='GGSRC04T'
set db_unique_name='GGSRC04TSB1'
set fal_server='GGSRC04TSB1'
set log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GGSRC04TSB1'
set log_archive_dest_2='service=GGSRC04T ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=GGSRC04T'
set db_file_name_convert='/oradata/GGSRC04T','/oradata/GGSRC04TSB1'
set log_file_name_convert='/oradata/GGSRC04T','/oradata/GGSRC04TSB1'
reset local_listener
NOFILENAMECHECK;
}
Actual output:
[oracle@vcentos79-oracle-ggsrc DGSetup]$ ls -altr
total 24
drwxr-xr-x. 8 oracle oinstall 4096 Sep 3 20:33 ..
-rw-r--r--. 1 oracle oinstall 688 Sep 3 20:35 standbyGGSRC04TSB1.cmd
Step 14) Frame the shell script to invoke the rman script above & launch the script
export ORACLE_SID=GGSRC04TSB1;export ORAENV_ASK=NO;. oraenv >/dev/null 2>&1;
date
rman target sys/******@GGSRC04T auxiliary sys/*******@GGSRC04TSB1 cmdfile=/home/oracle/dba/DGSetup/standbyGGSRC04TSB1.cmd log=/home/oracle/dba/DGSetup/standbyGGSRC04TSB1.log
date
date
rman target sys/******@GGSRC04T auxiliary sys/*******@GGSRC04TSB1 cmdfile=/home/oracle/dba/DGSetup/standbyGGSRC04TSB1.cmd log=/home/oracle/dba/DGSetup/standbyGGSRC04TSB1.log
date
Actual output:
[oracle@vcentos79-oracle-ggsrc DGSetup]$ nohup sh standbyGGSRC04TSB1.sh >nh_standbyGGSRC04TSB1.out &
[1] 26930
[1] 26930
[oracle@vcentos79-oracle-ggsrc DGSetup]$ nohup: ignoring input and redirecting stderr to stdout
[oracle@vcentos79-oracle-ggsrc DGSetup]$ jobs -l
[1]+ 26930 Running nohup sh standbyGGSRC04TSB1.sh > nh_standbyGGSRC04TSB1.out &
[1]+ 26930 Running nohup sh standbyGGSRC04TSB1.sh > nh_standbyGGSRC04TSB1.out &
[oracle@vcentos79-oracle-ggsrc DGSetup]$ cat nh_standbyGGSRC04TSB1.out
Sun Sep 3 21:19:19 BST 2023
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16> 17> 18> 19> 20> 21> [oracle@vcentos79-oracle-ggsrc DGSetup]$
[oracle@vcentos79-oracle-ggsrc DGSetup]$
Sun Sep 3 21:19:19 BST 2023
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16> 17> 18> 19> 20> 21> [oracle@vcentos79-oracle-ggsrc DGSetup]$
[oracle@vcentos79-oracle-ggsrc DGSetup]$
[oracle@vcentos79-oracle-ggsrc DGSetup]$ jobs -l
[1]+ 26930 Running nohup sh standbyGGSRC04TSB1.sh > nh_standbyGGSRC04TSB1.out &
[oracle@vcentos79-oracle-ggsrc DGSetup]$
[oracle@vcentos79-oracle-ggsrc DGSetup]$ tail -10f standbyGGSRC04TSB1.log
Starting restore at 03-SEP-23
channel stby1: starting datafile backup set restore
channel stby1: using compressed network backup set from service GGSRC04T
channel stby1: specifying datafile(s) to restore from backup set
channel stby1: restoring datafile 00001 to /oradata/GGSRC04TSB1/system01.dbf
channel stby2: starting datafile backup set restore
channel stby2: using compressed network backup set from service GGSRC04T
channel stby2: specifying datafile(s) to restore from backup set
channel stby2: restoring datafile 00002 to /oradata/GGSRC04TSB1/sysaux01.dbf
^C
[oracle@vcentos79-oracle-ggsrc DGSetup]$
[oracle@vcentos79-oracle-ggsrc DGSetup]$ view standbyGGSRC04TSB1.log
[1]+ Done nohup sh standbyGGSRC04TSB1.sh > nh_standbyGGSRC04TSB1.out
[oracle@vcentos79-oracle-ggsrc DGSetup]$
Snippet of rman log:
Recovery Manager: Release 12.2.0.1.0 - Production on Sun Sep 3 21:19:19 2023
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
connected to target database: GGSRC04T (DBID=4198404018)
connected to auxiliary database: GGSRC04T (not mounted)
RMAN> run {
2> allocate channel prmy1 type disk;
3> allocate channel prmy2 type disk;
4> allocate auxiliary channel stby1 type disk;
5> allocate auxiliary channel stby2 type disk;
6> duplicate target database for standby from active database
7> USING COMPRESSED BACKUPSET
8> dorecover
9> spfile
10> parameter_value_convert 'GGSRC04T','GGSRC04TSB1'
11> set db_name='GGSRC04T'
12> set db_unique_name='GGSRC04TSB1'
13> set fal_server='GGSRC04TSB1'
14> set log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GGSRC04TSB1'
...
starting media recovery
archived log for thread 1 with sequence 19 is already on disk as file /oraarch/GGSRC04TSB1/archivelog/2023_09_03/o1_mf_1_19_lh9tohmh_.arc
archived log for thread 1 with sequence 20 is already on disk as file /oraarch/GGSRC04TSB1/archivelog/2023_09_03/o1_mf_1_20_lh9tohoc_.arc
archived log file name=/oraarch/GGSRC04TSB1/archivelog/2023_09_03/o1_mf_1_19_lh9tohmh_.arc thread=1 sequence=19
archived log file name=/oraarch/GGSRC04TSB1/archivelog/2023_09_03/o1_mf_1_20_lh9tohoc_.arc thread=1 sequence=20
media recovery complete, elapsed time: 00:00:00
Finished recover at 03-SEP-23
Finished Duplicate Db at 03-SEP-23
released channel: prmy1
released channel: prmy2
released channel: stby1
released channel: stby2
Recovery Manager complete.
Step 15) Put the db in recovery mode
Starting restore at 03-SEP-23
channel stby1: starting datafile backup set restore
channel stby1: using compressed network backup set from service GGSRC04T
channel stby1: specifying datafile(s) to restore from backup set
channel stby1: restoring datafile 00001 to /oradata/GGSRC04TSB1/system01.dbf
channel stby2: starting datafile backup set restore
channel stby2: using compressed network backup set from service GGSRC04T
channel stby2: specifying datafile(s) to restore from backup set
channel stby2: restoring datafile 00002 to /oradata/GGSRC04TSB1/sysaux01.dbf
^C
[oracle@vcentos79-oracle-ggsrc DGSetup]$
[oracle@vcentos79-oracle-ggsrc DGSetup]$ view standbyGGSRC04TSB1.log
[1]+ Done nohup sh standbyGGSRC04TSB1.sh > nh_standbyGGSRC04TSB1.out
[oracle@vcentos79-oracle-ggsrc DGSetup]$
Snippet of rman log:
Recovery Manager: Release 12.2.0.1.0 - Production on Sun Sep 3 21:19:19 2023
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
connected to target database: GGSRC04T (DBID=4198404018)
connected to auxiliary database: GGSRC04T (not mounted)
RMAN> run {
2> allocate channel prmy1 type disk;
3> allocate channel prmy2 type disk;
4> allocate auxiliary channel stby1 type disk;
5> allocate auxiliary channel stby2 type disk;
6> duplicate target database for standby from active database
7> USING COMPRESSED BACKUPSET
8> dorecover
9> spfile
10> parameter_value_convert 'GGSRC04T','GGSRC04TSB1'
11> set db_name='GGSRC04T'
12> set db_unique_name='GGSRC04TSB1'
13> set fal_server='GGSRC04TSB1'
14> set log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GGSRC04TSB1'
...
starting media recovery
archived log for thread 1 with sequence 19 is already on disk as file /oraarch/GGSRC04TSB1/archivelog/2023_09_03/o1_mf_1_19_lh9tohmh_.arc
archived log for thread 1 with sequence 20 is already on disk as file /oraarch/GGSRC04TSB1/archivelog/2023_09_03/o1_mf_1_20_lh9tohoc_.arc
archived log file name=/oraarch/GGSRC04TSB1/archivelog/2023_09_03/o1_mf_1_19_lh9tohmh_.arc thread=1 sequence=19
archived log file name=/oraarch/GGSRC04TSB1/archivelog/2023_09_03/o1_mf_1_20_lh9tohoc_.arc thread=1 sequence=20
media recovery complete, elapsed time: 00:00:00
Finished recover at 03-SEP-23
Finished Duplicate Db at 03-SEP-23
released channel: prmy1
released channel: prmy2
released channel: stby1
released channel: stby2
Recovery Manager complete.
Step 15) Put the db in recovery mode
alter database recover automatic managed standby database disconnect from session; select database_role,db_unique_name,name ,SWITCHOVER_STATUS from v$database;
select process,status,client_process,sequence# from gv$managed_standby;
Actual output:
SQL> select name,open_mode from v$database;
NAME OPEN_MODE
--------- --------------------
GGSRC04T MOUNTED
NAME OPEN_MODE
--------- --------------------
GGSRC04T MOUNTED
SQL> select distinct(status) from v$datafile;
STATUS
-------
ONLINE
SYSTEM
SQL> select distinct(status) from v$datafile_header;
STATUS
-------
ONLINE
SQL>
SQL>
SQL> set lines 300
SQL> set pages 3000
STATUS
-------
ONLINE
SQL>
SQL>
SQL> set lines 300
SQL> set pages 3000
SQL> select process,status,client_process,sequence# from gv$managed_standby;
PROCESS STATUS CLIENT_P SEQUENCE#
--------- ------------ -------- ----------
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
ARCH CONNECTED ARCH 0
ARCH CLOSING ARCH 21
RFS IDLE Archival 0
RFS IDLE LGWR 22
8 rows selected.
PROCESS STATUS CLIENT_P SEQUENCE#
--------- ------------ -------- ----------
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
ARCH CONNECTED ARCH 0
ARCH CLOSING ARCH 21
RFS IDLE Archival 0
RFS IDLE LGWR 22
8 rows selected.
SQL> alter database recover automatic managed standby database disconnect from session;
Database altered.
Database altered.
SQL> select process,status,client_process,sequence# from gv$managed_standby;
PROCESS STATUS CLIENT_P SEQUENCE#
--------- ------------ -------- ----------
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
ARCH CONNECTED ARCH 0
ARCH CLOSING ARCH 21
RFS IDLE Archival 0
RFS IDLE LGWR 22
MRP0 APPLYING_LOG N/A 22
9 rows selected.
PROCESS STATUS CLIENT_P SEQUENCE#
--------- ------------ -------- ----------
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
ARCH CONNECTED ARCH 0
ARCH CLOSING ARCH 21
RFS IDLE Archival 0
RFS IDLE LGWR 22
MRP0 APPLYING_LOG N/A 22
9 rows selected.
SQL> /
PROCESS STATUS CLIENT_P SEQUENCE#
--------- ------------ -------- ----------
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
ARCH CONNECTED ARCH 0
ARCH CLOSING ARCH 21
RFS IDLE Archival 0
RFS IDLE LGWR 22
MRP0 APPLYING_LOG N/A 22
9 rows selected.
PROCESS STATUS CLIENT_P SEQUENCE#
--------- ------------ -------- ----------
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
ARCH CONNECTED ARCH 0
ARCH CLOSING ARCH 21
RFS IDLE Archival 0
RFS IDLE LGWR 22
MRP0 APPLYING_LOG N/A 22
9 rows selected.
SQL> select name,open_mode,db_unique_name,log_mode,force_logging from v$Database;
NAME OPEN_MODE DB_UNIQUE_NAME LOG_MODE FORCE_LOGGING
--------- -------------------- ------------------------------ ------------ ---------------------------------------
GGSRC04T MOUNTED GGSRC04TSB1 ARCHIVELOG YES
NAME OPEN_MODE DB_UNIQUE_NAME LOG_MODE FORCE_LOGGING
--------- -------------------- ------------------------------ ------------ ---------------------------------------
GGSRC04T MOUNTED GGSRC04TSB1 ARCHIVELOG YES
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME CON_ID
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ --------- ----------
1 1 0 209715200 512 1 YES UNUSED 590545 03-SEP-23 1.8447E+19 0
3 1 0 209715200 512 1 YES UNUSED 586943 03-SEP-23 590545 03-SEP-23 0
2 1 0 209715200 512 1 YES UNUSED 577599 03-SEP-23 586943 03-SEP-23 0
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME CON_ID
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- ------------ --------- ----------
1 1 0 209715200 512 1 YES UNUSED 590545 03-SEP-23 1.8447E+19 0
3 1 0 209715200 512 1 YES UNUSED 586943 03-SEP-23 590545 03-SEP-23 0
2 1 0 209715200 512 1 YES UNUSED 577599 03-SEP-23 586943 03-SEP-23 0
SQL> select status,max(sequence#) from v$archived_log group by status;
S MAX(SEQUENCE#)
S MAX(SEQUENCE#)
- --------------
A 21
A 21
SQL> select status,applied,max(sequence#) from v$archived_log group by status,applied;
S APPLIED MAX(SEQUENCE#)
- --------- --------------
A YES 20
A IN-MEMORY 21 <<<< before arch switch in primary
S APPLIED MAX(SEQUENCE#)
- --------- --------------
A YES 20
A IN-MEMORY 21 <<<< before arch switch in primary
SQL> /
S APPLIED MAX(SEQUENCE#)
- --------- --------------
A YES 21
A IN-MEMORY 22 <<<< after arch switch in primary
S APPLIED MAX(SEQUENCE#)
- --------- --------------
A YES 21
A IN-MEMORY 22 <<<< after arch switch in primary
SQL> select process,status,client_process,sequence# from gv$managed_standby;
PROCESS STATUS CLIENT_P SEQUENCE#
--------- ------------ -------- ----------
DGRD ALLOCATED N/A 0
ARCH CLOSING ARCH 22
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
ARCH CONNECTED ARCH 0
ARCH CLOSING ARCH 21
RFS IDLE Archival 0
RFS IDLE LGWR 23
MRP0 APPLYING_LOG N/A 23
9 rows selected.
SQL>
PROCESS STATUS CLIENT_P SEQUENCE#
--------- ------------ -------- ----------
DGRD ALLOCATED N/A 0
ARCH CLOSING ARCH 22
DGRD ALLOCATED N/A 0
ARCH CONNECTED ARCH 0
ARCH CONNECTED ARCH 0
ARCH CLOSING ARCH 21
RFS IDLE Archival 0
RFS IDLE LGWR 23
MRP0 APPLYING_LOG N/A 23
9 rows selected.
SQL>
Step 16) A quick validation of the pfile in standby
[oracle@vcentos79-oracle-ggsrc DGSetup]$ grep GGSRC /home/oracle/dba/DGSetup/pfileGGSRC04TSB1.ora
*.audit_file_dest='/u01/app/oracle/admin/GGSRC04TSB1/adump'
*.control_files='/oradata/GGSRC04TSB1/control01.ctl','/oradata/GGSRC04TSB1/control02.ctl'#Restore Controlfile
*.db_file_name_convert='/oradata/GGSRC04T','/oradata/GGSRC04TSB1'
*.db_name='GGSRC04T'
*.db_unique_name='GGSRC04TSB1'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=GGSRC04TSB1XDB)'
*.fal_server='GGSRC04TSB1' <<< CONCERNING, since we used param conver GGSRC04T became GGSRC04TSB1, but the otherway around didnt happen
*.log_archive_config='DG_CONFIG=(GGSRC04T,GGSRC04TSB1)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GGSRC04TSB1'
*.log_archive_dest_2='service=GGSRC04T ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=GGSRC04T'
*.log_file_name_convert='/oradata/GGSRC04T','/oradata/GGSRC04TSB1'
[oracle@vcentos79-oracle-ggsrc DGSetup]$
Step 17) Fix FAL_SERVER @ standby
*.audit_file_dest='/u01/app/oracle/admin/GGSRC04TSB1/adump'
*.control_files='/oradata/GGSRC04TSB1/control01.ctl','/oradata/GGSRC04TSB1/control02.ctl'#Restore Controlfile
*.db_file_name_convert='/oradata/GGSRC04T','/oradata/GGSRC04TSB1'
*.db_name='GGSRC04T'
*.db_unique_name='GGSRC04TSB1'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=GGSRC04TSB1XDB)'
*.fal_server='GGSRC04TSB1' <<< CONCERNING, since we used param conver GGSRC04T became GGSRC04TSB1, but the otherway around didnt happen
*.log_archive_config='DG_CONFIG=(GGSRC04T,GGSRC04TSB1)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=GGSRC04TSB1'
*.log_archive_dest_2='service=GGSRC04T ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=GGSRC04T'
*.log_file_name_convert='/oradata/GGSRC04T','/oradata/GGSRC04TSB1'
[oracle@vcentos79-oracle-ggsrc DGSetup]$
Step 17) Fix FAL_SERVER @ standby
SQL>
SQL> sho parameter fal_Server
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fal_server string GGSRC04TSB1
SQL> alter system set fal_server='GGSRC04T' scope=spfile;
System altered.
SQL> alter system set fal_server='GGSRC04T' scope=both;
System altered.
SQL> sho parameter fal_se
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fal_server string GGSRC04T
SQL> sho parameter fal_Server
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fal_server string GGSRC04TSB1
SQL> alter system set fal_server='GGSRC04T' scope=spfile;
System altered.
SQL> alter system set fal_server='GGSRC04T' scope=both;
System altered.
SQL> sho parameter fal_se
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fal_server string GGSRC04T
YouTube Video:
No comments:
Post a Comment