|
활성/활성 데이터베이스 복제
재해 복구
데이터 보호
리전 내 및 리전 간 복제
제로 가동 중지 마이그레이션 및 업그레이드
참고
Amazon RDS에서 GoldenGate를 사용하여 Oracle Database의 메이저 버전으로 업그레이드할 수 있습니다. 예를 들어 Amazon RDS에서 GoldenGate를 사용하여 Oracle Database 11g 온프레미스 데이터베이스를 Amazon RDS DB 인스턴스의 Oracle Database 19c로 업그레이드할 수 있습니다.
주제
Oracle GoldenGate에 대해 지원되는 버전 및 라이선스 옵션
Amazon RDS는 Oracle GoldenGate에서 다음 에디션과 버전을 지원합니다.
Oracle Database Standard Edition Two(SE2)
Oracle Database Enterprise Edition(EE)
Oracle GoldenGate 버전 11.2.1 이상
Oracle GoldenGate DDL은 통합 캡처 모드를 사용할 때 Oracle GoldenGate 버전 12.1 이상에서 지원됩니다.
사용자는 모든 AWS 리전에서 Amazon RDS와 함께 사용하기 위해 GoldenGate 라이선싱(BYOL)을 관리해야 합니다. 자세한 내용은 Oracle 라이선스 옵션을 참조하세요.
Oracle GoldenGate의 요구 사항 및 제한 사항
Amazon RDS에서 GoldenGate 작업을 할 때 다음 요구 사항과 제한 사항을 고려하세요.
사용자는 Amazon RDS와 함께 사용하기 위해 GoldenGate를 설정하고 관리해야 합니다.
Amazon RDS는 GoldenGate를 사용하여 Oracle 데이터베이스 간 마이그레이션 및 복제를 지원합니다. Amazon에서는 이기종 데이터베이스 간의 마이그레이션이나 복제를 지원하거나 제한한하지 않습니다.
Oracle Transparent Data Encryption(TDE)을 사용하는 Oracle DB 인스턴스용 RDS에서 GoldenGate를 사용할 수 있습니다. 복제된 데이터의 무결성을 유지 관리하려면 Amazon EBS 암호화된 볼륨 또는 추적 파일 암호화를 사용하여 Oracle GoldenGate 허브에서 암호화를 구성합니다. 또한 Oracle GoldenGate 허브와 원본 및 대상 데이터베이스 인스턴스 간에 전송되는 데이터에 대한 암호화를 구성합니다. RDS for Oracle DB 인스턴스는 Oracle 보안 소켓 Layer 또는 Oracle 기본 네트워크 암호화을 사용하여 암호화를 지원합니다.
Oracle GoldenGate 아키텍처
Amazon RDS용 OracleGoldenGate 아키텍처는 다음과 같은 분리된 모듈로 구성됩니다.
원본 데이터베이스
원본 데이터베이스는 온프레미스 Oracle 데이터베이스, Amazon EC2 인스턴스의 Oracle 데이터베이스 또는 Amazon RDS DB 인스턴스의 Oracle 데이터베이스입니다.
Oracle GoldenGate 허브
Oracle GoldenGate 허브는 트랜잭션 정보를 원본 데이터베이스에서 대상 데이터베이스로 이동합니다. 허브는 다음 중 하나일 수 있습니다.
Oracle 데이터베이스 및 GoldenGate가 설치된 Amazon EC2 인스턴스
온프레미스 Oracle 설치
2개 이상의 Amazon EC2 허브가 있을 수 있습니다. 리전 간 복제에 GoldenGate를 사용하는 경우 허브를 2개 사용하는 것이 좋습니다.
대상 데이터베이스:
대상 데이터베이스는 Amazon RDS DB 인스턴스, Amazon EC2 인스턴스 또는 온프레미스 위치에 있을 수 있습니다.
다음 섹션에서는 Amazon RDS의 GoldenGate에 대한 일반적인 시나리오를 설명합니다.
주제
온프레미스 원본 데이터베이스 및 Oracle GoldenGate 허브
이 시나리오에서는 온프레미스 Oracle 원본 데이터베이스와 온프레미스 Oracle GoldenGate 허브가 대상 Amazon RDS DB 인스턴스에 데이터를 제공합니다.
온프레미스 원본 데이터베이스 및 Amazon EC2 허브
이 시나리오에서는 온프레미스 Oracle 데이터베이스가 원본 데이터베이스 역할을 합니다. 이 데이터베이스가 Amazon EC2 인스턴스 허브에 연결됩니다. 이 허브는 대상 RDS for Oracle DB 인스턴스에 데이터를 제공합니다.
Amazon RDS 원본 데이터베이스 및 Amazon EC2 허브
이 시나리오에서는 RDS for Oracle DB 인스턴스가 원본 데이터베이스 역할을 합니다. 이 데이터베이스가 Amazon EC2 인스턴스 허브에 연결됩니다. 이 허브는 대상 RDS for Oracle DB 인스턴스에 데이터를 제공합니다.
Amazon EC2 원본 데이터베이스 및 Amazon EC2 허브
이 시나리오에서는 Amazon EC2 인스턴스의 Oracle 데이터베이스가 소스 데이터베이스 역할을 합니다. 이 데이터베이스가 Amazon EC2 인스턴스 허브에 연결됩니다. 이 허브는 대상 RDS for Oracle DB 인스턴스에 데이터를 제공합니다.
서로 다른 여러 AWS 리전의 Amazon EC2 허브
이 시나리오에서는 Amazon RDS DB 인스턴스의 Oracle 데이터베이스가 동일한 AWS 리전의 Amazon EC2 인스턴스 허브에 연결되어 있습니다. 허브는 다른 AWS 리전의 Amazon EC2 인스턴스 허브에 연결되어 있습니다. 이 두 번째 허브는 두 번째 Amazon EC2 인스턴스 허브와 동일한 AWS 리전의 대상 RDS for Oracle DB 인스턴스에 데이터를 제공합니다.
참고
온프레미스 환경에서 GoldenGate를 실행하는 데 영향을 미치는 문제는 AWS에서 GoldenGate를 실행하는 데도 영향을 미칩니다. Oracle GoldenGate 허브를 모니터링하여 장애 조치가 발생하는 경우 EXTRACT와 REPLICAT가 재개되는지 확인하는 것이 좋습니다. Oracle GoldenGate 허브가 Amazon EC2 인스턴스에서 실행되어 Amazon RDS에서 Oracle GoldenGate 허브를 관리하지 않으므로 이 허브가 실행 중인지 확인할 수 없습니다.
Oracle GoldenGate 설정
Amazon RDS를 사용하는 GoldenGate를 설정하려면 Amazon EC2 인스턴스에서 허브를 구성한 후 원본 및 대상 데이터베이스를 구성합니다. 다음 섹션에서는 Amazon RDS용으로 GoldenGate를 설치하는 방법을 보여줍니다.
주제
Amazon EC2에 GoldenGate 허브 설정
Amazon EC2 인스턴스에 GoldenGate 허브를 생성하려면 여러 단계를 완료합니다. 먼저 Oracle DBMS의 전체 클라이언트 설치가 완료된 Amazon EC2 인스턴스를 생성합니다. Amazon EC2 인스턴스에는 Oracle GoldenGate 소프트웨어도 설치되어 있어야 합니다. 정확한 소프트웨어 버전은 원본 및 대상 데이터베이스 버전에 따라 달라집니다. ㅅGoldenGate 설치에 대한 자세한 내용은 Oracle 설명서를 참조하세요.
Oracle GoldenGate 허브 역할을 하는 Amazon EC2 인스턴스는 원본 데이터베이스의 트랜잭션 정보를 추적 파일로 저장 및 처리합니다. 이 프로세스를 지원하려면 다음 조건을 충족해야 합니다.
트레일 파일을 위한 충분한 저장 공간을 할당한 상태여야 합니다.
Amazon EC2 인스턴스에 해당 데이터 용량을 관리할 수 있는 충분한 처리 능력이 있어야 합니다.
트랜잭션 정보를 추적 파일에 기록하기 전에 해당 정보를 저장할 충분한 메모리가 EC2 인스턴스에 있어야 합니다.
다음 작업에서는 Amazon EC2 인스턴스에 GoldenGate 허브를 설정합니다. 이 섹션에서는 다음 작업에 대해 자세히 설명합니다.
Oracle GoldenGate 하위 디렉터리 생성
GLOBALS 파라미터 파일 업데이트
mgr.prm 파일 구성 및 관리자 시작
Amazon EC2 명령줄 셸과 ggsci(Oracle GoldenGate 명령 인터프리터)를 사용하여 Oracle GoldenGate 디렉터리에서 하위 디렉터리를 생성합니다. gg 디렉터리 아래에 하위 디렉터리가 생성되며 이러한 하위 디렉터리에는 파라미터, 보고서 및 체크포인트 파일에 대한 디렉터리가 포함됩니다.
prompt$ cd /gg prompt$ ./ggsci GGSCI> CREATE SUBDIRS
Amazon EC2 명령줄 셸을 사용하여 GLOBALS 파라미터 파일을 생성합니다. 모든 GoldenGate 프로세스에 영향을 주는 파라미터는 GLOBALS 파라미터 파일에 정의되어 있습니다. 다음 예제에서는 필요한 파일을 생성합니다.
$ cd $GGHOME $ vi GLOBALS CheckpointTable oggadm1.oggchkpt
Oracle GoldenGate 허브 설치 및 구성의 마지막 단계는 관리자를 구성하는 것입니다. 다음 줄을 mgr.prm 파일에 추가하고 ggsci를 사용하여 관리자를 시작합니다.
PORT 8199 PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
GGSCI> start mgr
이러한 단계를 완료했으면 Oracle GoldenGate 허브를 사용할 수 있습니다. 다음으로 원본 및 대상 데이터베이스를 설치합니다.
Amazon RDS에서 GoldenGate와 함께 사용할 원본 데이터베이스 설정
소스 데이터베이스에서 Oracle Database 12c 이상을 실행 중인 경우 다음 작업을 완료하여 GoldenGate에 사용할 원본 데이터베이스를 설정합니다.
ENABLE_GOLDENGATE_REPLICATION 파라미터를 True로 설정합니다. 이 파라미터는 원본 데이터베이스에 대한 보충 로깅을 사용하도록 설정합니다. 원본 데이터베이스가 Amazon RDS DB 인스턴스에 있는 경우 파라미터 그룹을 DB 인스턴스에 할당하고 ENABLE_GOLDENGATE_REPLICATION 파라미터를 true로 설정해야 합니다. ENABLE_GOLDENGATE_REPLICATION 파라미터에 대한 자세한 내용은 Oracle 설명서를 참조하세요.
Oracle GoldenGate 원본 데이터베이스에 대한 보관된 다시 실행 로그의 보존 기간을 설정합니다.
원본 데이터베이스에서 GoldenGate 사용자 계정을 생성합니다.
Oracle GoldenGate 사용자에게 필요한 권한을 부여합니다.
Oracle GoldenGate 허브의 tnsnames.ora 파일에 원본 데이터베이스의 TNS 별칭을 추가합니다.
원본 DB에서 보충 로깅 사용
ENABLE_GOLDENGATE_REPLICATION 파라미터를 True로 설정하는 경우 원본 데이터베이스에 대한 보충 로깅이 사용되며 필요한 GoldenGate 권한이 구성됩니다. 원본 데이터베이스가 Amazon RDS DB 인스턴스에 있는 경우 파라미터 그룹을 DB 인스턴스에 할당하고 ENABLE_GOLDENGATE_REPLICATION을 true로 설정해야 합니다. ENABLE_GOLDENGATE_REPLICATION에 대한 자세한 내용은 Oracle 설명서를 참조하세요.
원본 DB에서 로그 보존 기간 설정
또한 원본 데이터베이스에서 보관된 다시 실행 로그가 유지되어야 합니다. 예를 들어 보관된 다시 실행 로그의 보존 기간을 24시간으로 설정합니다.
exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24);
로그 보존 기간은 시간 단위로 지정합니다. 이 기간은 원본 인스턴스의 잠재적 가동 중지 시간, 잠재적 통신 시간, 원본 인스턴스의 네트워킹 문제가 발생할 잠재적 기간보다 길어야 합니다. 이러한 기간을 통해 Oracle GoldenGate는 필요에 따라 원본 인스턴스에서 로그를 복구할 수 있습니다.
로그 보존 기간으로 필요한 절대 최소값은 1시간입니다. 로그 보존을 활성화하지 않거나 보존 값이 너무 작으면 다음 메시지가 표시됩니다.
2014-03-06 06:17:27 ERROR OGG-00446 error 2 (No such file or directory) opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306Not able to establish initial position for begin time 2014-03-06 06:16:55.
로그는 DB 인스턴스에 보관됩니다. 인스턴스에 파일을 저장할 스토리지가 충분한지 확인합니다. 지난 X시간 동안 사용한 공간의 양을 확인하려면 다음 쿼리를 사용하고 X는 시간으로 바꾸십시오.
SELECT SUM(BLOCKS * BLOCK_SIZE) BYTES FROM V$ARCHIVED_LOG WHERE NEXT_TIME>=SYSDATE-X/24 AND DEST_ID=1; 원본에서 사용자 계정 만들기
GoldenGate는 데이터베이스 사용자로 실행되며 원본 데이터베이스에 대한 다시 실행 및 아카이브 로그에 액세스할 수 있는 적절한 데이터베이스 권한이 필요합니다. 이를 제공하려면 원본 데이터베이스에 GoldenGate 사용자 계정을 생성합니다. GoldenGate 사용자 계정 권한에 대한 자세한 내용은 Oracle 설명서의 섹션 4, 섹션 4.4 및 표 4.1을(를) 참조하세요.
다음 문은 oggadm1 사용자 계정을 생성합니다.
CREATE TABLESPACE administrator; CREATE USER oggadm1 IDENTIFIED BY "password" DEFAULT TABLESPACE ADMINISTRATOR TEMPORARY TABLESPACE TEMP; 원본 DB에 대한 계정 권한 부여
SQL 명령 grant와 rdsadmin.rdsadmin_util 프로시저 grant_sys_object를 사용하여 Oracle GoldenGate 사용자 계정에 필요한 권한을 부여합니다. 다음 문은 oggadm1 사용자에게 권한을 부여합니다.
GRANT CREATE SESSION, ALTER SESSION TO oggadm1; GRANT RESOURCE TO oggadm1; GRANT SELECT ANY DICTIONARY TO oggadm1; GRANT FLASHBACK ANY TABLE TO oggadm1; GRANT SELECT ANY TABLE TO oggadm1; GRANT SELECT_CATALOG_ROLE TO rds_master_user_name WITH ADMIN OPTION; exec rdsadmin.rdsadmin_util.grant_sys_object ('DBA_CLUSTERS', 'OGGADM1'); GRANT EXECUTE ON DBMS_FLASHBACK TO oggadm1; GRANT SELECT ON SYS.V_$DATABASE TO oggadm1; GRANT ALTER ANY TABLE TO oggadm1;
마지막으로 GoldenGate 관리자가 되도록 사용자 계정에 필요한 권한을 부여합니다. 권한 부여 dbms_goldengate_auth 또는 rdsadmin_dbms_goldengate_auth를 수행할 때 사용하는 패키지는 Oracle DB 엔진 버전에 따라 다릅니다.
Oracle Database 12c 릴리스 2(12.2) 이하 Oracle DB 버전의 경우 다음 PL/SQL 프로그램을 실행합니다.
exec dbms_goldengate_auth.grant_admin_privilege (grantee=>'OGGADM1', privilege_type=>'capture', grant_select_privileges=>true, do_grants=>TRUE);
패치 수준 12.2.ru-12.2.0.1.rur-2019-04.12c 이상이 필요한 Oracle Database 12c 릴리스 2(12.2) 이상 Oracle DB 버전의 경우 다음 PL/SQL 프로그램을 실행합니다.
exec rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege (grantee=>'OGGADM1', privilege_type=>'capture', grant_select_privileges=>true, do_grants=>TRUE);
권한을 취소하려면 동일한 패키지의 revoke_admin_privilege 프로시저를 사용합니다.
원본 DB에 대한 TNS 별칭 추가
Oracle 홈의 $ORACLE_HOME/network/admin/tnsnames.ora에 다음 항목을 추가하여 EXTRACT 프로세스에서 사용할 수 있습니다. tnsnames.ora 파일에 대한 자세한 내용은 Oracle 설명서를 참조하세요.
OGGSOURCE= (DESCRIPTION= (ENABLE=BROKEN) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-source.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200))) (CONNECT_DATA=(SID=ORCL)) ) Amazon RDS에서 GoldenGate와 함께 사용할 대상 데이터베이스 설정
다음 작업은 GoldenGate를 사용할 대상 DB 인스턴스를 설정합니다.
ENABLE_GOLDENGATE_REPLICATION 파라미터를 TRUE로 설정합니다. 대상 데이터베이스가 Amazon RDS DB 인스턴스에 있는 경우 파라미터 그룹을 DB 인스턴스에 할당하고 ENABLE_GOLDENGATE_REPLICATION 파라미터를 TRUE로 설정해야 합니다. ENABLE_GOLDENGATE_REPLICATION 파라미터에 대한 자세한 내용은 Oracle 설명서를 참조하세요.
대상 데이터베이스에서 GoldenGate 사용자 계정 생성 및 관리
Oracle GoldenGate 사용자에게 필요한 권한 부여
Oracle GoldenGate 허브의 tnsnames.ora에 대상 데이터베이스의 TNS 별칭을 추가합니다.
대상 DB에서 사용자 계정 생성
GoldenGate는 데이터베이스 사용자로 실행되며 적절한 데이터베이스 권한이 필요합니다. 이러한 권한을 부여하려면 대상 데이터베이스에 GoldenGate 사용자 계정을 생성합니다.
다음 문은 oggadm1이라는 사용자를 생성합니다.
CREATE TABLESPACE administrator; CREATE TABLESPACE administrator_idx; CREATE USER oggadm1 IDENTIFIED BY "password" DEFAULT TABLESPACE administrator TEMPORARY TABLESPACE temp; ALTER USER oggadm1 QUOTA UNLIMITED ON administrator; ALTER USER oggadm1 QUOTA UNLIMITED ON administrator_idx; 대상 DB에서 계정 권한 부여
대상 DB에서 Oracle GoldenGate 사용자 계정에 필요한 권한을 부여합니다. 다음 예제에서는 oggadm1에 권한을 부여합니다.
GRANT CREATE SESSION TO oggadm1; GRANT ALTER SESSION TO oggadm1; GRANT CREATE CLUSTER TO oggadm1; GRANT CREATE INDEXTYPE TO oggadm1; GRANT CREATE OPERATOR TO oggadm1; GRANT CREATE PROCEDURE TO oggadm1; GRANT CREATE SEQUENCE TO oggadm1; GRANT CREATE TABLE TO oggadm1; GRANT CREATE TRIGGER TO oggadm1; GRANT CREATE TYPE TO oggadm1; GRANT SELECT ANY DICTIONARY TO oggadm1; GRANT CREATE ANY TABLE TO oggadm1; GRANT ALTER ANY TABLE TO oggadm1; GRANT LOCK ANY TABLE TO oggadm1; GRANT SELECT ANY TABLE TO oggadm1; GRANT INSERT ANY TABLE TO oggadm1; GRANT UPDATE ANY TABLE TO oggadm1; GRANT DELETE ANY TABLE TO oggadm1;
마지막으로 GoldenGate 관리자가 되도록 사용자 계정에 필요한 권한을 부여합니다. 권한 부여 dbms_goldengate_auth 또는 rdsadmin_dbms_goldengate_auth를 수행할 때 사용하는 패키지는 Oracle DB 엔진 버전에 따라 다릅니다.
Oracle Database 12c 릴리스 2(12.2) 이하 Oracle DB 버전의 경우 다음 PL/SQL 프로그램을 실행합니다.
exec dbms_goldengate_auth.grant_admin_privilege (grantee=>'OGGADM1', privilege_type=>'capture', grant_select_privileges=>true, do_grants=>TRUE);
패치 수준 12.2.ru-12.2.0.1.rur-2019-04.12c 이상이 필요한 Oracle Database 12c 릴리스 2(12.2) 이상 Oracle DB 버전의 경우 다음 PL/SQL 프로그램을 실행합니다.
exec rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege (grantee=>'OGGADM1', privilege_type=>'capture', grant_select_privileges=>true, do_grants=>TRUE);
권한을 취소하려면 동일한 패키지의 revoke_admin_privilege 프로시저를 사용합니다.
대상 DB에 대한 TNS 별칭 추가
Oracle 홈의 $ORACLE_HOME/network/admin/tnsnames.ora에 다음 항목을 추가하여 REPLICAT 프로세스에서 사용할 수 있습니다. tnsname.ora 파일에 대한 자세한 내용은 Oracle 설명서를 참조하세요.
OGGTARGET= (DESCRIPTION= (ENABLE=BROKEN) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-target.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200))) (CONNECT_DATA=(SID=ORCL)) ) GoldenGate의 EXTRACT 및 REPLICAT 유틸리티로 작업
GoldenGate 유틸리티인 EXTRACT와 REPLICAT는 함께 작동하여 트레일 파일을 사용한 증분형 트랜잭션 복제를 통해 원본 및 대상 데이터베이스의 동기 상태를 유지합니다. 원본 데이터베이스에 대해 발생하는 모든 변경 내용은 EXTRACT에 의해 자동으로 감지되고 서식이 지정되어 Oracle GoldenGate 온프레미스 또는 EC2 인스턴스 허브의 트레일 파일로 전송됩니다. 초기 로드가 완료된 후에는 REPLICAT 유틸리티에서 이러한 파일의 데이터를 읽어 대상 데이터베이스로 복제합니다.
Oracle GoldenGate EXTRACT 유틸리티 실행
EXTRACT 유틸리티는 원본 데이터베이스의 데이터를 검색 및 변환하고 트레일 파일로 출력합니다. EXTRACT는 트랜잭션 세부 정보를 메모리나 임시 디스크 스토리지의 대기열에 저장합니다. 트랜잭션이 원본 데이터베이스에 커밋되면 EXTRACT가 모든 트랜잭션 세부 정보를 추적 파일로 플러시합니다. 추적 파일은 이러한 세부 정보를 Oracle GoldenGate 온프레미스 또는 EC2 인스턴스 허브로 라우팅한 다음 대상 데이터베이스로 라우팅합니다.
다음 작업에서는 EXTRACT 유틸리티를 활성화하고 시작합니다.
Oracle GoldenGate 허브(온프레미스 또는 EC2 인스턴스)에서 EXTRACT 파라미터 파일을 구성합니다. 다음 목록은 예제 EXTRACT 파라미터 파일을 보여 줍니다.
EXTRACT EABC SETENV (ORACLE_SID=ORCL) SETENV (NLSLANG=AL32UTF8) USERID oggadm1@OGGSOURCE, PASSWORD XXXXXX EXTTRAIL /path/to/goldengate/dirdat/ab IGNOREREPLICATES GETAPPLOPS TRANLOGOPTIONS EXCLUDEUSER OGGADM1 TABLE EXAMPLE.TABLE;
Oracle GoldenGate 허브에서 Oracle GoldenGate 명령줄 인터페이스(ggsci)를 시작합니다. 원본 데이터베이스에 로그인합니다. 다음 예제에서는 로그인 형식을 보여 줍니다.
dblogin userid <user>@<db tnsname>
데이터베이스의 체크포인트 테이블을 추가합니다.
add checkpointtable
데이터베이스 테이블에 대한 보충 로깅을 사용하기 위해 트랜잭션 데이터를 추가합니다.
add trandata <user>.<table>
또는 데이터베이스의 모든 테이블에 대해 보충 로깅을 사용하기 위해 트랜잭션 데이터를 추가할 수도 있습니다.
add trandata <user>.*
ggsci 명령줄에서 다음 명령을 사용하여 EXTRACT 유틸리티를 활성화합니다.
add extract <extract name> tranlog, INTEGRATED tranlog, begin now add exttrail <path-to-trail-from-the param-file> extract <extractname-from-paramfile>, MEGABYTES Xm
EXTRACT 유틸리티를 데이터베이스에 등록하여 보관 로그가 삭제되지 않도록 합니다. 이렇게 하면 필요할 경우 이전의 커밋되지 않은 트랜잭션을 복구할 수 있습니다. EXTRACT 유틸리티를 데이터베이스에 등록하려면 다음 명령을 사용합니다.
register EXTRACT <extract process name>, DATABASE
EXTRACT 유틸리티를 시작하려면 다음 명령을 사용합니다.
start <extract process name>
Oracle GoldenGate REPLICAT 유틸리티 실행
REPLICAT 유틸리티는 트레일 파일의 트랜잭션 정보를 대상 데이터베이스로 "푸시"하는 데 사용됩니다.
다음 작업에서는 REPLICAT 유틸리티를 활성화하고 시작합니다.
Oracle GoldenGate 허브(온프레미스 또는 EC2 인스턴스)에서 REPLICAT 파라미터 파일을 구성합니다. 다음 목록은 예제 REPLICAT 파라미터 파일을 보여 줍니다.
REPLICAT RABC SETENV (ORACLE_SID=ORCL) SETENV (NLSLANG=AL32UTF8) USERID oggadm1@OGGTARGET, password XXXXXX ASSUMETARGETDEFS MAP EXAMPLE.TABLE, TARGET EXAMPLE.TABLE;
Oracle GoldenGate 명령줄 인터페이스(ggsci)를 시작합니다. 대상 데이터베이스에 로그인합니다. 다음 예제에서는 로그인 형식을 보여 줍니다.
dblogin userid <user>@<db tnsname>
ggsci 명령줄을 사용하여 체크포인트 테이블을 추가합니다. 표시된 사용자는 대상 테이블 스키마 소유자가 아니라 Oracle GoldenGate 사용자 계정이어야 합니다. 다음 예제에서는 gg_checkpoint라는 체크포인트 테이블을 생성합니다.
add checkpointtable <user>.gg_checkpoint
REPLICAT 유틸리티를 활성화하려면 다음 명령을 사용합니다.
add replicat <replicat name> EXTTRAIL <extract trail file> CHECKPOINTTABLE <user>.gg_checkpoint
REPLICAT 유틸리티를 시작하려면 다음 명령을 사용합니다.
start <replicat name>
Oracle GoldenGate 문제 해결
이 섹션에서는 Amazon RDS와 함께 Oracle GoldenGate를 사용할 때 가장 일반적으로 발생하는 문제를 설명합니다.
주제
로그 보존
Oracle GoldenGate 및 Amazon RDS를 사용하려면 로그 보존을 사용 설정해야 합니다.
로그 보존 기간은 시간 단위로 지정합니다. 이 기간은 원본 인스턴스의 잠재적 가동 중지 시간, 잠재적 통신 시간, 원본 인스턴스의 네트워킹 문제가 발생할 잠재적 기간보다 길어야 합니다. 이러한 기간을 통해 Oracle GoldenGate는 필요에 따라 원본 인스턴스에서 로그를 복구할 수 있습니다.
로그 보존 기간으로 필요한 절대 최소값은 1시간입니다. 로그 보존을 활성화하지 않거나 보존 값이 너무 작으면 다음 메시지가 표시됩니다.
2014-03-06 06:17:27 ERROR OGG-00446 error 2 (No such file or directory) opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306Not able to establish initial position for begin time 2014-03-06 06:16:55. Oracle GoldenGate는 제대로 구성된 것으로 보이나 복제가 작동하지 않음
기존 테이블의 경우 Oracle GoldenGate가 작업을 수행할 SCN을 Oracle GoldenGate에 알려 주어야 합니다. 이 문제를 해결하려면 다음 단계를 수행하세요.
Oracle GoldenGate 명령줄 인터페이스(ggsci)를 시작합니다. 원본 데이터베이스에 로그인합니다. 다음 예제에서는 로그인 형식을 보여 줍니다.
dblogin userid <user>@<db tnsname>
ggsci 명령줄을 사용하여 EXTRACT 프로세스에 대한 시작 SCN을 설정합니다. 다음 예제에서는 추출을 위한 SCN을 223274로 설정합니다.
ALTER EXTRACT <extract process name> SCN 223274 start <extract process name>
대상 데이터베이스에 로그인합니다. 다음 예제에서는 로그인 형식을 보여 줍니다.
dblogin userid <user>@<db tnsname>
ggsci 명령줄을 사용하여 REPLICAT 프로세스에 대한 시작 SCN을 설정합니다. 다음 예제에서는 REPLICAT을 위한 SCN을 223274로 설정합니다.
start <replicat process name> atcsn 223274
sys."_DBA_APPLY_CDR_INFO"에 대한 쿼리로 인해 통합 REPLICAT가 느려집니다.
Oracle GoldenGate 충돌 감지 및 해결(CDR) 기능은 기본적인 충돌 해결 루틴을 제공합니다. 예를 들어 CDR은 INSERT 문의 고유한 충돌 문제를 해결할 수 있습니다.
CDR이 충돌을 해결할 때, 일시적으로 예외 테이블 _DBA_APPLY_CDR_INFO에 레코드를 삽입할 수 있습니다. 통합 REPLICAT는 나중에 이러한 레코드를 삭제합니다. 드문 경우에, 통합 REPLICAT는 많은 수의 충돌을 처리할 수 있지만 새로운 통합 REPLICAT는 이를 대체하지 않습니다. _DBA_APPLY_CDR_INFO의 기존 행은 제거되지 않고 분리됩니다. 새로운 통합 REPLICAT 프로세스는 _DBA_APPLY_CDR_INFO에서 분리된 행을 쿼리하기 때문에 속도가 느려집니다.
_DBA_APPLY_CDR_INFO에서 모든 행을 제거하려면 Amazon RDS 프로시저 rdsadmin_util.truncate_apply$_cdr_info를 사용합니다. 이 프로시저는 2020년 10월 릴리스 및 패치 업데이트의 일부로 릴리스되었습니다. 이 프로시저는 다음 데이터베이스 버전에서 사용할 수 있습니다.
|