I. Network 설정

1. 서버 Network 설정

A) 서버 정보 hosts 파일 저장

vi /etc/hosts
10.10.50.11     ora_act
10.10.50.21     ora_stb

 

2. Listener 설정

A) Primary의 listener.ora 파일

vi $ORACLE_HOME/network/admin/listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-act)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL_DGB)
      (ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1)
      (SID_NAME = orcl)
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle
[oracle@orcl ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 29-AUG-2018 14:33:05

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora-act)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                29-AUG-2018 14:14:09
Uptime                    0 days 0 hr. 18 min. 55 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/ora-act/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-act)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "73b889aabfcb1c67e0533301000adc78" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "ORCL" has 2 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "ORCL_DGB" has 2 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "ORCL_DGMGRL" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl_CFG" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclpdb" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

 

B) Standby의 listener.ora 파일

vi $ORACLE_HOME/network/admin/listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-stb)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL_STB)
      (ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL_STB_DGB)
      (ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL_STB_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1)
      (SID_NAME = orcl)
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle
[oracle@orcl ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 29-AUG-2018 14:33:31

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora-stb)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                29-AUG-2018 14:14:53
Uptime                    0 days 0 hr. 18 min. 37 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/ora-stb/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-stb)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ORCL_STB" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Service "ORCL_STB_DGB" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Service "ORCL_STB_DGMGRL" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

 

C) tnsnames.ora 파일

vi $ORACLE_HOME/network/admin/tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-act)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ORCL)
    )
  )

ORCL_STB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-stb)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ORCL_STB)
    )
  )
[oracle@orcl ~]$ tnsping ORCL

TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 29-AUG-2018 14:34:09

Copyright (c) 1997, 2016, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ora-act)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL)))
OK (10 msec)

[oracle@orcl ~]$ tnsping ORCL_STB

TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 29-AUG-2018 14:34:16

Copyright (c) 1997, 2016, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ora-stb)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = ORCL_STB)))
OK (0 msec)

 

D) 리스너 기동

oracle 유저로 실행
lsnrctl start
[oracle@orcl ~]$ lsnrctl start

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 29-AUG-2018 13:31:37

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Starting /u01/app/oracle/product/12.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 12.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/ora-act/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-act)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora-act)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                29-AUG-2018 13:31:37
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/ora-act/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-act)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ORCL" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Service "ORCL_DGB" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Service "ORCL_DGMGRL" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@orcl ~]$ lsnrctl start

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 29-AUG-2018 13:31:41

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Starting /u01/app/oracle/product/12.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 12.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/ora-stb/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-stb)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora-stb)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                29-AUG-2018 13:31:41
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/ora-stb/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora-stb)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "ORCL_STB" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Service "ORCL_STB_DGB" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
Service "ORCL_STB_DGMGRL" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

 

II. Data Guard 환경 구성

1. 파라미터 설정

A) db name 파라미터 조회

DB name 파라미터 값 조회
show parameter db_name
show parameter db_unique_name
SQL> show parameter db_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      orcl

SQL> show parameter db_unique_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      ORCL
db_unique_name 변경
ALTER SYSTEM SET db_unique_name = ORCL scope=spfile;

 

2. 아카이브 환경 설정

A) 아카이브 로그 파라미터 설정

sys 유저로 primary에서 수행
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCL,ORCL_STB)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORCL_STB NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL_STB';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
-- ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCL,ORCL_STB)';

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORCL_STB NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL_STB';

System altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

System altered.

 

B) 아카이브 로그 모드 활성화

sys 유저로 primary에서 수행
SELECT log_mode FROM v$database;
SQL> SELECT log_mode FROM v$database;

LOG_MODE
------------
ARCHIVELOG
Noarchive에서 Archive 모드로 변경
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

 

C) 강제 로그 적용 모드 활성화

