이 페이지의 이전 버전을 보고 있습니다. 현재 버전 보기.

현재와 비교 페이지 이력 보기

« 이전 버전 7 다음 »


I. 개요

1. 사용 Software

제품명버전아키텍쳐배포 사이트
VirtualBox6.0.x호스트 환경에 따름https://www.virtualbox.org
Oracle Enterprise Linux7 (Update 4 이상 권장)x86 64bit

https://edelivery.oracle.com/linux

Database19.3x86 64bithttp://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

Oracle Database 19.3은 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 에서 받을 수 있습니다.

2. 구성 계획

A) 서버

VMHost NameMemoryNet Adapter구성 방법비고
Primaryora-act2GB브리지 어댑터리눅스 설치DB 엔진 설치 및 DB 생성 완료
Standbyora-stb2GB브리지 어댑터Primary 복제DB 엔진만 설치 (또는 Primary에 엔진 설치 후 복제하여 사용)

리눅스 기반의 Active-Standby 환경으로 구성합니다.

B) 스토리지

파일 이름용량타입용도비고
ora-act.vdi50GBDynamic / NormalPrimary 노드 스토리지디스크 사용량을 최소화하기 위해 Dynamic으로 생성합니다.
ora-stb.vdi50GBDynamic / NormalStandby 노드 스토리지vboxmanage clonemedium을 이용하여 primary 노드의 파일을 복제합니다.

Primary 노드에 DB 소프트웨어 설치까지 완료한 후 VDI를 복제하여 standby로 사용하면 구축 시간을 절약할 수 있습니다.

복제가 완료된 후에 Primary에만 데이터베이스를 생성하기 바랍니다.

C) 네트워크

VMPublic IPNetmaskGatewayDNS Server
Primary10.0.1.50255.255.255.010.0.1.1127.0.0.1
Standby10.0.1.60255.255.255.010.0.1.1127.0.0.1

인터넷 공유기 또는 Gateway의 IP에 맞춰 설정하기 바랍니다.

3. 호스트 환경

A) 시스템

12c부터는 64비트의 운영체제만을 지원하므로, 호스트 장비 또한 64비트 운영체제를 사용하여 구축해야 합니다.

메모리는 오라클의 권고에 따라 VM 노드당 2GB 이상이 필요하므로, 가능하면 8GB 이상의 메모리가 장착된 환경에서 작업하는 것을 권합니다.

B) 스토리지

디스크 I/O에 의한 지연을 최소화하기 위해 호스트의 OS가 설치되지 않은 별도의 내장 디스크를 사용하거나 SSD의 사용을 권합니다.

ESATA 또는 USB 3.0 이상의 빠른 속도를 보장하는 외장 디스크를 사용하는 것도 방법일 수 있습니다만 지속적인 연결이 보장되어야 합니다.

4. 서버 및 오라클 구축

19c 데이터베이스 설치 가이드(https://dataforum.io/x/2wEo)를 참고하여 서버 및 데이터베이스를 구축하기 바랍니다

II. Network 설정

1. 공통 설정

A) 서버 정보 hosts 파일에 입력

vi /etc/hosts
10.10.1.50     ora_act
10.10.1.60     ora_stb

Primary와 Standby 서버의 hosts 파일에 서버의 IP와 호스트명을 입력합니다.

IP를 사용하지 않고 등록된 서버 정보로 접속을 하기 위한 작업입니다.

2. Primary 노드 설정

A) Net manager로 Primary 리스너 수정

Primary 노드에서 oracle 유저로 수행
netmgr

Net Manager를 실행하여 static listener를 설정합니다.

직접 listener.ora 파일을 수정해도 됩니다.

Net Manger 화면에서 Oracle Net 구성의 로컬 부분을 클릭하여 확장합니다.

Primary는 데이터베이스 생성시에 listener가 이미 설정되어 있을 수 있습니다.

중앙 상단의 '수신 위치'를 '데이터베이스 서비스'로 변경해줍니다.

아래 버튼에서 <데이터베이스 추가> 버튼을 클릭합니다.

데이터베이스1 항목에 다음과 같이 정보를 입력합니다.

  • 전역 데이터베이스 이름 : orcl (서비스 명)
  • Oracle 홈 디렉토리 : (ORACLE_HOME으로 지정된 경로)
  • SID : orcl (데이터베이스의 SID)

