데이터베이스 연결 준비
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 파일을 생성해야 합니다.
-
Service Manager 웹 인터페이스에 로그인합니다.
-
왼쪽 탐색 창에서 배치를 누른 다음 Oracle GoldenGate PostgreSQL 배치를 선택합니다. 이렇게 하면 배치에 대한 다양한 설정이 확장됩니다.
-
구성을 누른 다음 환경 변수 옆에 있는 더하기 기호(+)를 누릅니다.
-
두 개의 사용 가능한 필드에 다음 정보를 제공합니다. 환경 변수 값 필드의 경우
odbc.ini파일의 절대 경로인지 확인합니다.환경 변수 이름 =
ODBCINI환경 변수 값 =
/ogg/deployment/pgsql/odbc.ini
-
변경 사항을 적용하려면 제출을 눌러 새 변수를 생성한 다음 배치 창에서 배치를 재시작합니다.
-
Oracle GoldenGate 설치의
deployment폴더에odbc.ini파일을 수동으로 생성하고 이 파일에 데이터 소스를 추가합니다.
DSN 파일을 만들 때 다음 최소 설정을 사용합니다.
-
Data Source Name– Extract 또는 Replicat와 같은 Oracle GoldenGate 프로세스에서 참조할 소스 또는 대상 데이터베이스 접속의 사용자 정의 이름입니다. DSN 이름은 최대 32자의 영숫자로 허용되며 특수 문자의 밑줄(_) 및 대시(-)만 포함할 수 있습니다. -
IANAAppCodePage=4– 기본 설정이지만 데이터베이스 문자 집합이 유니코드가 아닌 경우 https://docs.progress.com/bundle/datadirect-connect-odbc-71/page/IANAAppCodePage_9.html#IANAAppCodePage_9 페이지에 지정된 지침에 따라 수정할 수 있습니다. -
InstallDir– Oracle GoldenGate PostgreSQL 전송 프로토콜 드라이버 경로의 이름이며InstallDir =./datadirect와 같은 상대 경로를 사용할 수 있습니다. -
Driver: Oracle GoldenGate PostgreSQL Wire Protocol 드라이버 파일의 이름이며Driver=./datadirect/lib/ggpsql25.so와 같은 상대 경로를 사용할 수 있습니다. -
Database: 소스 또는 대상 데이터베이스의 이름입니다. -
Hostname: 데이터베이스 호스트 IP 주소 또는 호스트 이름입니다. -
PortNumber: 데이터베이스의 수신 포트입니다. -
PostgreSQL용 Oracle GoldenGate는 PostgreSQL 접속에 대해 여러 호스트 및 포트를 지원합니다. 이 기능은 Oracle GoldenGate HA(고가용성) 설정에 유용합니다. PostgreSQL HA 설정에는 하나의 기본 및 다중 대기 서버가 있습니다. 연결 문자열 형식을 설정하여 여러 호스트를 지정할 수 있습니다.
접속 문자열 설명 db-user@host1,host2,host3/db-name모든 호스트( host1,host2,host3)에 대해 기본 PostgreSQL 데이터베이스 포트 5432를 사용하여 연결을 시도합니다.db-user@host1:1234,host2:2345,host3:3456/db-name연결 문자열에 지정된 각 호스트와 연관된 포트를 사용하여 연결을 시도합니다. db-user@host1,host2,host3:1234/db-name모든 호스트( host1,host2,host3)에서 동일한 포트 번호(1234)를 사용하는 모든 호스트입니다. 모든 호스트(host1,host2,host3)에 대해 포트 1234를 사용하여 연결을 시도합니다.db-user@host1,host2,host3:1234/db-name모든 호스트( host1,host2,host3)에서 동일한 포트 번호(1234)를 사용하는 모든 호스트입니다. 모든 호스트에 대해 포트 1234를 사용하여 연결을 시도합니다.db-user@host1:3456,host2,host3:1234/db-name포트 번호가 일부 호스트에 대해 지정되고 다른 호스트가 포트 없이 지정된 다른 형식으로 연결 문자열이 지정된 경우 마지막 또는 가장 오른쪽의 포트 지정이 연결 문자열에 지정된 포트 번호가 없는 모든 호스트에 대한 포트 번호로 사용됩니다. 연결 문자열에 표시된 대로:
db-user@host1:3456,host2,host3:1234/db-namehost2의 포트 번호는 연결 문자열에 지정된 맨 오른쪽 포트 번호인 1234입니다. -
Extract 또는 Replicat 사용자에 대해
LogonID및Password을 제공할 수도 있지만 일반 텍스트로 저장됩니다. 이러한 필드는 DSN에서 제외시키고 대신 Oracle GoldenGate 전자 지갑에 인증서 별칭으로 저장한 다음 Extract 및 Replicat에서USERIDALIAS매개변수로 참조하는 것이 좋습니다.
다음은 두 개의 DSN 항목이 있는 odbc.ini 파일의 예입니다. 아래 예제에서 사용되는 데이터 소스 이름은 PG_src 및 PG_tgt입니다.
|
|
| — |
|
-
odbc.ini파일을 저장하고 닫습니다. -
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를 실행하려면 다음 단계를 수행하십시오.
-
password_encryption옵션을scram-sha-256로 설정하도록postgresql.conf파일을 수정합니다. -
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 접속 적용을 사용 안함으로 설정할 수 있습니다.