sys 유저로 primary에서 수행
ALTER DATABASE FORCE LOGGING;
ALTER SYSTEM SWITCH LOGFILE;
SQL> ALTER DATABASE FORCE LOGGING;

Database altered.
 
SQL> ALTER SYSTEM SWITCH LOGFILE;

System altered.

 

3. Data Guard 환경 설정

A) Data Guard 관련 파라미터 설정

sys 유저로 primary에서 수행
ALTER SYSTEM SET FAL_CLIENT=ORCL;
ALTER SYSTEM SET FAL_SERVER=ORCL_STB;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
SQL> ALTER SYSTEM SET FAL_CLIENT=ORCL;

System altered.

SQL> ALTER SYSTEM SET FAL_SERVER=ORCL_STB;

System altered.
 
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

System altered.

 

B) Standby Log File 생성

sys 유저로 primary에서 수행
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/standby_redo01.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/standby_redo02.log') SIZE 200M;
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/standby_redo03.log') SIZE 200M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/standby_redo01.log') SIZE 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/standby_redo02.log') SIZE 200M;

Database altered.

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/orcl/standby_redo03.log') SIZE 200M;

Database altered.

SQL> SELECT group#, member, type FROM v$logfile;

    GROUP# MEMBER                                             TYPE
---------- -------------------------------------------------- -------
         3 /u01/app/oracle/oradata/orcl/redo03.log            ONLINE
         2 /u01/app/oracle/oradata/orcl/redo02.log            ONLINE
         1 /u01/app/oracle/oradata/orcl/redo01.log            ONLINE
         4 /u01/app/oracle/oradata/orcl/standby_redo01.log    STANDBY
         5 /u01/app/oracle/oradata/orcl/standby_redo02.log    STANDBY
         6 /u01/app/oracle/oradata/orcl/standby_redo03.log    STANDBY

6 rows selected.

 

C) 플래시백 활성화 (옵션)

sys 유저로 primary에서 수행
ALTER DATABASE FLASHBACK ON;
SQL> SELECT flashback_on FROM v$database;

FLASHBACK_ON
------------------
NO

SQL> ALTER DATABASE FLASHBACK ON;

Database altered.

SQL> SELECT flashback_on FROM v$database;

FLASHBACK_ON
------------------
YES

 

4. Standby 서버 환경 설정

A) 디렉토리 생성

oracle 유저로 standby 서버에서 수행
mkdir -p /u01/app/oracle/oradata/orcl/orclpdb
mkdir -p /u01/app/oracle/oradata/orcl/pdbseed
mkdir -p /u01/app/oracle/fast_recovery_area/orcl
mkdir -p /u01/app/oracle/admin/orcl/adump
[oracle@orcl ~]$ mkdir -p /u01/app/oracle/oradata/orcl/orclpdb
[oracle@orcl ~]$ mkdir -p /u01/app/oracle/oradata/orcl/pdbseed
[oracle@orcl ~]$ mkdir -p /u01/app/oracle/fast_recovery_area/orcl
[oracle@orcl ~]$ mkdir -p /u01/app/oracle/admin/orcl/adump

 

B) 패스워드 파일 생성

oracle 유저로 standby 서버에서 수행
orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle entries=10 format=12

 

C) 임시 파라미터 파일 생성

vi /home/oracle/orcl_stb.ora
*.db_name='orcl'
[oracle@orcl ~]$ cat orcl_stb.ora
*.db_name='orcl'

 

III. Standby DB 복제

1. Standby DB Instance 구동

A) SQL*Plus 접속

sysdba 권한으로 standby 접속
sqlplus / as sysdba
[oracle@orcl ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Wed Aug 29 13:45:06 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Connected to an idle instance.

 

B) nomount 모드로 Database 시작

Standby 인스턴스 기동
startup nomount pfile='/home/oracle/orcl_stb.ora';
SQL> startup nomount pfile='/home/oracle/orcl_stb.ora';
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

 