<데이터베이스 추가> 버튼을 클릭하여 데이터베이스2를 추가한 후 다음과 같이 입력합니다.

  • 전역 데이터베이스 이름 : orcl_DGB (서비스 명_DGB)
  • Oracle 홈 디렉토리 : (ORACLE_HOME으로 지정된 경로)
  • SID : orcl (데이터베이스의 SID)

<데이터베이스 추가> 버튼을 클릭하여 데이터베이스3를 추가한 후 다음과 같이 입력합니다.

  • 전역 데이터베이스 이름 : orcl_DGMGRL (서비스 명_DGMGRL)
  • Oracle 홈 디렉토리 : (ORACLE_HOME으로 지정된 경로)
  • SID : orcl (데이터베이스의 SID)

Listener 설정이 모두 완료되었으면, 좌측 상단에 '파일' > '네트워크 구성 저장'을 클릭하여 작업한 내용을 저장합니다.

저장을 하게 되면 listener.ora 파일에 변경된 내용이 반영됩니다.

B) Primary 노드의 listener.ora 파일

vi $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl_DGB)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
      (SID_NAME = ORCL)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-act)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle
[oracle@orcl ~]$ cat $ORACLE_HOME/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/19.3.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl_DGB)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
      (SID_NAME = ORCL)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-act)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

Net Manager를 사용하지 않고 listener.ora 파일을 수정하여 직접 리스너 정보를 변경할 수 있습니다.

수동으로 리스너 설정을 변경하였다면, 리스너를 재기동하여 변경된 내용이 반영되도록 합니다.

C) Primary 리스너 시작

Primary 노드의 listener 시작
lsnrctl start
[oracle@orcl ~]$ lsnrctl start

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-JUL-2019 15:46:36

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

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

TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /u01/app/oracle/product/19.3.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 19.0.0.0.0 - Production
Start Date                15-JUL-2019 15:46:36
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/19.3.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

Primary 노드의 리스너가 중지되어 있다면 lsnrctl 명령어로 시작해줍니다.

리스너가 이미 시작된 상태라면 생략하고 다음 단계로 진행해도 좋습니다.

D) Primary 노드에서 Net manager로 Standby 서비스 이름 지정

Oracle Net 구성의 로컬에서 서비스 이름 지정 부분을 클릭하여 확장합니다.

Primary는 데이터베이스 생성시에 기본 접속 정보가 이미 등록되어 있을 수 있습니다.

Standby 서버의 접속 정보를 추가하려면 '서비스 이름 지정'이나 그 하위의 레벨을 선택하고, 좌측 상단에 + 모양의 생성 버튼을 클릭합니다.

네트 서비스 이름을 아래와 같이 입력하고 <다음> 버튼을 클릭합니다.

  • 네트 서비스 이름 : orcl_stb (Standby의 서비스 명으로 사용)

프로토콜은 기본값인 'TCP/IP(인터넷 프로토콜)'을 선택한 상태로 <다음> 버튼을 클릭합니다.

호스트 이름과 포트 번호에 아래의 정보를 입력하고 <다음> 버튼을 클릭합니다.

  • 호스트 이름 : ora-stb (Standby 서버명)
  • 포트 번호 : 1521 (Standby Database에서 사용할 리스너 포트 번호)

서비스 이름과 접속 유형을 입력 및 선택하고 <다음>을 클릭합니다.

  • 서비스 이름 : orcl_stb (Standby에서 사용할 데이터베이스 서비스명)
  • 접속 유형 : 전용 서버

Standby 서버에는 아직 데이터베이스가 구성되지 않았으므로 접속 테스트를 진행하지 않습니다.

<완료> 버튼을 클릭합니다.

Standby 데이터베이스에 대한 접속 정보가 설정된 것을 확인할 수 있습니다.

작업을 모두 완료했으면, 좌측 상단에 '파일' > '네트워크 구성 저장'을 클릭하여 작업한 내용을 저장합니다.

상단 메뉴바 우측의 x 버튼을 클릭하여 Net Manager를 종료합니다.

E) Primary 노드의 tnsnames.ora 파일

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

