5 SQL ServerデータベースのためのOracle GoldenGateのインストール

SQL Serverデータベース用にOracle GoldenGateをインストールするための要件と方法について学習します。

トピック:

5.1 SQL ServerのためのOracle GoldenGateプロセスのオペレーティング・システム権限

次の説明に従ってオペレーティング・システム権限を割り当てます。

5.1.1 Windowsで実行するマネージャ

Managerプロセスは、Windowsサービスとして実行することも、現行ユーザーとしてインタラクティブに実行することもできます。Managerプロセスには次のものが必要です。

  • Oracle GoldenGateディレクトリ内のファイルおよびフォルダに対する完全な管理権限。

  • 証跡ファイルがOracle GoldenGateディレクトリ以外の場所に保存される場合は、証跡ファイルに対する完全な管理権限。

  • サーバーのローカル管理者グループのメンバーシップ(クラスタ内の全ノード)。

  • Windows認証を使用してリモート・データベースに接続されているExtractまたはReplicatでManagerをWindowsサービスとして実行している場合、プロセスはManagerが実行されているアカウントでデータベースへのログインを試行します。Managerのサービス・アカウントにリモートSQL Serverインスタンスへの正しいアクセス権があることを確認します。

データの取得とレプリケーションを行うプログラムのExtractとReplicatは、Managerアカウント下で動作し、Managerのオペレーティング・システム・レベルの権限を継承します。

5.2 その他のプログラムおよび設定

SQL ServerのためのOracle GoldenGateのプログラムおよび設定に関する情報を次に示します。

5.2.1 Linux用のMicrosoft ODBCドライバのインストール

リモート・ソースまたはターゲットのSQL Serverデータベースに接続するには、Linux用のMicrosoft ODBCドライバが必要です。Linuxドライバをインストールするには、次のタスクが必要です。
  1. ファイル/etc/passwdを編集して、rootユーザーに一時的なシェル・アクセス権を付与します。
    $ sudo vi /etc/passwd
  2. ファイル/etc/passwdで、rootユーザーの値を/usr/sbin/nologinから/bin/bashに変更します。ファイルを保存して閉じます。
  3. MicrosoftのRedHat Enterprise Serverのインストール手順を使用してLinux用のODBCドライバを追加し、プロンプトが表示されたら'y'と入力し、デフォルト値で次のステップを実行します。
    $ sudo su
    
    $ #RedHat Enterprise Server 7
    $ curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
    
    $ exit
    $ sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
    $ sudo ACCEPT_EULA=Y yum install msodbcsql17
    $ sudo ACCEPT_EULA=Y yum install mssql-tools
    $ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
    $ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
    $ source ~/.bashrc
  4. Linuxドライバをインストールすると、rootユーザーの元のシェル・アクセス値をリセットできます。
    $ sudo vi /etc/passwd
  5. rootユーザーの値を/bin/bashから/usr/sbin/nologinに変更します。ファイルを保存して閉じます。

5.3 SQL Serverの要件

SQL Serverデータベースで操作するために、Oracle GoldenGateは次のインスタンス、データベース、およびその他の構成と設定をサポートしています。

5.3.1 サポートされているSQL Serverのバージョン

SQL Serverインスタンス用のOracle GoldenGateを構成する際の要件は、次のとおりです。

  • Oracle GoldenGateのExtractは、WindowsにインストールされているSQL Serverをサポートしています。SQL Server Enterpriseエディションのバージョン2014、2016、2017、2019と、SQL Server Standardエディションのバージョン2016 Service Pack1 (または以降)、2017、2019をサポートしています。

  • (Extract) SQL Server 2014、2016および2017については、SQL Server変更データ取得機能に直接影響する複数の重要な問題がMicrosoft社によって特定および修正されています。このことは、適切にデータを取得するためのOracle GoldenGateの機能に影響します。Microsoftパッチを必要とする現在の既知の問題には、KB3030352、KB3166120およびKB4073684が含まれています。SQL Server 2014、2016または2017をソース・データベースとして使用する場合は、SQL Serverの対象バージョンに対応する最新のService Packまたは累積的な更新プログラムを適用することをお薦めします。

  • Oracle GoldenGateのDeliveryは、WindowsにインストールされているSQL Serverをサポートしています。SQL Server EnterpriseおよびStandardエディションのバージョン2014、2016、2017、2019がサポートされています。

  • Oracle GoldenGateでは、Azure SQLデータベース管理インスタンスのリモート取得と配信、およびAzure SQL Databaseのリモート配信がサポートされています。

  • Oracle GoldenGateは、Amazon RDS for SQL Serverのリモート・キャプチャとリモート配信をサポートしています。

