🧭 전체 로드맵 (끝까지 이 순서대로)
1️⃣ VirtualBox 설치
2️⃣ VirtualBox 네트워크 구성
3️⃣ Oracle Linux VM 2대 생성
4️⃣ OS 기본 설정
5️⃣ Oracle 19c 설치 (Primary)
6️⃣ ARCHIVELOG / FORCE LOGGING
7️⃣ Standby 준비
8️⃣ RMAN DUPLICATE
9️⃣ Data Guard 동작 확인
🔟 Switchover / Failover 테스트
1~7번 단계는 이전 글에서 이미 진행했으므로, 진행하지 않았다면 먼저 이전 글을 참고해 주세요.
[Oracle] Oracle Data Guard 설치(2)
🧭 전체 로드맵 (끝까지 이 순서대로)1️⃣ VirtualBox 설치2️⃣ VirtualBox 네트워크 구성3️⃣ Oracle Linux VM 2대 생성4️⃣ OS 기본 설정5️⃣ Oracle 19c 설치 (Primary)6️⃣ ARCHIVELOG / FORCE LOGGING7️⃣ Standby
gwon-s.tistory.com
1️⃣ Primary DB에서 Data Guard 필수 파라미터 설정
🔹 Primary에서 SYS 접속
sqlplus / as sysdba
✔ Data Guard 구성 선언
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGPRI,DGSTBY)' SCOPE=BOTH;
✔ Standby로 redo 보내는 경로
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2= 'SERVICE=DGDB_STBY ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DGSTBY' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1= 'LOCATION=/u01/app/oracle/fast_recovery_area VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=DGPRI' SCOPE=BOTH;
✔ 자동 파일 관리
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SCOPE=BOTH;
✔ 강제 로그 (이미 했다면 OK)
ALTER DATABASE FORCE LOGGING;
2️⃣ Primary에서 Password File 복사 (중요)
Data Guard는 SYS 인증이 필요함.
Primary에서
cd $ORACLE_HOME/dbs scp orapwDGDB oracle@standby:$ORACLE_HOME/dbs/
3️⃣ 네트워크 사전 테스트 (꼭 해라)
Primary에서
tnsping DGDB_STBY
Standby에서:
tnsping DGDB_PRI
👉 OK 안 뜨면 RMAN 100% 실패
4️⃣ RMAN DUPLICATE 실행 (핵심)
🔹 Primary 서버에서 oracle 계정
rman target sys/[패스워드]@DGDB_PRI auxiliary sys/[패스워드]@DGDB_STBY
(패스워드는 SYS 비밀번호)
🔥 RMAN DUPLICATE 명령 (그대로 복붙)
DUPLICATE TARGET DATABASE
FOR STANDBY
FROM ACTIVE DATABASE
DORECOVER
SPFILE
SET db_unique_name='DGSTBY'
SET audit_file_dest='/u01/app/oracle/admin/DGSTBY/adump'
SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGPRI,DGSTBY)'
SET LOG_ARCHIVE_DEST_2=
'SERVICE=DGDB_PRI ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DGPRI'
SET FAL_SERVER='DGDB_PRI'
SET FAL_CLIENT='DGDB_STBY'
NOFILENAMECHECK;
🧠 이 명령이 하는 일 (아주 중요)
- FROM ACTIVE DATABASE
→ 백업 파일 없이 네트워크로 바로 복제 - FOR STANDBY
→ Standby 컨트롤파일 자동 생성 - DORECOVER
→ 복제 후 바로 redo apply - SPFILE
→ Standby용 spfile 자동 생성 - NOFILENAMECHECK
→ 같은 서버/경로라도 허용 (로컬 VM 필수)
👉 이 한 번으로 Standby DB가 자동 생성됨
5️⃣ 성공 시 확인할 로그
마지막에 이런 메시지 나오면 성공:
Finished Duplicate Db at ...
Standby 서버에서
sqlplus / as sysdba
SELECT name, open_mode, database_role FROM v$database;
정상 결과
DGDB | MOUNTED | PHYSICAL STANDBY
6️⃣ Redo Apply 적용 및 확인
Standby에서
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE
USING CURRENT LOGFILE
DISCONNECT FROM SESSION;
SELECT process, status FROM v$managed_standby;
MRP0 가 APPLYING_LOG 상태면 완벽
추가 검증을 하고 싶다면 아래 글을 참고해주세요.
[Oracle] Data Guard 반영 검증(Primary → Standby)
✅ 시나리오Primary에서 트랜잭션 발생 → Redo 전송 → Standby에서 APPLY → 조회로 반영 확인 0️⃣ 전제 조건 (지금 상태)Standby: READ ONLY + APPLYv$managed_standby에 MRP0, APPLYING_LOG 또는 WAIT_FOR_LOG 보이는 상
gwon-s.tistory.com