10 SQL Serverデータベースへのインストール

この章では、Oracle GoldenGate for Microsoft SQL Serverのインストール手順を説明します。Oracle GoldenGateをインストールすると、処理の実行および管理に必要なすべてのコンポーネントが(ドライバやライブラリなどの他のベンダー製の必要なコンポーネントを除いて)インストールされ、また、Oracle GoldenGateユーティリティがインストールされます。

トピック:

10.1 オペレーティング・システムの権限

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

10.1.1 Manager

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

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

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

  • (クラシックExtract) Oracle GoldenGateのソース取得インストールの場合、ManagerにはSQL Serverデータベースのトランザクション・ログ・ファイルとトランザクション・ログ・バックアップに対する読取り権限が必要です。

  • (クラシックExtract)中間層Windowsサーバーからアーカイブ・ログ・モードでソース取得を実行している場合、Managerにはトランザクション・ログ・バックアップの書込み先のネットワーク共有に対する読取り権限、およびトランザクション・ログ・バックアップに対する読取り権限が必要です。

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

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

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

10.1.2 ExtractおよびReplicat

Oracle GoldenGateプロセスのデータベース・ユーザーを参照してください。

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

「その他の考慮事項」の他に、次のプログラムおよびOracle GoldenGate for SQL Serverの設定情報を監視する必要があります。

  • アーカイブ・ログ・モードのクラシックExtract、またはリモートCDC Extractのために、リモートWindowsサーバーにキャプチャをインストールするには、リモート・サーバーの時間とタイムゾーンをデータベース・サーバーの時間とタイムゾーンに設定します。

  • (クラシックExtract)ソースのSQL Server 2008/2008 R2/2012/2014 Standard Editionデータベースから取得する場合は、SQL Serverレプリケーション機能がインストールされ、ディストリビュータが構成されている必要があります。

  • Oracle GoldenGateのインストール先のサーバーにSQL Serverクライアント・ツール接続機能がインストールされている必要があります。この機能は通常、SQL Serverのインスタンスのインストール時にデフォルトでインストールされますが、リモートReplicat、またはデータベース・サーバー以外の場所でアーカイブ・ログ・モードで実行されているクラシックExtract、またはリモートCDC Extract用に使用されるWindowsサーバーの場合、必要なクライアント接続ドライバはSQL Serverインストール・メディア経由または次のリンクから入手できます。

    Microsoft SQL Server 2008 SP4 Feature Pack:

    https://www.microsoft.com/en-us/download/details.aspx?id=44277

    Microsoft SQL Server 2008 R2 SP3 Feature Pack:

    https://www.microsoft.com/enus/download/details.aspx?id=44272

    SQL Server 2012、2014、2016および2017の場合は、Microsoft SQL Server 2012 Feature Packに含まれるMicrosoft SQL Server 2012 Native Clientをインストールします。

    https://www.microsoft.com/en-us/download/details.aspx?id=29065

  • Oracle GoldenGateは、すべての仮想マシン環境を完全にサポートしています。仮想マシン環境にOracle GoldenGateをインストールする場合、ホスト・システムではなく仮想マシンのデータベースおよびオペレーティング・システムに適合するビルドを選択します。

10.3 SQL Serverの要件

Oracle GoldenGateをSQL Serverデータベースと連動させるには、データベース・インスタンスで次の設定を行う必要があります。

10.3.1 インスタンスの要件