2. RMAN을 이용한 DB 복제

A) RMAN 접속

RMAN 원격 접속
rman TARGET sys/oracle@ORCL AUXILIARY sys/oracle@ORCL_STB
[oracle@orcl ~]$ rman TARGET sys/oracle@ORCL AUXILIARY sys/oracle@ORCL_STB

Recovery Manager: Release 12.2.0.1.0 - Production on Wed Aug 29 13:45:39 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1512310870)
connected to auxiliary database: ORCL (not mounted)

RMAN>

 

B) Duplicate 명령으로 복제

RMAN으로 DB 복제
DUPLICATE TARGET DATABASE
   FOR STANDBY
   FROM ACTIVE DATABASE
   DORECOVER
   SPFILE
     SET db_unique_name='ORCL_STB' COMMENT 'Is standby'
     SET LOG_ARCHIVE_DEST_2='SERVICE=ORCL ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL'
     SET FAL_SERVER='ORCL' COMMENT 'Is primary'
   NOFILENAMECHECK;
RMAN> DUPLICATE TARGET DATABASE
2>    FOR STANDBY
3>    FROM ACTIVE DATABASE
4>    DORECOVER
5>    SPFILE
6>      SET db_unique_name='ORCL_STB' COMMENT 'Is standby'
7>      SET LOG_ARCHIVE_DEST_2='SERVICE=ORCL ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL'
8>      SET FAL_SERVER='ORCL' COMMENT 'Is primary'
9>    NOFILENAMECHECK;

Starting Duplicate Db at 18/08/29
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=36 device type=DISK
current log archived

contents of Memory Script:
{
   backup as copy reuse
   targetfile  '/u01/app/oracle/product/12.2.0/db_1/dbs/orapworcl' auxiliary format
 '/u01/app/oracle/product/12.2.0/db_1/dbs/orapworcl'   ;
   restore clone from service  'ORCL' spfile to
 '/u01/app/oracle/product/12.2.0/db_1/dbs/spfileorcl.ora';
   sql clone "alter system set spfile= ''/u01/app/oracle/product/12.2.0/db_1/dbs/spfileorcl.ora''";
}
executing Memory Script

Starting backup at 18/08/29
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=60 device type=DISK
Finished backup at 18/08/29

Starting restore at 18/08/29
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: restoring SPFILE
output file name=/u01/app/oracle/product/12.2.0/db_1/dbs/spfileorcl.ora
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 18/08/29

sql statement: alter system set spfile= ''/u01/app/oracle/product/12.2.0/db_1/dbs/spfileorcl.ora''

