데이터베이스 연결 준비

PostgreSQL용 Oracle GoldenGate에 대한 데이터베이스 접속, 시스템 및 매개변수 설정을 구성하는 방법을 알아봅니다.

PostgreSQL용 Oracle GoldenGate는 사전 패키지화된 ODBC 드라이버를 사용하여 PostgreSQL 데이터베이스에 접속합니다. DSN(데이터 소스 이름)을 사용하거나 직접 연결을 사용하여 데이터베이스 서버 호스트, 포트, 데이터베이스 및 기타 정보를 제공할 수 있습니다.

DSN 연결을 사용하려면 연결 세부 정보가 odbc.ini 파일에 나열되어야 하며, 관리 서비스의 웹 인터페이스 또는 관리 클라이언트를 통해 데이터베이스 연결을 추가할 때 직접 항목을 수동으로 입력해야 합니다.

주: PgBouncer은 Oracle GoldenGate 접속에 대해 지원되지 않습니다.

주: Oracle GoldenGate는 Pgpool를 사용하는 PostgreSQL에 대한 접속을 지원하지 않습니다.

아래 제공된 단계를 수행하여 DSN 항목을 생성하거나 직접 접속을 사용하려는 경우 데이터베이스 접속 추가 항목으로 이동하여 데이터베이스 접속 생성 방법을 확인하십시오.

Linux에서 DSN 연결 구성

Oracle GoldenGate 프로세스에 대한 DSN 접속을 생성하려면 먼저 Oracle GoldenGate for PostgreSQL 배치에 대한 환경 변수를 추가한 다음 접속 속성을 저장할 odbc.ini 파일을 생성해야 합니다.

  1. Service Manager 웹 인터페이스에 로그인합니다.

  2. 왼쪽 탐색 창에서 배치를 누른 다음 Oracle GoldenGate PostgreSQL 배치를 선택합니다. 이렇게 하면 배치에 대한 다양한 설정이 확장됩니다.

  3. 구성을 누른 다음 환경 변수 옆에 있는 더하기 기호(+)를 누릅니다.

  4. 두 개의 사용 가능한 필드에 다음 정보를 제공합니다. 환경 변수 값 필드의 경우 odbc.ini 파일의 절대 경로인지 확인합니다.

    환경 변수 이름 = ODBCINI

    환경 변수 값 = /ogg/deployment/pgsql/odbc.ini

    PostgreSQL에 대한 odbc.ini 환경 변수를 설정하기 위한 환경 변수 추가 대화 상자입니다.

  5. 변경 사항을 적용하려면 제출을 눌러 새 변수를 생성한 다음 배치 창에서 배치를 재시작합니다.

  6. Oracle GoldenGate 설치의 deployment 폴더에 odbc.ini 파일을 수동으로 생성하고 이 파일에 데이터 소스를 추가합니다.

DSN 파일을 만들 때 다음 최소 설정을 사용합니다.

다음은 두 개의 DSN 항목이 있는 odbc.ini 파일의 예입니다. 아래 예제에서 사용되는 데이터 소스 이름은 PG_src 및 PG_tgt입니다.

 

#[ODBC Data Sources]

[ODBC]

IANAAppCodePage=4

InstallDir=/datadirect

 

[PG_src]

Driver= ./datadirect/lib/ggpsql25.so

Description=Oracle GoldenGate PostgreSQL Wire Protocol

Database=sourcedb

HostName=remotehost

PortNumber=5432

 

| — |

[PG_tgt]

Driver=./datadirect/lib/ggpsql25.so

Description=Oracle GoldenGate PostgreSQL Wire Protocol

Database=targetdb

HostName=remotehost

PortNumber=5432

  1. odbc.ini 파일을 저장하고 닫습니다.

  2. PostgreSQL 배치에 대해 Oracle GoldenGate에서 데이터베이스 접속을 설정하려면 데이터베이스 접속 추가를 참조하십시오.

버전 14 이하의 FIPS 지원 PostgreSQL 시스템에 연결

Oracle GoldenGate Extract가 버전 14보다 낮은 PostgreSQL 데이터베이스와 함께 설치된 FIPS(Federal Information Processing Standards) 사용 시스템에서 실행되면 다음 오류가 발생합니다.

ERROR OGG-25359 Could not connect to server with database 'postgres', host 'localhost', port '5432' and user name 'postgres'. Error Message: connection to server at "localhost" (::1), port 5432 failed: could not encrypt password: disabled for FIPSfe_sendauth: error sending password authentication.