SQL Serverインスタンス用のOracle GoldenGateを構成する際には、次の要件に注意してください。

  • クラシックExtractはSQL Server EnterpriseおよびStandard Editionのバージョン2008、2008R2、2012、2014をサポートする必要があります。

  • チェンジ・データ・キャプチャ(CDC) ExtractはSQL Server Enterprise Editionのバージョン2008、2008 R2、2012、2014、2016、2017およびSQL ServerのStandard Edition 2016 (Service Pack 1)以上をサポートする必要があります。

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

  • Oracle GoldenGate配信では、SQL Server 2008、2008 R2、2012、2014、2016および2017のEnterprise EditionおよびSQL Server 2008、2008 R2、2012、2014、2016のStandard Editionをサポートしています。

  • Oracle GoldenGateでは、Azure SQLデータベースへの配信がサポートされています。

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

  • (CDC Extract) Oracle GoldenGateでソースSQL Serverインスタンスのトランザクション・データをキャプチャするには、CDCキャプチャ・ジョブがCDC表にチェンジ・データをロードするために、ソースSQL ServerインスタンスでSQL Serverエージェントを実行している必要があります。

  • (クラシックExtract)ソースのSQL Server Standard Editionデータベースからデータを取得するには、SQL Serverレプリケーション機能がインストールされ、ディストリビュータが構成され、ディストリビューション・データベースを作成する必要があります。

  • データの取得TEXT、NTEXT、IMAGEまたはVARCHAR(MAX)、NVARCHAR(MAX)およびVARBINARY(MAX)と列が、"max text repl size"で設定されるSQL Serverのデフォルト・サイズを超える場合は、Oracle GoldenGateによってターゲットの必要に応じてデータが調整されます。

10.3.2 データベースの要件

データベースを構成する際には、次の要件と制限事項に注意してください。

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

  • データベースがSQL Serverインスタンスのバージョンの互換性レベルに設定されている必要があります。

  • (CDC Extract)ソース・データベースは透過的データ暗号化(TDE)を使用して構成できます。

  • (CDC Extract)ソース・データベースは、Microsoft SQL Serverのチェンジ・データ・キャプチャ機能をサポートしている任意のリカバリ・モデルに設定できます。

  • (クラシックExtract)ソース・データベースはフル・リカバリ・モデルに設定する必要があります。

  • (クラシックExtract)ソース・データベースをフル・リカバリに設定した後で、フル・データベース・バックアップを実行する必要があります。以前にフル・リカバリ・モデルまたはバルクログ・リカバリ・モデルを使用していたデータベースの場合、このバックアップはOracle GoldenGateのインストール前に作成したものでもかまいません。

  • (クラシックExtract)別のインスタンスのデータベースのバックアップからソース・データベースを復元した場合は、新しいインスタンスのバックアップを作成する必要があります。

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

  • (クラシックExtract) Oracle GoldenGateがインストールされて実行されている間は、ソース・データベースのログ・チェーンが絶対に途切れないようにしてください。ログ・チェーンは、no_logオプションまたはtruncate_onlyオプションを指定してログをバックアップした場合や、最初のフル・データベース・バックアップの完了後にリカバリ・モデルをSimpleまたはBulk_loggedに設定した場合に途切れます。 詳細は、Microsoft SQL Serverのドキュメントでログ・チェーンについて確認してください。

  • AlwaysOn - Extractは、プライマリ・データベースまたは読取り専用の同期モードのセカンダリ・データベースからの取得をサポートします。非同期モードのセカンダリ・データベースの場合は、取得がサポートされません。

制限事項:

  • 12c (12.3.0.1.2)より前のOracle GoldenGateリリースにのみ適用されます。(CDC Extract)ソース・データベースは、Oracle GoldenGate CDCキャプチャ用の構成とSQL Serverトランザクション・レプリケーション内のパブリケーションとしての構成を同時に実施できません。ただし、Oracle GoldenGate CDCキャプチャは、サブスクライバとしてのみ有効化されているデータベース(パブリッシャ・データベースのターゲット)に対して構成できます。

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

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

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

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

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

  • SQL Server 2014および2016には、トランザクションに対する遅延トランザクションの永続性のオプションがあります。ただし、Oracle GoldenGateによってサプリメンタル・ロギング(TRANDATA)で構成された表に対するトランザクションは、常に完全永続になります。

  • (クラシックExtract)ソース・データベースは透過的データ暗号化(TDE)を使用して構成しないでください。

  • Always On可用性グループの非同期モードのセカンダリ・データベースからのキャプチャはサポートされません。

