データベース接続の準備
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ファイルを作成する必要があります。
-
サービス・マネージャのWebインタフェースにログインします。
-
左側のナビゲーション・ペインで、「デプロイメント」をクリックし、Oracle GoldenGate PostgreSQLデプロイメントを選択します。これにより、デプロイメントの様々な設定が展開されます。
-
「構成」をクリックし、「環境変数」の横にあるプラス記号(+)を選択します。
-
使用可能な2つのフィールドに次の情報を入力します。「環境変数値」フィールドでは、
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- これがデフォルト設定ですが、データベース文字セットがUnicodeでない場合は、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ワイヤ・プロトコル・ドライバ・ファイルの名前で、Driver=./datadirect/lib/ggpsql25.soのように相対パスを使用できます。 -
Database: ソース・データベースまたはターゲット・データベースの名前です。 -
Hostname: データベース・ホストのIPアドレスまたはホスト名。 -
PortNumber: データベースのリスニング・ポートです。 -
Oracle GoldenGate for PostgreSQLは、PostgreSQL接続で複数のホストおよびポートをサポートします。この機能は、Oracle GoldenGate高可用性(HA)設定で役立ちます。PostgreSQL HAセットアップでは、1つのプライマリサーバーと複数のスタンバイサーバーがあります。接続文字列形式を設定して、複数のホストを指定できます。
接続文字列 摘要 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すべてのホストで同じポート番号(1234)を使用しているすべてのホスト( host1、host2、host3)。接続は、すべてのホスト(host1、host2、host3)のポート1234を使用して試行されます。db-user@host1,host2,host3:1234/db-nameすべてのホストで同じポート番号(1234)を使用しているすべてのホスト( host1、host2、host3)。接続は、すべてのホストに対してポート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パラメータを使用してそれらを参照することをお薦めします。
次に、2つのDSNエントリを含むodbc.iniファイルの例を示します。次の例で使用されているデータ・ソース名は、PG_srcとPG_tgtです。
|
|
| — |
|
-
odbc.iniファイルを保存して閉じます。 -
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を実行するには、次のステップを実行します。
-
postgresql.confファイルを変更して、password_encryptionオプションをscram-sha-256に設定します。 -
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接続の強制を無効にできます。