ORCL_STB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-stb)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl_stb)
    )
  )
[oracle@orcl ~]$ cat $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.3.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL_STB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-stb)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl_stb)
    )
  )

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = ora-act)(PORT = 1521))


ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-act)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

Net Manager를 사용하지 않고 tnsnames.ora 파일을 수정하여 직접 tns 접속 정보를 변경할 수 있습니다.

3. Standby 노드 설정

A) Net manager로 Standby 리스너 수정

Standby 노드에서 oracle 유저로 수행
netmgr

Standby 노드는 리스너가 생성되어 있지 않습니다. Net Manager로 listener 생성과 static listener 등록을 동시에 합니다.

Network Manger 화면에서 Oracle Net 구성의 로컬 부분을 클릭하여 확장합니다.

'리스너'를 선택하고 좌측 상단에 + 모양의 생성 버튼을 클릭합니다.

리스너 이름에 "LISTENER"를 입력하고 <확인> 버튼을 클릭합니다.

'수신 위치' 항목에서 <주소 추가>를 클릭하고 아래와 같이 선택  또는 입력합니다.

  • 프로토콜 : TCP/IP
  • 호스트 : ora-stb (Standby 서버명)
  • 포트 : 1521 (Standby Database에서 사용할 리스너 포트 번호)

<주소 추가> 버튼을 클릭하고 주소2 항목에 로컬 연결을 위한 내용을 추가로 선택 또는 입력합니다.

  • 프로토콜 : IPC
  • 키 : EXTPROC1521

중앙 상단의 '수신 위치'를 '데이터베이스 서비스'로 변경해줍니다.

아래 버튼에서 <데이터베이스 추가> 버튼을 클릭합니다.

데이터베이스1 항목에 다음과 같이 정보를 입력합니다.

  • 전역 데이터베이스 이름 : orcl_stb (서비스 명)
  • Oracle 홈 디렉토리 : (ORACLE_HOME으로 지정된 경로)
  • SID : orcl (데이터베이스의 SID)

<데이터베이스 추가> 버튼을 클릭하여 데이터베이스2를 추가한 후 다음과 같이 입력합니다.

  • 전역 데이터베이스 이름 : orcl_stb_DGB (서비스 명_DGB)
  • Oracle 홈 디렉토리 : (ORACLE_HOME으로 지정된 경로)
  • SID : orcl (데이터베이스의 SID)

<데이터베이스 추가> 버튼을 클릭하여 데이터베이스3를 추가한 후 다음과 같이 입력합니다.

  • 전역 데이터베이스 이름 : orcl_stb_DGMGRL (서비스 명_DGMGRL)
  • Oracle 홈 디렉토리 : (ORACLE_HOME으로 지정된 경로)
  • SID : orcl (데이터베이스의 SID)

Listener 설정이 모두 완료되었으면, 좌측 상단에 '파일' > '네트워크 구성 저장'을 클릭하여 작업한 내용을 저장합니다.

저장을 하게 되면 listener.ora 파일에 변경된 내용이 반영됩니다.

B) Standby 노드의 listener.ora 파일

vi $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl_stb)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl_stb_DGB)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl_stb_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
      (SID_NAME = orcl)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-stb)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle
[oracle@orcl ~]$ cat $ORACLE_HOME/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/19.3.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl_stb)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl_stb_DGB)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl_stb_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
      (SID_NAME = orcl)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-stb)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

Net Manager를 사용하지 않고 listener.ora 파일을 생성하여 직접 리스너를 추가할 수 있습니다.

C) Standby 리스너 시작

Standby 노드의 listener 시작
lsnrctl start
[oracle@orcl ~]$ lsnrctl start

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 15-JUL-2019 15:49:16

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

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

TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /u01/app/oracle/product/19.3.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 19.0.0.0.0 - Production
Start Date                15-JUL-2019 15:49:16
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/19.3.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

생성된 리스너는 lsnrctl 명령어로 시작해 줍니다.

D) Standby 노드에서 Net manager로 Primary 서비스 이름 지정

Oracle Net 구성의 로컬에서 서비스 이름 지정 부분을 클릭하여 확장합니다.