contents of Memory Script:
{
   sql clone "alter system set  db_unique_name =
 ''ORCL_STB'' comment=
 ''Is standby'' scope=spfile";
   sql clone "alter system set  LOG_ARCHIVE_DEST_2 =
 ''SERVICE=ORCL ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL'' comment=
 '''' scope=spfile";
   sql clone "alter system set  FAL_SERVER =
 ''ORCL'' comment=
 ''Is primary'' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
}
executing Memory Script

sql statement: alter system set  db_unique_name =  ''ORCL_STB'' comment= ''Is standby'' scope=spfile

sql statement: alter system set  LOG_ARCHIVE_DEST_2 =  ''SERVICE=ORCL ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL'' comment= '''' scope=spfile

sql statement: alter system set  FAL_SERVER =  ''ORCL'' comment= ''Is primary'' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area     838860800 bytes

Fixed Size                     8798312 bytes
Variable Size                637538200 bytes
Database Buffers             188743680 bytes
Redo Buffers                   3780608 bytes

contents of Memory Script:
{
   restore clone from service  'ORCL' standby controlfile;
}
executing Memory Script

Starting restore at 18/08/29
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=35 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/u01/app/oracle/oradata/orcl/control01.ctl
output file name=/u01/app/oracle/fast_recovery_area/orcl/control02.ctl
Finished restore at 18/08/29

contents of Memory Script:
{
   sql clone 'alter database mount standby database';
}
executing Memory Script

sql statement: alter database mount standby database
RMAN-05538: warning: implicitly using DB_FILE_NAME_CONVERT

contents of Memory Script:
{
   set newname for tempfile  1 to
 "/u01/app/oracle/oradata/orcl/temp01.dbf";
   set newname for tempfile  2 to
 "/u01/app/oracle/oradata/orcl/pdbseed/temp012018-08-19_00-36-23-723-AM.dbf";
   set newname for tempfile  3 to
 "/u01/app/oracle/oradata/orcl/orclpdb/temp01.dbf";
   switch clone tempfile all;
   set newname for datafile  1 to
 "/u01/app/oracle/oradata/orcl/system01.dbf";
   set newname for datafile  3 to
 "/u01/app/oracle/oradata/orcl/sysaux01.dbf";
   set newname for datafile  4 to
 "/u01/app/oracle/oradata/orcl/undotbs01.dbf";
   set newname for datafile  5 to
 "/u01/app/oracle/oradata/orcl/pdbseed/system01.dbf";
   set newname for datafile  6 to
 "/u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf";
   set newname for datafile  7 to
 "/u01/app/oracle/oradata/orcl/users01.dbf";
   set newname for datafile  8 to
 "/u01/app/oracle/oradata/orcl/pdbseed/undotbs01.dbf";
   set newname for datafile  9 to
 "/u01/app/oracle/oradata/orcl/orclpdb/system01.dbf";
   set newname for datafile  10 to
 "/u01/app/oracle/oradata/orcl/orclpdb/sysaux01.dbf";
   set newname for datafile  11 to
 "/u01/app/oracle/oradata/orcl/orclpdb/undotbs01.dbf";
   set newname for datafile  12 to
 "/u01/app/oracle/oradata/orcl/orclpdb/users01.dbf";
   restore
   from  nonsparse   from service
 'ORCL'   clone database
   ;
   sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed tempfile 1 to /u01/app/oracle/oradata/orcl/temp01.dbf in control file
renamed tempfile 2 to /u01/app/oracle/oradata/orcl/pdbseed/temp012018-08-19_00-36-23-723-AM.dbf in control file
renamed tempfile 3 to /u01/app/oracle/oradata/orcl/orclpdb/temp01.dbf in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 18/08/29
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/orcl/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:07
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/orcl/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:07
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/orcl/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/orcl/pdbseed/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:04
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:07
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/orcl/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/orcl/pdbseed/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00009 to /u01/app/oracle/oradata/orcl/orclpdb/system01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00010 to /u01/app/oracle/oradata/orcl/orclpdb/sysaux01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00011 to /u01/app/oracle/oradata/orcl/orclpdb/undotbs01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00012 to /u01/app/oracle/oradata/orcl/orclpdb/users01.dbf
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 18/08/29

sql statement: alter system archive log current
current log archived

contents of Memory Script:
{
   restore clone force from service  'ORCL'
           archivelog from scn  1450238;
   switch clone datafile all;
}
executing Memory Script

Starting restore at 18/08/29
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=5
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=6
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service ORCL
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=7
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 18/08/29

datafile 1 switched to datafile copy
input datafile copy RECID=4 STAMP=985441715 file name=/u01/app/oracle/oradata/orcl/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=5 STAMP=985441715 file name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=6 STAMP=985441715 file name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=7 STAMP=985441715 file name=/u01/app/oracle/oradata/orcl/pdbseed/system01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=8 STAMP=985441715 file name=/u01/app/oracle/oradata/orcl/pdbseed/sysaux01.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=9 STAMP=985441715 file name=/u01/app/oracle/oradata/orcl/users01.dbf
datafile 8 switched to datafile copy
input datafile copy RECID=10 STAMP=985441715 file name=/u01/app/oracle/oradata/orcl/pdbseed/undotbs01.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=11 STAMP=985441715 file name=/u01/app/oracle/oradata/orcl/orclpdb/system01.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=12 STAMP=985441715 file name=/u01/app/oracle/oradata/orcl/orclpdb/sysaux01.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=13 STAMP=985441715 file name=/u01/app/oracle/oradata/orcl/orclpdb/undotbs01.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=14 STAMP=985441715 file name=/u01/app/oracle/oradata/orcl/orclpdb/users01.dbf

contents of Memory Script:
{
   set until scn  1450470;
   recover
   standby
   clone database
    delete archivelog
   ;
}
executing Memory Script

executing command: SET until clause

Starting recover at 18/08/29
using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 5 is already on disk as file /u01/app/oracle/fast_recovery_area/orcl/ORCL_STB/archivelog/2018_08_29/o1_mf_1_5_frd9f07l_.arc
archived log for thread 1 with sequence 6 is already on disk as file /u01/app/oracle/fast_recovery_area/orcl/ORCL_STB/archivelog/2018_08_29/o1_mf_1_6_frd9f1bl_.arc
archived log for thread 1 with sequence 7 is already on disk as file /u01/app/oracle/fast_recovery_area/orcl/ORCL_STB/archivelog/2018_08_29/o1_mf_1_7_frd9f2fs_.arc
archived log file name=/u01/app/oracle/fast_recovery_area/orcl/ORCL_STB/archivelog/2018_08_29/o1_mf_1_5_frd9f07l_.arc thread=1 sequence=5
archived log file name=/u01/app/oracle/fast_recovery_area/orcl/ORCL_STB/archivelog/2018_08_29/o1_mf_1_6_frd9f1bl_.arc thread=1 sequence=6
archived log file name=/u01/app/oracle/fast_recovery_area/orcl/ORCL_STB/archivelog/2018_08_29/o1_mf_1_7_frd9f2fs_.arc thread=1 sequence=7
media recovery complete, elapsed time: 00:00:00
Finished recover at 18/08/29
Finished Duplicate Db at 18/08/29

 

IV. Data Guard Broker 설정

1. Data Guard Broker 활성화

A) dg_broker_start 파라미터 설정

sys 유저로 primary와 standby에서 모두 수행
ALTER SYSTEM SET dg_broker_start=true;
[oracle@orcl ~]$ sqlplus sys/oracle@ORCL as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Wed Aug 29 13:49:32 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> ALTER SYSTEM SET dg_broker_start=true;

System altered.

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
[oracle@orcl ~]$ sqlplus sys/oracle@ORCL_STB as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Wed Aug 29 13:49:52 2018

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> ALTER SYSTEM SET dg_broker_start=true;

System altered.

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 

2. Data Guard Broker 환경 구성

A) DGMGRL 접속

