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 브로커를 구성하고 사용 설정합니다.