Standby는 초기 상태 그대로 접속 정보가 등록되어 있지 않으므로, primary와 standby의 접속 정보를 모두 등록해야 합니다.

 '서비스 이름 지정'을 선택하고, 좌측 상단에 + 모양의 생성 버튼을 클릭합니다.

네트 서비스 이름을 아래와 같이 입력하고 <다음> 버튼을 클릭합니다.

  • 네트 서비스 이름 : orcl (Primary의 서비스 명으로 사용)

프로토콜은 기본값인 'TCP/IP(인터넷 프로토콜)'을 선택한 상태로 <다음> 버튼을 클릭합니다.

호스트 이름과 포트 번호에 아래의 정보를 입력하고 <다음> 버튼을 클릭합니다.

  • 호스트 이름 : ora-act (Primary 서버명)
  • 포트 번호 : 1521 (Primary Database에서 사용할 리스너 포트 번호P

서비스 이름과 접속 유형을 입력 및 선택하고 <다음>을 클릭합니다.

  • 서비스 이름 : orcl (Primary에서 사용할 데이터베이스 서비스명)
  • 접속 유형 : 전용 서버

Primary 서버는 데이터베이스가 구성되어 있고지 리스너 또한 설정되어 시작 중이므로 접속 테스트를 진행합니다.

<테스트> 버튼을 클릭합니다.

접속 테스트를 위한 계정이 데이터베이스에 생성되어 있지 않아 오류 메시지가 출력됩니다.

다른 데이터베이스 계정으로 테스트를 진행하기 위해 <로그인 변경> 버튼을 클릭합니다.

로그인 정보에 아래의 값을 입력하고 <확인> 버튼을 클릭합니다.

  • 사용자 이름 : system (접속 테스트에 사용될 데이터베이스 계정명)
  • 비밀번호 : oracle_4U (접속 테스트에 사용되는 계정의 비밀번호)

정상적으로 접속이 되는 것을 확인하였으면, <닫기> 버튼을 클릭합니다.

Primary 데이터베이스에 대한 접속 설정이 완료되었으므로, <완료> 버튼을 클릭합니다.

E) Standby 노드에서 Net manager로 Standby 서비스 이름 지정

Primary 데이터베이스에 대한 접속 정보가 설정된 것을 확인할 수 있습니다.

추가적으로 Standby 서버의 접속 정보를 등록하려면 '서비스 이름 지정'이나 그 하위의 레벨을 선택하고, 좌측 상단에 + 모양의 생성 버튼을 클릭합니다.

네트 서비스 이름을 아래와 같이 입력하고 <다음> 버튼을 클릭합니다.

  • 네트 서비스 이름 : orcl_stb (Standby의 서비스 명으로 사용)


프로토콜은 기본값인 'TCP/IP(인터넷 프로토콜)'을 선택한 상태로 <다음> 버튼을 클릭합니다.

호스트 이름과 포트 번호에 아래의 정보를 입력하고 <다음> 버튼을 클릭합니다.

  • 호스트 이름 : ora-stb (Standby 서버명)
  • 포트 번호 : 1521 (Standby Database에서 사용할 리스너 포트 번호)

서비스 이름과 접속 유형을 입력 및 선택하고 <다음>을 클릭합니다.

  • 서비스 이름 : orcl_stb (Standby에서 사용할 데이터베이스 서비스명)
  • 접속 유형 : 전용 서버

Standby 서버에는 아직 데이터베이스가 구성되지 않았으므로 접속 테스트를 진행하지 않습니다.

<완료> 버튼을 클릭합니다.

Standby 데이터베이스에 대한 접속 정보가 설정된 것을 확인할 수 있습니다.

작업을 모두 완료했으면, 좌측 상단에 '파일' > '네트워크 구성 저장'을 클릭하여 작업한 내용을 저장합니다.

상단 메뉴바 우측의 x 버튼을 클릭하여 Net Manager를 종료합니다.

F) Standby 노드의 tnsnames.ora 파일

vi $ORACLE_HOME/network/admin/tnsnames.ora
ORCL_STB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-stb)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl_stb)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-act)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
[oracle@orcl ~]$ cat $ORACLE_HOME/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.3.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL_STB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-stb)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl_stb)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ora-act)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

Net Manager를 사용하지 않고 tnsnames.ora 파일을 수정하여 직접 tns 접속 정보를 변경할 수 있습니다.

