Data Guard 배포 검사
Data Guard 브로커를 설정한 후에는 재실행이 기본 데이터베이스에서 복사되고 대기 데이터베이스에 적용되었는지 확인해야 합니다. 다음 절차를 사용하여 기본 및 대기 데이터베이스 내에서 데이터 가드 상태를 확인할 수 있습니다.
이 가이드 전체에서 사용되는 예시는 다음과 같습니다.
데이터베이스 고유 이름 | 서버 호스트 이름 | RAC 인스턴스 이름 | 역할 |
---|---|---|---|
DBDG_SITE1 | site1db1, site1db2 | DBDG_SITE11, DBDG_SITE12 | 기본 |
DBDG_SITE2 | site2db1, site2db2 | DBDG_SITE21, DBDG_SITE22 | 대기 |
Data Guard 배포 검사
기본 데이터베이스를 호스팅하는 첫 번째 베어메탈 솔루션 서버에 로그인하고 기본 데이터베이스에 연결할 수 있도록
ORACLE_SID
환경 변수를 설정합니다.source oraenv <<< "DBDG_SITE11"
SQL*Plus를 시작한 후 보관처리된 재실행 로그의 최신 시퀀스 넘버를 확인합니다.
sqlplus / as sysdba
SELECT THREAD#, max(SEQUENCE#) "Last Primary Seq Archived" FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# = VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;
다음 출력은 스레드 1의 최대 시퀀스 넘버 40과 스레드 2의 최대 시퀀스 넘버는 33입니다.
THREAD# Last Primary Seq Archived ---------- ------------------------- 1 40 2 33
대기 데이터베이스와 비교할 결과를 기록합니다. 대기 데이터베이스의 시퀀스 넘버는 기본 데이터베이스와 일치해야 합니다.
대기 데이터베이스를 호스팅하는 첫 번째 베어메탈 솔루션 서버에 로그인하고 대기 데이터베이스에 연결할 수 있도록
ORACLE_SID
환경 변수를 설정합니다.source oraenv <<< "DBDG_SITE21"
SQL*Plus를 시작한 후 보관처리된 재실행 로그에 대해 수신되고 적용된 최신 시퀀스 넘버가 기본 데이터베이스의 최신 시퀀스 넘버와 일치하는지 확인합니다.
sqlplus / as sysdba
SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Received" FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# = VDB.RESETLOGS_CHANGE# GROUP BY THREAD# ORDER BY 1;
SELECT THREAD#, max(SEQUENCE#) "Last Standby Seq Applied" FROM V$ARCHIVED_LOG VAL, V$DATABASE VDB WHERE VAL.RESETLOGS_CHANGE# = VDB.RESETLOGS_CHANGE# AND VAL.APPLIED IN ('YES','IN-MEMORY') GROUP BY THREAD# ORDER BY 1;
다음 출력은 대기 데이터베이스에 대해 이전 쿼리 실행과 일치하는 시퀀스 넘버를 보여줍니다.
THREAD# Last Standby Seq Received ---------- ------------------------- 1 40 2 33
THREAD# Last Standby Seq Applied ---------- ------------------------ 1 40 2 33
관리형 복구 프로세스의 상태가
APPLYING_LOG
인지 확인합니다.SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE '%MRP%';
다음 예시에서는 상태가
APPLYING_LOG
인MRP0
이라는 단일 관리형 복구 프로세스를 보여줍니다.PROCESS STATUS --------- ------------ MRP0 APPLYING_LOG
대기 데이터베이스에서 전송 또는 적용 지연이 있는지 확인합니다.
COLUMN NAME FORMAT a20 COLUMN VALUE FORMAT a30 SELECT NAME, VALUE FROM V$DATAGUARD_STATS WHERE NAME LIKE '%lag%';
다음 출력은 대기 데이터베이스에 지연 시간이 없음을 보여줍니다.
NAME VALUE -------------------- ------------------------------ transport lag +00 00:00:00 apply lag +00 00:00:00
지연이 발생하는 경우 Oracle의 Data Guard 문제 해결 문서를 참조하세요.
Data Guard 브로커를 사용하여 데이터베이스 전환
전환은 기본 데이터베이스가 대기 데이터베이스가 되는 역할 역전입니다. 전환 프로세스 중에 데이터베이스 클라이언트가 기본 데이터베이스에서 연결 해제됩니다. 애플리케이션이 데이터베이스에 연결하는 방법에 따라, 전환이 애플리케이션 트래픽을 방해할 수 있습니다. Oracle은 역할 전환 중에 애플리케이션 연속성을 유지하는 옵션을 제공합니다. 다음 안내에 따라 데이터베이스 전환을 수행하여 재해 복구 준비 상태를 테스트할 수 있습니다.
기본 데이터베이스를 호스팅하는 베어메탈 솔루션 서버에 로그인합니다.
Data Guard 명령줄 인터페이스를 시작하고 대기 데이터베이스에 연결합니다.
dgmgrl
CONNECT SYS@DBDG_SITE2
비밀번호를 입력하라는 메시지가 표시되면 데이터베이스의 SYS 원격 로그인 비밀번호를 입력합니다.
데이터베이스가 전환할 준비가 되었는지 확인합니다.
VALIDATE DATABASE DBDG_SITE2;
성공하면 데이터베이스를 전환할 준비가 되었다고 보고됩니다.
성공하면 다음과 같은 전환 명령어를 수행합니다.
SWITCHOVER TO DBDG_SITE2;
명령어가 성공하면
DBDG_SITE2
가 구성의 새 기본 데이터베이스라는 메시지가 표시됩니다.다음 명령어를 실행하여 데이터베이스 역할이 전환되었는지 확인합니다.
SHOW CONFIGURATION;
다음 명령어를 실행하여 원래 구성으로 돌아갑니다.
SWITCHOVER TO DBDG_SITE1;
Data Guard 브로커를 사용한 데이터베이스 장애 조치
장애 조치는 전체 데이터베이스 중단으로 인해 대기 데이터베이스 중 하나가 기본 역할로 이동하는 역할 전환입니다. 대기 데이터베이스가 복구될 때까지 Redo는 대기 데이터베이스로 배송되지 않습니다.
장애 조치 수행
대기 데이터베이스를 호스팅하는 첫 번째 베어메탈 솔루션 서버에 로그인합니다.
Data Guard 명령줄 인터페이스에 연결한 후 기본 데이터베이스를 대기 데이터베이스로 장애 조치합니다.
dgmgrl
CONNECT SYS@DBDG_SITE2
비밀번호를 입력하라는 메시지가 표시되면 데이터베이스의 SYS 원격 로그인 비밀번호를 입력합니다.
다음 명령어를 통해 장애 조치를 시작합니다.
FAILOVER TO DBDG_SITE2
show configuration;
를 실행하여 이제DBDG_SITE2
가 현재 기본 데이터베이스이며DBDG_SITE1
를 복구해야 하는지 확인합니다.
기본 데이터베이스 복구
flashback database
가 사용 설정된 경우에만 장애 조치 후 기본 데이터베이스를 복구할 수 있습니다. 장애가 발생한 기본 데이터베이스를 복구하려면 다음 안내를 따르세요.
기본 데이터베이스를 호스팅하는 첫 번째 베어메탈 솔루션 서버에 로그인합니다.
Data Guard 명령줄 인터페이스에 연결하고 기본 데이터베이스에 로그인한 후 장애가 발생한 데이터베이스를 복구합니다.
dgmgrl
CONNECT SYS@DBDG_SITE2
비밀번호를 입력하라는 메시지가 표시되면 데이터베이스의 SYS 원격 로그인 비밀번호를 입력합니다.
데이터베이스를 복구합니다.
REINSTATE DATABASE DBDG_SITE1; EXIT;
다음 단계
다음으로 Compute Engine에서 Data Guard 관찰자를 설정합니다.