準備資料庫連線

瞭解如何設定 Oracle GoldenGate for PostgreSQL 的資料庫連線、系統和參數設定值。

Oracle GoldenGate for PostgreSQL 會使用預先封裝的 ODBC 驅動程式連線至 PostgreSQL 資料庫。可以使用資料來源名稱 (DSN) 建立連線,或使用直接連線並提供資料庫伺服器主機、連接埠、資料庫和其他資訊。

使用 DSN 連線時,必須將連線詳細資訊列在 odbc.ini 檔案中,當您將資料庫連線新增至「管理服務」的 Web 介面或透過「管理從屬端」時,會手動輸入使用直接項目。

注意:Oracle GoldenGate 連線不支援 PgBouncer。

注意:Oracle GoldenGate 不支援使用 Pgpool 的 PostgreSQL 連線。

執行下方提供的步驟來建立 DSN 項目,或打算使用直接連線之後,請前往新增資料庫連線主題,瞭解如何建立資料庫連線。

在 Linux 中設定 DSN 連線

若要建立 Oracle GoldenGate 處理作業的 DSN 連線,您必須先新增 Oracle GoldenGate for PostgreSQL 部署的環境變數,然後建立 odbc.ini 檔案來儲存連線屬性。

  1. 登入「服務管理程式」Web 介面。

  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. 若要設定 Oracle GoldenGate 中 PostgreSQL 部署的資料庫連線,請參閱新增資料庫連線。

使用版本 14 或更低的版本連線至啟用 FIPS 的 PostgreSQL 系統

從安裝 PostgreSQL 資料庫低於 14 版的啟用 Federal Information Processing Standards (FIPS) 的系統執行 Oracle GoldenGate Extract 時,會產生下列錯誤:

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 因發生錯誤而中止。

若要在啟用 FIPS 的系統上執行 PostgreSQL 資料庫版本低於 14 的 Extract,請執行下列步驟:

  1. 修改 postgresql.conf 檔案,將 password_encryption 選項設為 scram-sha-256。

  2. 修改 pg_hba.conf 檔案,將 Method 選項設為 scram-sha-256,因為啟用 FIPS 的系統不支援 md5。不過,這是選擇性步驟。

    在 password_encryption 選項設為 scram-sha-256 之後,如果已經建立資料庫使用者,則必須重新產生或修改 Oracle GoldenGate Extract 所使用之資料庫使用者的密碼。您可以使用相同的密碼重新產生。

    例如,如果名為 admin 的資料庫使用者使用 password123 的密碼,則可以使用 scram-sha-256 加密重新產生相同的密碼。

配置 PostgreSQL 的 SSL 支援

您可以在 PostgreSQL 組態檔 ($PGDATA/postgresql.conf ) 中將組態參數 SSL 設為開啟,即可啟用 SSL。如果啟用 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 入口網站,停用從資料庫執行處理的連線安全設定值強制執行 SSL 連線。