Data Guard 대기 데이터베이스 생성
기본 데이터베이스가 Data Guard용으로 준비되면 대기 사이트에 복제할 준비가 된 것입니다. 다음 가이드에서는 능동적 복제를 사용하여 데이터베이스의 일관된 사본을 만듭니다.
참고로 이 가이드에는 다음 예시가 사용되었습니다.
데이터베이스 고유 이름 | 서버 호스트 이름 | RAC 인스턴스 이름 | 역할 |
---|---|---|---|
DBDG_SITE1 | site1db1, site1db2 | DBDG_SITE11, DBDG_SITE12 | 기본 |
DBDG_SITE2 | site2db1, site2db2 | DBDG_SITE21, DBDG_SITE22 | 대기 |
이 가이드에서 Oracle을 실행하는 베어메탈 솔루션 서버는 다음 환경 변수로 구성됩니다.
환경 변수 이름 | 값 |
---|---|
ORACLE_BASE | /apps/oracle/oracle_base |
ORACLE_HOME | /apps/oracle/19.0.0/db_home1 |
설정에 따라 환경 변수 경로를 수정해야 할 수 있습니다.
대기 데이터베이스 설정
데이터베이스 연결 구성
대기 위치의 각 베어메탈 솔루션 서버에 로그인하고 $ORACLE_HOME/network/admin/tsnames.ora
파일을 수정하여 넷 서비스 구성을 업데이트합니다.
DBDG_SITE2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE2_SCAN_HOSTNAME)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DBDG_SITE2) (UR=A)
)
)
DBDG_SITE1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE1_SCAN_HOSTNAME)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DBDG_SITE1)
)
)
임시 리스너 구성
다른 데이터베이스 연결에 사용되는 리스너를 다시 시작하지 않도록 데이터베이스 중복은 임시 리스너를 사용하여 수행됩니다. 이 예시에서는 포트 1523을 사용하지만 클러스터 간의 통신을 위해 열려 있는 모든 포트를 사용할 수 있습니다. 데이터베이스 중복 후 이 임시 리스너를 삭제합니다.
데이터베이스 중복 프로세스 중에 사용할 대기 위치의 첫 번째 베어메탈 솔루션 서버에 로그인합니다.
$ORACLE_HOME/network/admin/listener.ora
파일을 수정하여 다음과 같이 네트 서비스 구성을 업데이트합니다.LISTENER_DBDG_SITE2 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = site1db1)(PORT = 1523)) ) ) SID_LIST_LISTENER_DBDG_SITE2 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = DBDG_SITE2_DGMGRL) (ORACLE_HOME = ORACLE_HOME) (SID_NAME = DBDG_SITE21) ) ) ADR_BASE_LISTENER = /apps/oracle/oracle_base
임시 리스너를 시작합니다.
lsnrctl start LISTENER_DBDG_SITE2
대기 데이터베이스 준비
각 데이터베이스 인스턴스에 감사 로그를 저장할 디렉터리가 필요합니다. 대기 데이터베이스 위치의 각 베어메탈 솔루션 서버에 감사 파일 디렉터리를 만듭니다.
mkdir -p /apps/oracle/oracle_base/admin/DBDG_SITE2/adump
이전에 대기 데이터베이스 서버에 복사한
$ORACLE_HOME/dbs/initDBDG_SITE21.ora
파일을 수정합니다.db_unique_name
을 새 대기 데이터베이스 이름으로 설정합니다.- 대기 데이터베이스의 인스턴스 이름이 반영되도록 인스턴스별 매개변수를 수정합니다. 다음은 몇 가지 예시입니다.
instance_number
thread
undo_tablespace
- 이전 단계에서 만든 디렉터리를 사용하도록
audit_file_dest
매개변수를 설정합니다. - 각 위치의 ASM 디스크 그룹이 다른 이름을 사용하는 경우 새 파일 위치와 일치하도록
db_file_name_convert
및log_file_name_convert
매개변수를 수정합니다. control_files
매개변수를 주석 처리합니다.
다음 예시는 이 가이드에 제공된 예시를 사용하여 수정한 데이터베이스 매개변수 파일을 보여줍니다. 매개변수 파일에는 데이터베이스 설정과 관련된 추가 매개변수가 포함됩니다. 대기에 대한 수정이 필요한 매개변수만 표시됩니다.
*.db_unique_name='DBDG_SITE2' DBDG_SITE21.instance_number=1 DBDG_SITE22.instance_number=2 DBDG_SITE21.thread=1 DBDG_SITE22.thread=2 DBDG_SITE21.undo_tablespace='UNDOTBS1' DBDG_SITE22.undo_tablespace='UNDOTBS2' *.audit_file_dest='/apps/oracle/oracle_base/admin/DBDG_SITE2/adump' #*.control_files='+DATA/DBDG_SITE1/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE1/CONTROLFILE/current.257.1091317089'
oraenv
명령어가 대기 데이터베이스의 환경 변수를 설정할 수 있도록/etc/oratab
파일에 항목을 추가합니다.DBDG_SITE21:ORACLE_HOME:N
대기 데이터베이스 만들기
대기 데이터베이스에 연결할 수 있도록
ORACLE_SID
환경 변수를 설정하세요.source oraenv <<< "DBDG_SITE21"
The Oracle base has been set to /apps/oracle/oracle_base
응답이 표시될 것입니다.기본 데이터베이스를 복제하기 전에 한 노드에서 대기 인스턴스를 수동으로 시작해야 합니다. 대기 위치에 있는 첫 번째 베어메탈 솔루션 서버에 로그인하고 SQL*Plus를 시작한 후
pfile
를 사용하여nomount mode
에서 대기 데이터베이스를 시작합니다.sqlplus / as sysdba
STARTUP NOMOUNT PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
성공하면 다음 예시와 비슷한 응답이 표시됩니다.
ORACLE instance started. Total System Global Area 1.2885E+10 bytes Fixed Size 15988824 bytes Variable Size 1845493760 bytes Database Buffers 1.1006E+10 bytes Redo Buffers 17563648 bytes
다음과 같이 인스턴스를 시작한 후 SQL*Plus를 종료합니다.
EXIT;
대기 데이터베이스 서비스와의 연결을 확인합니다. 기본 데이터베이스 위치의 각 베어메탈 솔루션 서버에서 SQL*Plus를 사용하여 대기 인스턴스에 연결을 시도합니다. SYS 원격 로그인 비밀번호를 수동으로 입력하여 인스턴스에 연결합니다.
sqlplus sys@DBDG_SITE2_FOR_DUPLICATION as sysdba
성공하면 인스턴스 매개변수를 확인할 수 있는 표준 SQL*Plus 프롬프트가 표시됩니다.
SHOW PARAMETER DB_UNIQUE_NAME;
다음과 비슷한 응답이 표시됩니다.
NAME TYPE VALUE ---------------- ----------- ------------------------------ db_unique_name string DBDG_SITE2
다음과 같이
DB_UNIQUE_NAME
매개변수를 확인한 후 SQL*Plus를 종료합니다.EXIT;
Recovery Manager에 연결하고
duplicate
명령어를 실행하여 활성 기본 데이터베이스에서 대기를 복제합니다.rman TARGET sys@DBDG_SITE1 AUXILIARY sys@DBDG_SITE2_FOR_DUPLICATION
DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE NOFILENAMECHECK;
성공하면 처리된 후 다음 예시와 비슷한 메시지가 표시됩니다.
Finished Duplicate Db at ...
Recovery Manager를 종료합니다.
EXIT;
대기 데이터베이스 만들기 완료
데이터베이스 중복 중에 ASM은 대기 데이터베이스에 대해 새 제어 파일을 만듭니다. 새로운 대기 인스턴스에 연결하고 새 제어 파일 이름을 가져오세요. 다음 예시에서는
+DATA
및+RECO
디스크 그룹에 저장된 두 제어 파일을 보여줍니다.sqlplus / as sysdba
SET LINESIZE 140 COLUMN NAME FORMAT a15 COLUMN VALUE FORMAT a125 SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='control_files';
제어 파일 이름이 '값' 필드에 표시됩니다.
NAME VALUE --------------- ---------------------------------------------------------------------------------------------------- control_files +DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089, +RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089
이전 단계의 제어 파일 이름을 기록하고
$ORACLE_HOME/dbs/initDBDG_SITE21.ora
의control_files
매개변수의 항목을 새 값으로 바꿉니다. 제어 파일이 여러 개 있는 경우 각 파일을 작은따옴표로 묶어 쉼표로 구분하세요.*.control_files='+DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089'
SQL*Plus로 대기 데이터베이스에 연결하고 수정된
pfile
에서 새spfile
을 만듭니다.sqlplus / as sysdba
CREATE SPFILE='+DATA/DBDG_SITE2/spfileDBDG_SITE2' FROM PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
asmcmd
명령어를 사용하여 비밀번호 파일을 ASM 디스크 그룹에 복사합니다.asmcmd cp /apps/oracle/19.0.0/db_home1/dbs/orapwDBDG_SITE21.ora +DATA/DBDG_SITE2/orapwDBDG_SITE2
대기 데이터베이스 인스턴스를 종료하고 임시
pfile
및 비밀번호 파일을 삭제합니다.sqplus / as sysdba
SHUTDOWN IMMEDIATE; EXIT;
rm $ORACLE_HOME/dbs/orapwDBDG_SITE21.ora $ORACLE_HOME/dbs/initDBDG_SITE2.ora
대기 데이터베이스 위치의 첫 번째 베어메탈 솔루션 서버에서 데이터베이스 중복에 사용되는 임시 리스너를 중지합니다.
lsnrctl stop LISTENER_DBDG_SITE2
대기 데이터베이스 위치의 첫 번째 베어메탈 솔루션 서버에 있는
$ORACLE_HOME/network/admin/listener.ora
파일에서 임시 항목을 삭제합니다.srvctl
명령어를 사용하여 새 대기 데이터베이스 및 인스턴스를 클러스터 레지스트리에 추가합니다.srvctl add database \ -db DBDG_SITE2 \ -oraclehome /apps/oracle/19.0.0/db_home1 \ -spfile +DATA/DBDG_SITE2/spfileDBDG_SITE2 \ -pwfile +DATA/DBDG_SITE2/orapwDBDG_SITE2 \ -role PHYSICAL_STANDBY \ -startoption MOUNT srvctl add instance \ -db DBDG_SITE2 \ -instance DBDG_SITE21 \ -node site2db1 srvctl add instance \ -db DBDG_SITE2 \ -instance DBDG_SITE22 \ -node site2db2
srvctl
명령어를 사용하여 대기 데이터베이스를 시작합니다.srvctl start database -db DBDG_SITE2
다음 단계
다음으로 Data Guard 브로커를 구성하고 사용 설정합니다.