10.3.3 表の要件

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

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

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

  • Enterprise Editionデータベースのソース表には主キーは不要です。

  • (クラシックExtract) Standard Editionデータベースのソース表には主キーが必要です。

  • Oracle GoldenGateでは、Enterprise EditionのSQL Serverチェンジ・データ・キャプチャでトラッキングされる表およびSQL Serverトランザクション・レプリケーションのパブリケーションのアーティクルである表に対して許容される最大の表の名前と列の長さがサポートされます。

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

10.3.4 データベース接続

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とDML用のOLE DBの、少なくとも2つのReplicat接続が常に存在します。OLEDBをサポートしていないMicrosoft社のODBCドライバを使用している場合は、DBOPTIONS USEODBCパラメータを使用して実行するようにReplicatを設定する必要があります。Azure SQLデータベース・ターゲットに接続する場合、ReplicatにはDBOPTIONS USEODBCが必要です。

サポートの制限

  • SQL Server 2008および2008R2の場合、SQL Server Native Client 10.0ドライバを使用します。古いSQL Serverドライバ(SQLSRV32.DLL)では、新しいSQL Serverデータ型はサポートされません。

  • SQL Server 2012、2014、2016および2017の場合、SQL Server Native Client 11.0ドライバを使用します。

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

    • SQL Server 2012の場合、SQL Native Client 11.0ドライバをSP1 CU7レベルにアップグレードします。

    • SQL Server 2014の場合、新しいWindowsシステムにSQL Server 2014 CU1をインストールした後に、メモリー・リークがまだ存在する可能性があります。 これは、SQL Server 2012 SP1 CU7からSQL Server 2014 CU1にアップグレードすると発生しません。

  • SQL Server 2014、2016および2017の場合、SQL Server Native Client 11.0ドライバのみがサポートされています。SQL Server用ODBCドライバ11/13/17はサポートされていません。

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

  • AlwaysOn可用性グループ・リスナー接続はサポートされていません。

10.3.5 Oracle GoldenGateプロセス用データベース・ユーザー

Oracle GoldenGateでSQL Serverデータベースに対する取得および適用を実行するには、次のデータベース・ユーザーおよび権限が必要です。

10.3.5.1 サプリメンタル・ロギングを有効にするユーザー

データベース・ユーザーは、Oracle GoldenGate構成内のソース・データベースに対してサプリメンタル・ロギングを有効にするために、ADD TRANDATAコマンドを発行する必要があります。データベース・ログイン・コマンド(DBLOGIN)は、ADD TRANDATAの発行前にGGSCIから発行されます。

  • TRANDATAを有効にするデータベース・ユーザーには、sysadmin権限が付与されている必要があります。

(CDC Extract) Extractはdbowner権限で実行できます。ただし、コマンドADD HEARTBEATTABLEDELETE HEARTBEATTABLEINFO HEARTBEATTABLE を発行するには、システム管理者(sysadmin)権限が必要です。

10.3.5.2 SQL ServerのExtractユーザーとReplicatユーザー

