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/11.2.0/db_1) (SID_NAME = orcl) ) (SID_DESC = (GLOBAL_DBNAME = ORCL_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = orcl) ) ) ADR_BASE_LISTENER = /u01/app/oracle |
Data Guard Broker를 사용한다면 static listener인 DGMGRL을 별도로 등록해줍니다.
서비스를 등록하지 않을 경우, DGMGRL에서 데이터베이스를 재기동하거나 switchover하는 과정에 서비스를 찾지 못해 실패하게 됩니다.
(SID_DESC = (GLOBAL_DBNAME = ORCL_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = orcl) ) |
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/11.2.0/db_1) (SID_NAME = orcl) ) (SID_DESC = (GLOBAL_DBNAME = ORCL_STB_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = orcl) ) ) ADR_BASE_LISTENER = /u01/app/oracle |
Standby 리스너도 마찬가지로 DGMGRL 를 추가합니다.
(SID_DESC = (GLOBAL_DBNAME = ORCL_STB_DGMGRL) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = orcl) ) |
ALTER SYSTEM SET dg_broker_start=true; |
|
Primary와 Standby 양쪽에 dg_broker_start를 true로 변경하여, Data Guard Broker를 기동시킵니다.
dgmgrl sys/oracle@orcl |
|
원격 접속이 구성된 환경에서 오라클 클라이언트를 통해 DGMGRL에 접속할 수 있습니다.
원격 접속에서 password file 파일을 사용할 수 있도록 암호를 입력하는 방식으로 접속합니다.
CREATE CONFIGURATION orcl_dg AS PRIMARY DATABASE IS orcl CONNECT IDENTIFIER IS orcl; ADD DATABASE orcl_stb AS CONNECT IDENTIFIER IS orcl_stb MAINTAINED AS PHYSICAL; |
|
Primary 데이터베이스와 standby 데이터베이스를 Broker에 등록합니다.
ENABLE CONFIGURATION; |
|
등록된 설정값을 갖고 Data Guard Broker를 활성화합니다.
SHOW CONFIGURATION; SHOW DATABASE orcl; SHOW DATABASE orcl_stb; |
|
Data Guard Broker에 등록된 내용을 SHOW 명령어로 조회할 수 있습니다.
SWITCHOVER TO orcl_stb; |
|
Switchover 명령어를 이용하면 standby로 서비스를 switch over할 수 있습니다.
Primary로 원복을 하려면 다음의 명령어를 입력하면 됩니다.
SWITCHOVER TO orcl; |
FAILOVER TO orcl_stb; |
|
Standby로 failover를 수행합니다.
가급적 standby로 접속하여 명령을 수행합니다.
SHOW DATABASE orcl_stb; SHOW CONFIGURATION; |
|
Failover가 정상적으로 완료되었는지 확인합니다.
기존의 Primary는 disabled로 복구가 필요한 상태입니다.
REINSTATE DATABASE orcl; |
|
Flashback Database가 활성화 되어 있었다면, reinstate 명령어로 간단하게 복구할 수 있습니다.
SHOW CONFIGURATION; SHOW DATABASE orcl; |
|
정상적으로 reinstate가 되었는지 확인합니다.
다시 primary로 전환하려면 switchover를 수행하면 됩니다.