sys 유저로 접속
dgmgrl sys/oracle@ORCL
[oracle@orcl ~]$ dgmgrl sys/oracle@ORCL
DGMGRL for Linux: Release 12.2.0.1.0 - Production on Wed Aug 29 13:50:28 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Welcome to DGMGRL, type "help" for information.
Connected to "ORCL"
Connected as SYSDBA.

 

B) 데이터베이스 등록

Data Guard 대상 데이터베이스 등록
CREATE CONFIGURATION dg_orcl AS PRIMARY DATABASE IS orcl CONNECT IDENTIFIER IS orcl;
ADD DATABASE orcl_stb AS CONNECT IDENTIFIER IS orcl_stb MAINTAINED AS PHYSICAL;
DGMGRL> CREATE CONFIGURATION dg_orcl AS PRIMARY DATABASE IS orcl CONNECT IDENTIFIER IS orcl;
Configuration "dg_orcl" created with primary database "orcl"

DGMGRL> ADD DATABASE orcl_stb AS CONNECT IDENTIFIER IS orcl_stb MAINTAINED AS PHYSICAL;
Database "orcl_stb" added

 

C) Data Guard Broker 설정 활성화

설정 활성화
ENABLE CONFIGURATION;
DGMGRL> ENABLE CONFIGURATION;
Enabled.

 