Oracle GoldenGate Extractプロセスは、初期ロードの場合はソースのSQL Serverデータベースからデータをキャプチャし、クラシックExtractはトランザクション・ログおよびトランザクション・ログ・バックアップから、CDC ExtractはCDC表からキャプチャします。Replicatプロセスは、ターゲットのSQL Serverデータベースにデータを適用します。 これらのプロセスは、Windows認証またはSQL Server認証を使用してデータベースに接続できます。

  • Windows認証を使用するために、Managerサービスの「プロパティ」に指定されている「ログオン」アカウントによって識別されるように、ExtractプロセスおよびReplicatプロセスがManagerプロセスのログイン資格証明を継承します。このアカウントは、次にリストされた権限を持つ必要があります。

    Oracle GoldenGateプロセス ローカル・システム・アカウントを使用している場合のManagerの権限 ローカル/ドメイン・アカウントを使用している場合のManagerの権限

    クラシックExtract

    (ソース・システム)

    BUILTIN\Administratorsアカウントは、SQL Serverの固定サーバー・ロールであるSystem Administratorsのメンバーである必要があります。

    アカウントは、SQL Serverの固定サーバー・ロールであるSystem Administratorsのメンバーである必要があります。

    CDC Extract (ソース・システム)

    BUILTIN\Administratorsアカウントは、最低でもソース・データベースのロールdb_ownerのメンバーであることが必要です。

    アカウントは、最低でもソース・データベースの固定データベース・ロールdb_ownerのメンバーであることが必要です。

    Replicat

    (ターゲット・システム)

    BUILTIN\Administratorsアカウントは、最低でもターゲット・データベースの固定データベース・ロールdb_ownerのメンバーである必要があります。

    アカウントは、最低でもターゲット・データベースの固定データベース・ロールdb_ownerのメンバーである必要があります。

  • SQL Server認証を使用する場合、ExtractまたはReplicatパラメータ・ファイルのUSERIDパラメータ(PASSWORDオプション付き)でユーザーとパスワードを指定するか、Oracle GoldenGate資格証明ストアを使用してUSERIDALIASパラメータでユーザー別名を指定する必要があります。

  • SQL Server認証を使用するには、ExtractおよびReplicat専用のSQL Serverログインを作成し、次にリストされている権限を割り当てる必要があります。

SQL Server認証を使用して接続するクラシックExtract SQL Server認証を使用して接続するCDC Extract SQL Server認証を使用して接続するReplicat

アカウントは、SQL Serverの固定サーバー・ロールであるSystem Administratorsのメンバーである必要があります。

アカウントは、最低でもソース・データベースの固定データベース・ロールdb_ownerのメンバーである必要があります。

アカウントは、最低でもターゲット・データベースの固定データベース・ロールdb_ownerのメンバーであることが必要です。

10.3.6 ユーザー資格証明の暗号化および格納

Windows認証ではなくSQL Server認証を使用する場合は、Oracle GoldenGateの設定時およびインストール時に、GGSCIコマンド・インタフェースでDBLOGINコマンドを使用してデータベースにログインすることが必要に場合があります。たとえば、ADD TRANDATAコマンドでサプリメンタル・ロギングを追加するときなどです。

セキュリティ対策としてログイン・パスワードの暗号化をお薦めします。ただし、標準のDBLOGINコマンドでセキュア・パスワードを使用するには、それより先にENCRYPT PASSWORDコマンドを使用してパスワードを暗号化する必要があります。DBLOGINを発行するたびにパスワードを暗号化しなくてもよく、ユーザーIDが公開されないように保護するには、設定および構成を開始する前にOracle GoldenGate資格証明ストアを作成します。

資格証明ストアを使用すると、DBLOGINでログインするときには、常にログイン資格証明の別名を指定することのみが必要になります。また、証明書ストアを使用することで、パラメータ・ファイルを構成するときに、ExtractおよびReplicatのプロセスに対するログイン資格証明の指定が簡単かつ安全になります。まず、資格証明ストアに基本エントリを作成しておいて、管理コマンドを使用して必要に応じて拡張できます。

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

SQL Server用のOracle GoldenGateキャプチャでは、リアルタイム・モードとアーカイブ・ログ・モードをサポートしています。クラシックExtractの場合は、リアルタイム・キャプチャのために、ソース・データベース・サーバー上にOracle GoldenGateをインストールする必要があります。アーカイブ・ログ・モードのクラシックExtractの場合は、ソース・データベース・サーバーまたはリモートWindowsサーバー上にOracle GoldenGateをインストールできます。CDC Extractは、ローカル・データベース・サーバーまたはリモートWindowsサーバーからのリアルタイム・キャプチャをサポートします。

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

10.5 SQL Serverへのインストール

Oracle GoldenGateプロセスを実行する前には、追加のデータベスの準備が必要になります。詳細は、「Oracle GoldenGateのためのシステムの準備」を参照してください。Windowsシステムまたはクラスタ内の適切な場所にOracle GoldenGateをインストールするには、すべてのプラットフォームへのインストールの手順を参照してください。この手順はすべてのバージョンのSQL Serverに適用されます。