III. Data Guard 환경 구성

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

IV. Standby DB 복제

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

V. Data Guard Broker 설정

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

VI. Switchover

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

VII. Failover

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

VIII.  Active Data Guard로 전환

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

IX. 기동 및 정지

1. Data Guard 정지

A) Maximum Performance 적용 (옵션)

기본 보호 모드인 Maximum Performance 적용 (옵션)
EDIT CONFIGURATION SET PROTECTION MODE AS MAXPERFORMANCE;
SHOW CONFIGURATION;
DGMGRL> SHOW CONFIGURATION;

Configuration - dg_orcl

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

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 29 seconds ago)



B) Data Guard Broker 중지

Redo 이동 및 적용을 중지하고 Broker 중지
EDIT DATABASE [primary 글로벌 DB명] SET STATE=transport-off;
EDIT DATABASE [standby 글로벌 DB명] SET STATE=apply-off;
DISABLE CONFIGURATION
DGMGRL> EDIT DATABASE orcl SET STATE=transport-off;
Succeeded.

DGMGRL> EDIT DATABASE orcl_stby SET STATE=apply-off;
Succeeded.

DGMGRL> DISABLE CONFIGURATION
Disabled.

DGMGRL> SHOW CONFIGURATION;

Configuration - dg_orcl

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

Fast-Start Failover:  Disabled

Configuration Status:
DISABLED

DGMGRL> SHOW DATABASE orcl;

Database - orcl

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

Database Status:
DISABLED

DGMGRL> SHOW DATABASE orcl_stby;

Database - orcl_stby

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

Database Status:
DISABLED



C) 데이터베이스 중지

Primary 또는 Standby 중지 (모두 중지 가능)
SHUTDOWN IMMEDIATE
SQL> SHUTDOWN IMMEDIATE
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.


먼저 standby database부터 중지합니다.

2. Data Guard 기동

A) Primary 데이터베이스 기동

Primary 데이터베이스 기동
STARTUP
[oracle@orcl ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Feb 14 09:25:57 2024
Version 19.11.0.0.0

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

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 1258290744 bytes
Fixed Size                  8896056 bytes
Variable Size             318767104 bytes
Database Buffers          922746880 bytes
Redo Buffers                7880704 bytes
Database mounted.
Database opened.



B) Standby 데이터베이스 기동

Standby 데이터베이스 기동 (ADG의 경우 read only open)
STARTUP MOUNT
-- ALTER DATABASE OPEN READ ONLY;
[oracle@orcl ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Feb 14 09:26:35 2024
Version 19.11.0.0.0

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

Connected to an idle instance.

SQL> startup mount
ORACLE instance started.

Total System Global Area 1258290744 bytes
Fixed Size                  8896056 bytes
Variable Size             318767104 bytes
Database Buffers          922746880 bytes
Redo Buffers                7880704 bytes
Database mounted.



C) Data Guard Broker 기동

Broker 및 Redo 적용, 이전 활성화
ENABLE CONFIGURATION
EDIT DATABASE [standby 글로벌 DB명] SET STATE=apply-on;
EDIT DATABASE [primary 글로벌 DB명] SET STATE=transport-on;
[oracle@orcl ~]$ dgmgrl / as sysdba
DGMGRL for Linux: Release 19.0.0.0.0 - Production on Wed Feb 14 09:27:37 2024
Version 19.11.0.0.0

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

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

DGMGRL> ENABLE CONFIGURATION
Enabled.

DGMGRL> SHOW CONFIGURATION

Configuration - dg_orcl

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

Fast-Start Failover:  Disabled

Configuration Status:
SUCCESS   (status updated 7 seconds ago)

DGMGRL> EDIT DATABASE orcl_stby SET STATE=apply-on;
Succeeded.

DGMGRL> EDIT DATABASE orcl SET STATE=transport-on;
Succeeded.

DGMGRL> SHOW DATABASE orcl

Database - orcl

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

Database Status:
SUCCESS

DGMGRL> SHOW DATABASE orcl_stby

Database - orcl_stby

  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: 384.00 KByte/s
  Real Time Query:    OFF
  Instance(s):
    orcl

Database Status:
SUCCESS




  • 레이블 없음