Google Cloud Compute Engine에서 Data Guard 관찰자 설정
고가용성 요구사항에 따라 데이터베이스 간에 장애 조치를 자동화해야 할 수 있습니다. Data Guard 배포를 검증한 후에는 Compute Engine에서 Data Guard 관찰자를 설정하여 이를 수행할 수 있습니다. 관찰자는 조건에 충족되면 자동 장애 조치를 시작할 수 있도록 Data Guard 구성을 모니터링하는 프로세스입니다.
이 가이드에서는 관찰자 가상 머신(VM)에 Oracle 19c 데이터베이스 클라이언트를 설치하고 빠른 시작 장애 조치를 구성하는 방법을 설명합니다.
이 가이드 전체에서 사용되는 예시는 다음과 같습니다.
데이터베이스 고유 이름 | 서버 호스트 이름 | RAC 인스턴스 이름 | 역할 |
---|---|---|---|
DBDG_SITE1 | site1db1, site1db2 | DBDG_SITE11, DBDG_SITE12 | 기본 |
DBDG_SITE2 | site2db1, site2db2 | DBDG_SITE21, DBDG_SITE22 | 대기 |
Oracle Database 클라이언트 소프트웨어 설치
다음 기준을 충족하는 Compute Engine에 가상 머신(VM)을 만듭니다.
운영체제. Red Hat Enterprise Linux 7.
네트워킹. Virtual Private Cloud에서 기본 및 대기 데이터베이스를 실행하는 베어메탈 솔루션 호스트로 액세스를 허용하는 방화벽 규칙이 있는 서브넷입니다.
스토리지. -- 부팅 디스크에 20 GB 이상 할당되어야 합니다.
VM에 로그인하고 각 데이터베이스 클러스터의 SCAN 호스트 이름이 DNS에서 대응하는지 확인합니다.
host DBDG_SITE1_SCAN_HOSTNAME host DBDG_SITE2_SCAN_HOSTNAME
DNS에서 호스트 이름이 확인되지 않으면 VM의
/etc/hosts
파일에 각 SCAN 호스트 이름의 IP 주소를 추가합니다. 예시 IP 주소를 각 클러스터의 IP 주소로 바꿉니다.# Site 1 SCAN Hosts 192.0.2.10 DBDG_SITE1_SCAN_HOSTNAME 192.0.2.11 DBDG_SITE1_SCAN_HOSTNAME 192.0.2.12 DBDG_SITE1_SCAN_HOSTNAME # Site 2 SCAN Hosts 198.51.100.10 DBDG_SITE2_SCAN_HOSTNAME 198.51.100.11 DBDG_SITE2_SCAN_HOSTNAME 198.51.100.12 DBDG_SITE2_SCAN_HOSTNAME
Oracle 데이터베이스 RPM 설치. 소프트웨어만 설치합니다. 관찰 VM에 데이터베이스를 구성할 필요는 없습니다.
Oracle 데이터베이스 RPM은 사전 정의된 디렉터리에 소프트웨어를 설치합니다. 다음 항목을
/home/oracle/.bash_profile
에 추가하여 Oracle 소프트웨어 홈을 경로에 추가합니다.cat >> /home/oracle/.bash_profile << EOL export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 export PATH=\$PATH:\$ORACLE_HOME/bin EOL
터미널 세션에서 Oracle 환경 변수를 소싱합니다.
source ~/.bash_profile
데이터베이스 연결 구성
$ORACLE_HOME/network/admin/tsnames.ora
파일의 Oracle Net 설정을 구성합니다.DBDG_SITE1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE1_SCAN_HOSTNAME)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DBDG_SITE1) (UR=A) ) ) DBDG_SITE2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE2_SCAN_HOSTNAME)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DBDG_SITE2) (UR=A) ) )
Oracle 데이터베이스 버전 12.2 이상에서는 관찰자를 백그라운드 모드로 실행할 수 있습니다. 이렇게 하려면 데이터베이스에 대한 비밀번호 없는 인증을 수행할 수 있도록 월렛이 생성되어 있어야 합니다. 관찰자 VM에서 Oracle 사용자로 로그인하고 다음 태스크를 수행하여 월렛을 만듭니다.
$ORACLE_HOME/network/admin/sqlnet.ora
에 다음 항목을 추가합니다.WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /home/oracle/wallet)) ) SQLNET.WALLET_OVERRIDE = TRUE
관찰자를 호스팅하는 VM에서 월렛 디렉터리를 만듭니다.
mkdir /home/oracle/wallet
월렛을 초기화하고 메시지가 표시되면 월렛의 비밀번호를 입력합니다.
mkstore -wrl /home/oracle/wallet -create
Data Guard 구성에서 각 데이터베이스에 대해 월렛에 항목을 만듭니다.
mkstore
명령어는 데이터베이스의 SYS 비밀번호를 요청한 다음 이전 단계에서 제공된 지갑 비밀번호를 요청합니다.mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE1 sys mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE2 sys
Data Guard 구성의 각 데이터베이스에 대한 사용자 인증 정보가 월렛에 포함되어 있는지 확인합니다.
mkstore
의-listCredential
인수는 월렛 비밀번호를 요청합니다.mkstore -wrl /home/oracle/wallet -listCredential
Oracle로 관찰자 VM에 로그인한 후 기본 및 대기 데이터베이스에 대한 연결을 테스트합니다. 월렛 사용자 인증 정보를 사용하여 SQL*Plus로 기본 및 보조 데이터베이스에 연결합니다.
sqlplus /@DBDG_SITE1 as sysdba sqlplus /@DBDG_SITE2 as sysdba
월렛 구성에 성공하면
sqlplus
명령어는 비밀번호를 묻지 않고 데이터베이스에 직접 로그인합니다.
빠른 시작 장애 조치 구성 및 사용 설정
관찰자 구성 및 로그 파일을 저장할 디렉터리를 만듭니다.
mkdir /home/oracle/fsfo
월렛을 사용하여 기본 데이터베이스의 Data Guard 브로커에 연결합니다.
dgmgrl CONNECT /@DBDG_SITE1;
Data Guard 상태를 확인하여 구성이
SUCCESS
로 표시되는지 확인합니다.SHOW CONFIGURATION;
빠른 시작 장애 조치(FSFO)를 사용 설정합니다.
ENABLE FAST_START FAILOVER;
FSFO를 사용 설정해도 자동 장애 조치용으로 구성이 준비되지는 않습니다. 자동 장애 조치를 사용하려면 관찰자가 필요합니다.
Data Guard Observer를 시작합니다.
START OBSERVER observer1 IN BACKGROUND FILE IS '/home/oracle/fsfo/observer1_DBDG.dat' LOGFILE IS '/home/oracle/fsfo/observer1_DBDG.log';
별도의 터미널 세션에서 구성을 확인합니다.
SHOW CONFIGURATION VERBOSE;
다음 예는
show configuration
명령어의 세부정보 수준 모드를 보여줍니다. 구성 상태가SUCCESS
이면 설정이 완료된 것입니다.Configuration - DBDG Protection Mode: MaxAvailability Members: DBDG_SITE1 - Primary database DBDG_SITE2 - Physical standby database (*) Fast-Start Failover target Properties: FastStartFailoverThreshold = '30' OperationTimeout = '30' TraceLevel = 'USER' FastStartFailoverLagLimit = '45' CommunicationTimeout = '180' ObserverReconnect = '0' FastStartFailoverAutoReinstate = 'TRUE' FastStartFailoverPmyShutdown = 'TRUE' BystandersFollowRoleChange = 'ALL' ObserverOverride = 'FALSE' ExternalDestination1 = '' ExternalDestination2 = '' PrimaryLostWriteAction = 'CONTINUE' ConfigurationWideServiceName = 'DBDG_CFG' Fast-Start Failover: Enabled in Potential Data Loss Mode Lag Limit: 45 seconds Threshold: 30 seconds Active Target: DBDG_SITE2 Potential Targets: "DBDG_SITE2" DBDG_SITE2 valid Observer: observer1 Shutdown Primary: TRUE Auto-reinstate: TRUE Observer Reconnect: (none) Observer Override: FALSE Configuration Status: SUCCESS