データベース接続の準備

Oracle GoldenGate for PostgreSQLのデータベース接続、システムおよびパラメータ設定の構成について学習します。

Oracle GoldenGate for PostgreSQLは、事前にパッケージ化されているODBCドライバを使用してPostgreSQLデータベースに接続します。接続はデータ・ソース名(DSN)を使用するか、直接接続を使用してデータベース・サーバーのホスト、ポート、データベースおよびその他の情報を提供することによって確立できます。

DSN接続を使用する場合は、接続の詳細をodbc.iniファイルにリストする必要がありますが、直接エントリを使用する場合は、管理サービスのWebインタフェースまたは管理クライアントを介してデータベース接続を追加するときに手動で入力します。

ノート: PgBouncerは、Oracle GoldenGate接続ではサポートされません。

ノート: Oracle GoldenGateでは、Pgpoolを使用するPostgreSQLへの接続はサポートされていません。

次に示すステップを実行してDSNエントリを作成した後、または直接接続を使用する予定がある場合は、「データベース接続の追加」トピックに進み、データベース接続の作成方法を確認します。

LinuxでのDSN接続の構成

Oracle GoldenGateプロセス用にDSN接続を作成するには、最初にOracle GoldenGate for PostgreSQLデプロイメント用の環境変数を追加してから、接続属性を格納するodbc.iniファイルを作成する必要があります。

  1. サービス・マネージャのWebインタフェースにログインします。

  2. 左側のナビゲーション・ペインで、「デプロイメント」をクリックし、Oracle GoldenGate PostgreSQLデプロイメントを選択します。これにより、デプロイメントの様々な設定が展開されます。

  3. 「構成」をクリックし、「環境変数」の横にあるプラス記号(+)を選択します。

  4. 使用可能な2つのフィールドに次の情報を入力します。「環境変数値」フィールドでは、odbc.iniファイルの絶対パスであることを確認します。

    環境変数名 = ODBCINI

    環境変数値 = /ogg/deployment/pgsql/odbc.ini

    PostgreSQLのodbc.ini環境変数を設定するための「環境変数の追加」ダイアログ・ボックス。

  5. 「発行」をクリックして新しい変数を作成し、変更を有効にします「デプロイメント」ペインからデプロイメントを再起動します。

  6. Oracle GoldenGateインストールのdeploymentフォルダで、odbc.iniファイルを手動で作成し、このファイルにデータ・ソースを追加します。

DSNファイルを作成するときは、次の最小設定を使用します。

次に、2つの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データベースとともにインストールされたFederic Information Processing Standards (FIPS)対応システムから実行されると、次のエラーが生成されます。

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がエラーで異常終了します。

14未満のPostgreSQLデータベース・バージョンを実行しているFIPS対応システムでExtractを実行するには、次のステップを実行します。

  1. postgresql.confファイルを変更して、password_encryptionオプションをscram-sha-256に設定します。

  2. md5はFIPS対応システムではサポートされていないため、pg_hba.confファイルを変更してMethodオプションをscram-sha-256に設定します。ただし、これはオプションのステップです。

    Oracle GoldenGate Extractで使用されるデータベース・ユーザーのパスワードは、password_encryptionオプションをscram-sha-256に設定した後で、データベース・ユーザーがすでに作成されている場合は再生成または変更する必要があります。同じパスワードを使用して再生成できます。

    たとえば、adminという名前のデータベース・ユーザーがpassword123としてパスワードを使用する場合、scram-sha-256暗号化を使用して同じパスワードを再生成できます。

PostgreSQLのSSLサポートの構成

SSLは、PostgreSQL構成ファイル($PGDATA/postgresql.conf )で構成パラメータ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)に設定すると、「Crypto Protocol Version」接続オプションで指定されたSSLプロトコルを使用してデータが暗号化されます。指定された暗号化方法がデータベース・サーバーでサポートされていない場合は、接続に失敗してエラーが返されます。

6 (RequestSSL)に設定すると、サーバーがSSL用に構成されていれば、ログイン・リクエストおよびデータはSSLを使用して暗号化されます。サーバーがSSL用に構成されていない場合は、暗号化されていない接続が確立されます。使用するSSLプロトコルは、「Crypto Protocol Version」接続オプションの設定によって決まります。

データベース・サーバー/クライアント証明書も検証する必要がある場合は、対応するKeyStoreファイルを作成し、次に示したODBC DSN属性をodbc.iniファイルに適宜設定する必要があります。

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

ただし、SSLCertおよびSSLKeyがすでに指定されている場合、KeyStoreファイルは(サーバーによる)クライアント証明書の検証には必須ではありません。ノート: Azure Database for PostgreSQLのデフォルトでは、デフォルトでSSL接続を強制します。この要件に従うには、ここにリストされている要件を実行するか、またはオプションで、Microsoft Azure Portalを使用して、データベース・インスタンスの接続セキュリティ設定からSSL接続の強制を無効にできます。