본문 바로가기
🗄️ DB_이야기/# 🛢️ Oracle

[Oracle] Oracle Data Guard 설치(2)

by gwon_s 2025. 12. 22.

🧭 전체 로드맵 (끝까지 이 순서대로)

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~6번 단계는 이전 글에서 이미 진행했으므로, 진행하지 않았다면 먼저 이전 글을 참고해 주세요.

 

[Oracle] Oracle Data Guard 설치(1)

🧭 전체 로드맵 (끝까지 이 순서대로)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️⃣ Standby 서버 기본 준비 (oracle 계정 기준)

Primary와 완전히 동일해야 한다.

root계정으로 진행
groupadd oinstall 
groupadd dba 
useradd -g oinstall -G dba oracle 
passwd oracle
 
환경변수 설정
vi ~/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1
export ORACLE_SID=DGDB
export PATH=$ORACLE_HOME/bin:$PATH​

 

적용

source ~/.bash_profile​

 

확인

echo $ORACLE_BASE
echo $ORACLE_HOME
echo $ORACLE_SID

 


2️⃣ 디렉토리 구조 생성 (중요)

Primary와 경로가 다르면 RMAN 실패한다.

root 계정에서 실행
mkdir -p /u01/app/oracle/product/19c/dbhome_1
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oracle/fast_recovery_area
chown -R oracle:oinstall /u01
chmod -R 775 /u01

 


3️⃣ Oracle 설치 파일 준비 (Standby)

Primary에서 사용한 동일한 19c 설치 파일을 사용해야 함.

Standby로 복사 (Primary에서):

scp LINUX.X64_193000_db_home.zip oracle@192.168.56.102:/home/oracle
 

 


4️⃣ Oracle Software 설치 (Standby) ⚠️ DB 생성 아님

oracle 계정으로 로그인:

su - oracle

 

👇 아래 더보기를 눌러서 설치 진행

더보기

response 파일 수정(Primary)

cd $ORACLE_HOME/install/response
vi db_install.rsp

 

🔧 아래 항목들만 꼭 확인/수정

oracle.install.option=INSTALL_DB_SWONLY

UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory

ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1
ORACLE_BASE=/u01/app/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba

# 아래 옵션이 없을땐 작성
DECLINE_SECURITY_UPDATES=true

 

Silent 설치 실행 (Primary) 

cd $ORACLE_HOME
./runInstaller -silent -responseFile $ORACLE_HOME/install/response/db_install.rsp \
-ignorePrereqFailure

 

root 스크립트 실행 (중요)

root 계정으로 스크립트 실행

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19c/dbhome_1/root.sh

 

설치 완료 확인 (Primary) 

sqlplus -v

버전 나오면 설치 완료

 

설치 끝나면 root 스크립트 실행

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19c/dbhome_1/root.sh

 

 
 

5️⃣ Listener 설정 (Primary, Standby)

listener.ora 생성

 
vi $ORACLE_HOME/network/admin/listener.ora

 

Primary는 HOST=Primary로 설정

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = primary)(PORT = 1521))
  )

 

Standby는 HOST=standby로 설정

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521))
  )

 

tnsnames.ora (Primary, Standby)

vi $ORACLE_HOME/network/admin/tnsnames.ora

 

tnsnames.ora 설정은 둘 다 동일하게

DGDB_PRI =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = primary)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = DGDB)
    )
  )

DGDB_STBY =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = DGDB)
    )
  )

 

Listener 기동

lsnrctl start
lsnrctl status

6️⃣ 초기 파라미터 파일 준비 (Standby, Primary)

vi $ORACLE_HOME/dbs/initDGDB.ora
Standby, Primary는 DB_UNIQUE_NAME만 다르다
db_name=DGDB
db_unique_name=[DGSTBY|DGPRI]
control_files='/u01/app/oracle/oradata/DGSTBY/control01.ctl'
db_file_name_convert='/u01/app/oracle/oradata/DGPRI','/u01/app/oracle/oradata/DGSTBY'
log_file_name_convert='/u01/app/oracle/oradata/DGPRI','/u01/app/oracle/oradata/DGSTBY'
fal_server=DGDB_PRI
fal_client=DGDB_STBY
standby_file_management=AUTO

7️⃣ Standby 인스턴스 NOMOUNT 기동

 
export ORACLE_SID=DGDB
sqlplus / as sysdba
STARTUP NOMOUNT;

👉 여기까지 문제 없으면 Standby 준비 100% 완료

 

🔥 다음 단계 (진짜 핵심)

이제 다음에 할 것:

➡️ Primary에서 RMAN DUPLICATE FROM ACTIVE DATABASE
➡️ Standby DB 자동 생성
➡️ Redo Apply 확인
➡️ Data Guard Broker 구성