5.3.2 インスタンスの要件

  • SQL Serverのサーバー名(@@SERVERNAME)はNULLにできません。

  • (Extract) Oracle GoldenGateでトランザクション・データを取得するには、ソースSQL ServerインスタンスでSQL Serverエージェントを実行している必要があり、データベースに対するSQL Server変更データ取得ジョブを実行している必要があります。データベースに対してSQL Serverトランザクション・レプリケーションも有効にしている場合は、SQL Serverログ・リーダー・エージェントを実行している必要があります。

  • TEXT、NTEXT、IMAGEのデータまたはVARCHAR(MAX)、NVARCHAR(MAX)およびVARBINARY(MAX)列のデータがmax text repl sizeオプションに設定されたSQL Serverのデフォルト・サイズを超過すると、そのサイズが拡大されます。現在のmax text repl size値は、sp_configureを使用して表示または調整します。

    ノート:

    Amazon RDS for SQL Serverの場合、インスタンスの設定を調整するには、sp_configureのかわりにパラメータ・グループを使用する必要があります。

5.3.3 データベースの要件

Oracle GoldenGateをサポートするための要件と制限事項を次に示します。

  • キャプチャおよび配信でサポートされているのはユーザー・データベースのみです。

  • Auto Update Statisticsがデータベースに対して有効になっていることを確認します。

  • データベースがSQL Serverインスタンスのバージョンの互換性レベルに設定されている必要があります。SQL Server 2014 (120)未満のデータベース互換性レベルはサポートされていません。

  • Oracle GoldenGateは、Transparent Data Encryption (TDE)で構成されたSQL Serverデータベースをサポートしています。

  • (Extract)ソース・データベースは、Microsoft SQL Serverの変更データ取得機能をサポートしている任意のリカバリ・モデルに設定できます。

  • 別のインスタンスから作成したバックアップの復元によってソース・データベースが作成された場合は、データベース所有者のSIDと新しいインスタンスのSIDを同期する必要があります。また、sp_changedbownerを使用すると、復元したデータベースを現在のログインに設定できます。

  • (AlwaysOn) Extractは、プライマリ・データベースまたは読取り専用の同期コミット・モードからの取得をサポートします。非同期コミット・モードの取得はサポートしていません。

  • Replicatのパフォーマンスに関する考慮事項: SQL Server 2016以降、Microsoftでは、データベース・オプションTARGET_RECOVERY_TIMEのデフォルト設定を0秒から60秒に変更しています。これにより、Replicatのスループットが低下することが内部テストで実証されています。Replicatのスループットが低下した場合は、TARGET_RECOVERY_TIME設定を0に調整することを検討してください。

制限事項:

  • Oracle GoldenGateはシステム・データベースのキャプチャまたは配信はサポートしません。

  • Oracle GoldenGateは、包含データベースからのキャプチャはサポートしません。

  • ソース・データベースの名前は、121文字以内にする必要があります。この制限は、サプリメンタル・ロギングの有効化に使用されるSQL Serverのストアド・プロシージャによるものです。

  • Oracle GoldenGateハートビート機能を構成する場合、SQL Serverデータベース名は107文字以内にする必要があります。

  • インメモリーOLTP (インメモリー最適化)が有効なSQL Server データベースからのキャプチャはサポートされません。データベースにメモリー最適化データ・ファイル・グループを追加すると、Oracle GoldenGateでは、データベース内のどの表に対してもサプリメンタル・ロギングを有効化できなくなります。それとは逆に、メモリー最適化データ・ファイル・グループの作成前にデータベース内のいずれかの表に対してサプリメンタル・ロギングを有効化していると、SQL Serverでは、メモリー最適化データ・ファイル・グループが作成できなくなります。

  • (AlwaysOn) AlwaysOn Availability Groupの非同期コミット・モードで構成されたデータベースからの取得はサポートされていません。