D) Data Guard Broker 등록 정보 조회

Broker에 등록된 정보 조회
SHOW CONFIGURATION;
SHOW DATABASE orcl;
SHOW DATABASE orcl_stb;
DGMGRL> SHOW CONFIGURATION;

Configuration - dg_orcl

  Protection Mode: MaxPerformance
  Members:
  orcl     - Primary database
    orcl_stb - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 57 seconds ago)

DGMGRL> SHOW DATABASE orcl;

Database - orcl

  Role:               PRIMARY
  Intended State:     TRANSPORT-ON
  Instance(s):
    orcl

Database Status:
SUCCESS

DGMGRL> SHOW DATABASE orcl_stb;

Database - orcl_stb

  Role:               PHYSICAL STANDBY
  Intended State:     APPLY-ON
  Transport Lag:      0 seconds (computed 1 second ago)
  Apply Lag:          0 seconds (computed 1 second ago)
  Average Apply Rate: 3.00 KByte/s
  Real Time Query:    OFF
  Instance(s):
    orcl

Database Status:
SUCCESS

 

E) 문제 발생시 Standby 데이터베이스 재기동(옵션)

sys 유저로 standby에서 수행
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;

SHOW CONFIGURATION에서 오류 확인

DGMGRL> SHOW CONFIGURATION;

Configuration - dg_orcl

  Protection Mode: MaxPerformance
  Members:
  orcl     - Primary database
    orcl_stb - Physical standby database
      Error: ORA-16810: multiple errors or warnings detected for the member

Fast-Start Failover: DISABLED

Configuration Status:
ERROR   (status updated 38 seconds ago)

Standby 데이터베이스 재기동

SQL> shutdown immediate;
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area  838860800 bytes
Fixed Size                  8798312 bytes
Variable Size             637538200 bytes
Database Buffers          188743680 bytes
Redo Buffers                3780608 bytes
Database mounted.

SQL>

정상 확인

DGMGRL> SHOW CONFIGURATION;

Configuration - dg_orcl

  Protection Mode: MaxPerformance
  Members:
  orcl     - Primary database
    orcl_stb - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 57 seconds ago)

 

V. Switchover

1. Standby로 switchover

A) Primary에 DGMGRL로 접속

DGMGRL로 primary DB에 접속
dgmgrl sys/oracle@ORCL
[oracle@orcl ~]$ dgmgrl sys/oracle@ORCL
DGMGRL for Linux: Release 12.2.0.1.0 - Production on Wed Aug 29 13:58:31 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Welcome to DGMGRL, type "help" for information.
Connected to "ORCL"
Connected as SYSDBA.

 

B) Standby로 switchover

Standby로 switchover 수행
SWITCHOVER TO orcl_stb;
DGMGRL> SWITCHOVER TO orcl_stb;
Performing switchover NOW, please wait...
Operation requires a connection to database "orcl_stb"
Connecting ...
Connected to "ORCL_STB"
Connected as SYSDBA.
New primary database "orcl_stb" is opening...
Operation requires start up of instance "orcl" on database "orcl"
Starting instance "orcl"...
ORACLE instance started.
Database mounted.
Connected to "ORCL"
Switchover succeeded, new primary is "orcl_stb"

 

C) Switchover 결과 확인

Switchover 결과 확인
SHOW CONFIGURATION;
SHOW DATABASE orcl;
SHOW DATABASE orcl_stb;
DGMGRL> SHOW CONFIGURATION;

Configuration - dg_orcl

  Protection Mode: MaxPerformance
  Members:
  orcl_stb - Primary database
    orcl     - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 45 seconds ago)
 
