데이터베이스 구성
캡처용 데이터베이스 소프트웨어
PostgreSQL 데이터베이스에서 캡처하려면 Oracle GoldenGate에서 데이터베이스에 대한 test_decoding 데이터베이스 플러그인을 설치해야 합니다. 이 플러그인은 데이터베이스가 설치될 때 기본적으로 설치되지 않았을 수 있습니다.
예제에 표시된 것처럼 postgresqlversion#-contrib 패키지가 데이터베이스 서버에 설치되어 있는지 확인합니다.
sudo yum install postgresql14-contrib
PostgreSQL 데이터베이스 구성 파일의 매개변수
Oracle GoldenGate의 경우 PostgreSQL 데이터베이스 구성 파일 $PGDATA/postgresql.conf에서 다음 매개변수를 구성합니다.
주: 이러한 변경사항은 Oracle GoldenGate가 캡처할 기본 PostgreSQL 데이터베이스와 기본 데이터베이스 실패 시 Oracle GoldenGate가 캡처할 수 있는 대기 데이터베이스에 필요합니다.
-
Extract 또는 Replicat 원격 접속의 경우 원격 데이터베이스 접속을 허용하도록 PostgreSQL
listen_addresses를 설정합니다. 예:listen_addresses=remotehost_ip_address주:
pg_hba.conf파일을 구성하여 Oracle GoldenGate 호스트로부터의 접속을 허용하도록 클라이언트 인증이 설정되었는지 확인하십시오. 자세한 내용은 다음 문서를 참조하십시오. pg_hba.conf 파일 -
Oracle GoldenGate Extract를 지원하려면 먼저 쓰기 로깅을
logical로 설정해야 합니다. 그러면 트랜잭션 레코드 디코딩을 지원하는 데 필요한 정보가 추가됩니다.Extract당 열린 슬롯 1개를 수용하도록 최대 복제 슬롯 수를 설정해야 하며, 일반적으로 데이터베이스당 Extract가 두 개 이상 필요하지 않습니다. 예를 들어, PostgreSQL 고유 복제가 이미 사용 중이고 현재 구성된 모든 복제 슬롯을 사용 중인 경우 Extract 등록을 허용하도록 값을 늘리십시오.
최대 먼저 쓰기 송신기는 최대 복제 슬롯 값과 일치하도록 설정해야 합니다.
선택적으로 먼저 쓰기 로그에서 커밋 시간 기록을 활성화할 수 있으며, 동시에 논리적 먼저 쓰기 로깅이 활성화되면 해당 시점부터 올바른 시간 기록 값과 함께 첫번째 DML 커밋 레코드를 추적합니다. 그렇지 않으면 Oracle GoldenGate 캡처에서 발생한 첫번째 레코드에 잘못된 커밋 시간 기록이 포함됩니다.
wal_level = logical # set to logical for Capture max_replication_slots = 1 # max number of replication slots, # one slot per Extract/client max_wal_senders = 1 # one sender per max repl slot track_commit_timestamp = on # optional, correlates tx commit time # with begin tx log record (useful for # timestamp-based positioning) -
앞의 사항을 변경한 후 데이터베이스를 재시작합니다.
다음 지침에 따라 PostgreSQL용 Azure, Amazon Aurora PostgreSQL, PostgreSQL용 Amazon RDS, PostgreSQL용 Google AlloyDB 및 PostgreSQL용 Google Cloud SQL에 대한 데이터베이스 설정을 관리할 수 있습니다.
Azure Database for PostgreSQL
PostgreSQL용 Azure 데이터베이스에 대해 PostgreSQL Extract용 Oracle GoldenGate를 구성할 때는 논리적 디코딩을 사용으로 설정하고 LOGICAL로 설정해야 합니다.
지침은 Microsoft 설명서를 참조하십시오.
https://learn.microsoft.com/en-us/azure/postgresql/
Azure Database for PostgreSQL의 다른 데이터베이스 설정은 데이터베이스 인스턴스의 서버 매개변수 섹션을 통해 관리할 수 있습니다.
Azure Database for PostgreSQL 인스턴스에 연결하려면 기본 Azure 연결 보안 설정에 SSL 연결이 필요합니다. 이 요구 사항을 준수하려면 Oracle GoldenGate와의 SSL 연결을 지원하는 추가 단계가 필요합니다.
자세한 내용은 Configuring SSL Support for PostgreSQL에 나열된 내용을 참조하십시오.
Amazon Aurora PostgreSQL 및 Amazon RDS(PostgreSQL)
Amazon Aurora PostgreSQL 및 Amazon RDS for PostgreSQL의 경우 데이터베이스 설정이 매개변수 그룹 내에서 수정됩니다.
새 매개변수 그룹 내에서 데이터베이스 설정을 편집하고 데이터베이스 인스턴스에 지정하는 방법에 대한 자세한 내용은 Amazon AWS 설명서를 검토하십시오.
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html
-
이전에 나열된 데이터베이스 구성 설정이 올바른지 확인하고 Instance에 할당된 파라미터 그룹에서 설정을 확인합니다.
-
Amazon 데이터베이스 서비스에 대한
wal_level설정은rds.logical_replication라는 매개변수로 구성됩니다. 이 매개변수의 기본값은0이며, 데이터베이스가 Oracle GoldenGate Extract에 대한 소스 데이터베이스를 사용할 경우1로 설정해야 합니다. -
Amazon RDS는
rds문자열이 있는 복제 슬롯 이름 앞에 추가하거나 시작을 지원하지 않습니다. 복제 슬롯을 만들기 위해 Oracle GoldenGate Extract에서 사용하는 명령은 복제 슬롯 이름이rds문자열로 시작하는 경우 오류를 반환합니다. 예를 들어, 다음 예에 표시된 것처럼 이 오류를 방지하기 위해 복제 슬롯의 이름을rdscdc대신ordscdc로 지정할 수 있습니다.select slot_name from pg_create_logical_replication_slot('ordscdc', 'test_decoding');이 명령은
ordscdc복제 슬롯을 추가합니다. 그러나 복제 슬롯 이름을rdscdc로 사용할 경우 다음 오류가 발생합니다.ERROR: must be superuser or replication role to use logical replication slots in the 'rds' namespace
제한:
Amazon Aurora PostgreSQL 버전 12.17에서 대문자 SHOW 명령이 실행되면 다음 오류가 보고됩니다.
"ERROR: must be superuser or replication role to run this operation."
이 오류를 방지하려면 소문자 SHOW 명령을 사용해야 합니다.
Google AlloyDB for PostgreSQL
Oracle GoldenGate 릴리스 21.14부터 Oracle GoldenGate는 PostgreSQL에 대해 Google AlloyDB를 지원합니다. PostgreSQL에 대해 Google AlloyDB에 대해 PostgreSQL Extract용 Oracle GoldenGate를 구성하는 경우 alloydb.logical_decoding configuration 매개변수(플래그)를 ON로 설정해야 합니다.
Google Cloud SQL for PostgreSQL
PostgreSQL 데이터베이스의 Google Cloud SQL에 대해 PostgreSQL Extract용 Oracle GoldenGate를 구성하는 경우 cloudsql.logical_decoding 변수를 ON로 설정하여 논리적 디코딩을 설정해야 합니다. 이 데이터베이스 플래그를 사용으로 설정하는 방법에 대해 Google에서 제공하는 지침을 따릅니다. 자세한 내용은 https://cloud.google.com/sql/docs/postgres/flags#postgres-l을 참조하십시오.