5.3.4 表の要件

取得と配信の対象に含める表には、「サポートされているSQL Serverデータ型」にリストされたデータ型のみが含まれている必要があります。

  • Oracle GoldenGateでは、ユーザー表からのトランザクションDMLのキャプチャ、ユーザー表および書込み可能ビューへの配信をサポートしています。

  • DDL操作はサポートされません。

  • Oracle GoldenGateは、SQL Serverチェンジ・データ・キャプチャで追跡する表で許可されている最大の表名および列の長さをサポートします。

  • キャプチャ元の表のすべての列の長さの合計は、その表に対するチェンジ・データ・キャプチャを有効にするためにSQL Serverで許容される長さを超えることはできません。すべての列の長さの合計がSQL Serverプロシージャsys.sp.cdc_enable_tableで許容される長さを超えると、その表に対してADD TRANDATAを有効にできなくなります。最大許容レコード長は列数が増加すると減少するため、最大レコード長と表の列数には反比例関係があります。

5.3.5 データベース接続

Oracle GoldenGateはデータベースへの接続にODBCおよびOLE DBを使用します。

  • ODBC: Extractプロセスは、ODBCを使用してソースのSQL Serverデータベースに接続し、メタデータの取得およびその他のプロセスの問合せを実行します。Replicatプロセスは、ODBCを使用してターゲットのSQL Serverデータベースに接続し、メタデータを取得しますが、オプションでODBCを配信トランザクションにも使用できます。ODBCは適切に構成する必要があります。

  • OLE DB: デフォルトでは、ReplicatプロセスはOLE DBを使用してターゲットのSQL Serverデータベースに接続し、DML操作を実行しようとします。使用するドライバがODBCのみをサポートする場合、ReplicatはODBC経由でDMLを適用するようになります。ODBC専用ドライバでOLE DBを使用する場合は、SQL Server用のMicrosoft OLE DB ドライバ18をインストールします。OLE DBを使用すると、特定の表プロパティのNot for ReplicationフラグをサポートするDBOPTIONS USEREPLICATIONUSERパラメータを使用できるようになります。

  • OLEDBモードのSQL Server 2014インスタンスへの接続にMicrosoft SQL Server Native Client 11 OLE DBドライバを使用すると、メモリー・リークの問題が発生する可能性があります(Microsoftの記事2881661)。 Microsoftでは、SQL Server 2014 CU1 (Microsoftの記事2931693)で修正を提供しています。 想定されるメモリー・リークを回避するには、次のオプションのいずれかを選択します。

    • SQL Server 2014の場合は、SQL Serverインスタンスを最新の累積的な更新プログラム1にアップグレードします。

    • Microsoftのサポート対象ODBCドライバを使用します。

  • Azure SQLデータベースの場合は、MicrosoftでサポートされているODBCドライバを使用します。

  • Always On可用性グループのリスナーはサポート対象であり、同期モードのセカンダリ・レプリカに対する取得の読取り専用ルーティングをサポートするために必要です。

5.4 Oracle GoldenGateをインストールする場所

WindowsにインストールされたSQL ServerのためのOracle GoldenGateは、Windowsで実行するSQL Serverに対するローカルおよびリモートの取得と配信をサポートしています。LinuxにインストールされたOracle GoldenGateは、Windowsで実行するSQL Serverに対するリモートの取得と配信のみをサポートしています。Oracle GoldenGateは、Linuxで実行するSQL Serverをサポートしません。

Windows上で実行されているSQL Serverデータベースに適用する場合は、データベース・サーバーまたはリモートのLinuxまたはWindowsサーバーにOracle GoldenGateをインストールできます。

5.5 SQL Serverのためのインストール

SQL ServerのためのOracle GoldenGateをインストールするには、すべてのプラットフォームに対するインストールの手順に従います。