DGMGRL> SHOW DATABASE orcl;

Database - orcl

  Role:               PHYSICAL STANDBY
  Intended State:     APPLY-ON
  Transport Lag:      0 seconds (computed 1 second ago)
  Apply Lag:          0 seconds (computed 1 second ago)
  Average Apply Rate: 211.00 KByte/s
  Real Time Query:    OFF
  Instance(s):
    orcl

Database Status:
SUCCESS

DGMGRL> SHOW DATABASE orcl_stb;

Database - orcl_stb

  Role:               PRIMARY
  Intended State:     TRANSPORT-ON
  Instance(s):
    orcl

Database Status:
SUCCESS

 

2. Primary로 복원

A) Standby에 DGMGRL로 접속

DGMGRL로 standby DB에 접속
dgmgrl sys/oracle@ORCL_STB
[oracle@orcl ~]$ dgmgrl sys/oracle@ORCL_STB
DGMGRL for Linux: Release 12.2.0.1.0 - Production on Wed Aug 29 14:00:56 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Welcome to DGMGRL, type "help" for information.
Connected to "ORCL_STB"
Connected as SYSDBA.

 

B) Primary로 switchover

Primary로 switchover 수행
SWITCHOVER TO orcl;
DGMGRL> SWITCHOVER TO orcl;
Performing switchover NOW, please wait...
Operation requires a connection to database "orcl"
Connecting ...
Connected to "ORCL"
Connected as SYSDBA.
New primary database "orcl" is opening...
Operation requires start up of instance "orcl" on database "orcl_stb"
Starting instance "orcl"...
ORACLE instance started.
Database mounted.
Connected to "ORCL_STB"
Switchover succeeded, new primary is "orcl"

 

C) 복원 결과 확인

복원 결과 확인
SHOW CONFIGURATION;
SHOW DATABASE orcl;
SHOW DATABASE orcl_stb;
DGMGRL> SHOW CONFIGURATION;

Configuration - dg_orcl

  Protection Mode: MaxPerformance
  Members:
  orcl     - Primary database
    orcl_stb - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 54 seconds ago)

DGMGRL> SHOW DATABASE orcl;

Database - orcl

  Role:               PRIMARY
  Intended State:     TRANSPORT-ON
  Instance(s):
    orcl

Database Status:
SUCCESS

DGMGRL> SHOW DATABASE orcl_stb;

Database - orcl_stb

  Role:               PHYSICAL STANDBY
  Intended State:     APPLY-ON
  Transport Lag:      0 seconds (computed 1 second ago)
  Apply Lag:          0 seconds (computed 1 second ago)
  Average Apply Rate: 124.00 KByte/s
  Real Time Query:    OFF
  Instance(s):
    orcl

Database Status:
SUCCESS

 

VI. Failover

1. Failover 수행

A) DGMGRL로 Standby DB 접속

DGMGRL로 standby DB에 접속
dgmgrl sys/oracle@orcl_stb
[oracle@orcl ~]$ dgmgrl sys/oracle@orcl_stb
DGMGRL for Linux: Release 12.2.0.1.0 - Production on Wed Aug 29 16:19:22 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Welcome to DGMGRL, type "help" for information.
Connected to "ORCL_STB"
Connected as SYSDBA.
DGMGRL> 

 

B) Standby로 failover 수행

Standby로 failover 수행
FAILOVER TO orcl_stb;
DGMGRL> FAILOVER TO orcl_stb;
Performing failover NOW, please wait...
Failover succeeded, new primary is "orcl_stb"

 

C) Failover 결과 확인

Failover 후 상태 확인
SHOW CONFIGURATION;
SHOW DATABASE orcl_stb;
SHOW DATABASE orcl;
DGMGRL> SHOW CONFIGURATION;

Configuration - dg_orcl

  Protection Mode: MaxPerformance
  Members:
  orcl_stb - Primary database
    orcl     - Physical standby database (disabled)
      ORA-16661: the standby database needs to be reinstated

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 6 seconds ago)