암호화 알고리즘 md5는 PostgreSQL 데이터베이스 버전이 14보다 낮은 기본 암호화 알고리즘이며, Extract가 오류와 함께 비정상 종료되도록 합니다.

PostgreSQL 데이터베이스 버전이 14 미만인 FIPS 사용 시스템에서 Extract를 실행하려면 다음 단계를 수행하십시오.

  1. password_encryption 옵션을 scram-sha-256로 설정하도록 postgresql.conf 파일을 수정합니다.

  2. FIPS 사용 시스템에서 md5가 지원되지 않으므로 pg_hba.conf 파일을 수정하여 Method 옵션을 scram-sha-256로 설정합니다. 그러나 이 단계는 선택 사항입니다.

    password_encryption 옵션이 scram-sha-256로 설정된 후 데이터베이스 사용자가 이미 생성된 경우 Oracle GoldenGate Extract에서 사용하는 데이터베이스 사용자의 비밀번호를 재생성하거나 수정해야 합니다. 동일한 암호를 사용하여 재생성할 수 있습니다.

    예를 들어, 이름이 admin인 데이터베이스 사용자가 password123인 비밀번호를 사용하는 경우 scram-sha-256 암호화를 사용하여 동일한 비밀번호를 재생성할 수 있습니다.

PostgreSQL에 대한 SSL 지원 구성

SSL은 PostgreSQL 구성 파일($PGDATA/postgresql.conf )에서 구성 매개변수 SSL을 on으로 설정하여 사용으로 설정할 수 있습니다. SSL이 사용으로 설정된 경우 해당 hostssl 항목이 존재하거나 pg_hba.conf 파일에 추가되어야 합니다.

SSL이 사용으로 설정된 경우 Oracle GoldenGate는 다음 코드 조각에 표시된 것처럼 루트 인증서, CRL(루트 인증 취소 목록), 서버 클라이언트 인증서 및 기본 위치의 키를 사용합니다.

~/.postgresql/root.crt
~/.postgresql/root.crl
~/.postgresql/postgresql.crt
~/.postgresql/postgresql.key

이 목록에서 원하는 엔티티를 생성하고 적절한 위치에 저장해야 합니다.

기본 위치가 아닌 위치를 사용하여 SSL 구성을 설정하는 경우 환경에 따라 다음 환경 변수를 설정해야 합니다.

PGSSLROOTCERT
PGSSLCRL
PGSSLCERT
PGSSLKEY

odbc.ini 파일에 필요한 변경 사항

SSL 지원은 $ODBCINI 파일에서 EncryptionMethod DSN 속성을 1 또는 6으로 설정하여 사용으로 설정할 수 있습니다.

0(암호화 안함)으로 설정하면 데이터가 암호화되지 않습니다.

1(SSL)로 설정된 경우 암호화 프로토콜 버전 연결 옵션에 지정된 SSL 프로토콜을 사용하여 데이터가 암호화됩니다. 지정된 암호화 방법이 데이터베이스 서버에서 지원되지 않는 경우 연결이 실패하고 드라이버가 오류를 반환합니다.

6(RequestSSL)으로 설정된 경우 서버가 SSL에 대해 구성된 경우 SSL을 사용하여 로그인 요청 및 데이터가 암호화됩니다. 서버가 SSL에 대해 구성되지 않은 경우 암호화되지 않은 연결이 설정됩니다. 사용되는 SSL 프로토콜은 암호화 프로토콜 버전 연결 옵션의 설정에 따라 결정됩니다.

데이터베이스 서버/클라이언트 인증서도 검증해야 하는 경우 해당 KeyStore 파일을 만들어야 하며 그에 따라 odbc.ini 파일에서 다음 ODBC DSN 속성을 설정해야 합니다.

KeyStore=path to .p12 keystore file KeyStorePassword=keystore-passwd TrustStore=path to root certificate ValidateServerCertificate=1

그러나 SSLCert 및 SSLKey가 이미 제공된 경우 서버에서 클라이언트 인증서 검증에 KeyStore 파일이 필수는 아닙니다. 참고: PostgreSQL용 Azure 데이터베이스는 기본적으로 SSL 연결을 적용합니다. 이 요구사항을 준수하려면 여기에 나열된 요구사항을 수행하거나 선택적으로 Microsoft Azure Portal을 사용하여 데이터베이스 인스턴스의 접속 보안 설정에서 SSL 접속 적용을 사용 안함으로 설정할 수 있습니다.