DGMGRL> SHOW DATABASE orcl_stb;

Database - orcl_stb

  Role:               PRIMARY
  Intended State:     TRANSPORT-ON
  Instance(s):
    orcl

Database Status:
SUCCESS

DGMGRL> SHOW DATABASE orcl;

Database - orcl

  Role:               PHYSICAL STANDBY
  Intended State:     APPLY-ON
  Transport Lag:      (unknown)
  Apply Lag:          (unknown)
  Average Apply Rate: (unknown)
  Real Time Query:    OFF
  Instance(s):
    orcl

Database Status:
ORA-16661: the standby database needs to be reinstated

 

2. Primary 데이터베이스 reinstate하기

A) Reinstate 수행

Primary DB의 Reinstate 수행
REINSTATE DATABASE orcl;
DGMGRL> REINSTATE DATABASE orcl;
Reinstating database "orcl", please wait...
Operation requires shut down of instance "orcl" on database "orcl"
Shutting down instance "orcl"...
Connected to "ORCL"
ORACLE instance shut down.
Operation requires start up of instance "orcl" on database "orcl"
Starting instance "orcl"...
ORACLE instance started.
Database mounted.
Connected to "ORCL"
Continuing to reinstate database "orcl" ...
Reinstatement of database "orcl" succeeded

 

B) Reinstate 결과 확인

Reinstate 후 상태 확인
SHOW CONFIGURATION;
SHOW DATABASE orcl;
DGMGRL> SHOW CONFIGURATION;

Configuration - dg_orcl

  Protection Mode: MaxPerformance
  Members:
  orcl_stb - Primary database
    orcl     - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 6 seconds ago)

DGMGRL> SHOW DATABASE orcl;

Database - orcl

  Role:               PHYSICAL STANDBY
  Intended State:     APPLY-ON
  Transport Lag:      0 seconds (computed 1 second ago)
  Apply Lag:          0 seconds (computed 1 second ago)
  Average Apply Rate: 295.00 KByte/s
  Real Time Query:    OFF
  Instance(s):
    orcl

Database Status:
SUCCESS

 

3. Primary로 복원

A) Primary로 switchover

Primary로 switchover 수행
SWITCHOVER TO orcl;
DGMGRL> SWITCHOVER TO orcl;
Performing switchover NOW, please wait...
Operation requires a connection to database "orcl"
Connecting ...
Connected to "ORCL"
Connected as SYSDBA.
New primary database "orcl" is opening...
Operation requires start up of instance "orcl" on database "orcl_stb"
Starting instance "orcl"...
ORACLE instance started.
Database mounted.
Connected to "ORCL_STB"
Switchover succeeded, new primary is "orcl"

 

B) Switchover 결과 확인

Switchover 결과 확인
SHOW CONFIGURATION;
SHOW DATABASE orcl;
SHOW DATABASE orcl_stb;
DGMGRL> SHOW CONFIGURATION;

Configuration - dg_orcl

  Protection Mode: MaxPerformance
  Members:
  orcl     - Primary database
    orcl_stb - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
SUCCESS   (status updated 49 seconds ago)

DGMGRL> SHOW DATABASE orcl;

Database - orcl

  Role:               PRIMARY
  Intended State:     TRANSPORT-ON
  Instance(s):
    orcl

Database Status:
SUCCESS

DGMGRL> SHOW DATABASE orcl_stb;

Database - orcl_stb

  Role:               PHYSICAL STANDBY
  Intended State:     APPLY-ON
  Transport Lag:      0 seconds (computed 0 seconds ago)
  Apply Lag:          0 seconds (computed 0 seconds ago)
  Average Apply Rate: 15.00 KByte/s
  Real Time Query:    OFF
  Instance(s):
    orcl

Database Status:
SUCCESS

 

  • 레이블 없음