Oracle データベースからのパブリケーションの作成

このトピックでは、SQL Server Management Studioまたは Transact-SQL を使用して、SQL Server 2014 で Oracle データベースからパブリケーションを作成する方法について説明します。

このトピックの内容

はじめに

前提条件

  • パブリケーションを作成する前に、Microsoft SQL Server ディストリビューターに Oracle ソフトウェアをインストールし、Oracle データベースを構成する必要があります。 詳細については、「Oracle パブリッシャーの構成」をご覧ください。

SQL Server Management Studio を使用する

パブリケーションの新規作成ウィザードを使用して、Oracle データベースからスナップショット パブリケーションまたはトランザクション パブリケーションを作成します。

Oracle データベースからパブリケーションを最初に作成するときは、 SQL Server ディストリビューターで Oracle パブリッシャーを識別する必要があります (以降同じデータベースからパブリケーションを作成するときは、この作業は不要です)。 Oracle パブリッシャーの識別は、パブリケーションの新規作成ウィザードまたは [ディストリビューターのプロパティ - <ディストリビューター] ダイアログ ボックスから行うことができます。このトピックでは、[ディストリビューターのプロパティ - ディストリビューター>] ダイアログ ボックスを示します。><

SQL Server ディストリビューターで Oracle パブリッシャーを識別するには

  1. SQL Server Management Studioで、Oracle パブリッシャーがディストリビューターとして使用する SQL Server のインスタンスに接続し、サーバー ノードを展開します。

  2. [レプリケーション] フォルダーを右クリックし、 [ディストリビューターのプロパティ] をクリックします。

  3. [ディストリビューターのプロパティ - <ディストリビューター>] ダイアログ ボックスの [パブリッシャー] ページで、[追加] をクリックし、[Oracle パブリッシャーの追加] をクリックします。

  4. [サーバーへの接続] ダイアログ ボックスで、 [オプション] ボタンをクリックします。

  5. [ログイン] タブで、次の操作を実行します。

    1. Oracle データベースのインスタンス名を入力するか、または [サーバー インスタンス] コンボ ボックスで [参照] を選択します。

    2. [Oracle 標準認証] (推奨) または [Windows 認証] を選択してください。

      [Windows 認証] を選択する場合は、Windows 資格情報を使用した接続を許可するように Oracle サーバーが構成されている必要があります (詳細については、Oracle のマニュアルを参照してください)。また、レプリケーション管理ユーザー スキーマに指定した Microsoft Windows アカウントと同じアカウントを使用して現在ログインしている必要があります。

    3. [Oracle 標準認証] を選択する場合は、構成時に Oracle パブリッシャーで作成したレプリケーション管理ユーザー スキーマのログインおよびパスワードを入力します。

  6. [接続プロパティ] タブで、パブリッシャーの種類として [ゲートウェイ] または [完全] を選択します。

    [完全] オプションを選択した場合は、Oracle パブリッシング用にサポートされる完全な機能セットがスナップショットおよびトランザクション パブリケーションに提供されます。 [ゲートウェイ] オプションを選択した場合は、レプリケーションがシステム間のゲートウェイとして動作する場合のパフォーマンスを向上させるために、特定のデザインが最適化されます。 複数のトランザクション パブリケーションに同じテーブルをパブリッシュする場合は、 [ゲートウェイ] オプションは使用できません。 [ゲートウェイ] オプションを選択した場合、1 つのテーブルは、最大で 1 つのトランザクション パブリケーションおよび任意の数のスナップショット パブリケーションに含めることができます。

  7. [接続] をクリックします。これにより、Oracle パブリッシャーへの接続が作成され、レプリケーション用に構成されます。 [ サーバーへの接続 ] ダイアログ ボックスが閉じ、[ ディストリビューターのプロパティ - <ディストリビューター> ] ダイアログ ボックスに戻ります。

    Note

    ネットワーク構成に問題がある場合は、この時点でエラーが返されます。 Oracle データベースへの接続中に問題が発生した場合は、「 Troubleshooting Oracle Publishers」の「SQL Server ディストリビューターが Oracle データベース インスタンスに接続できない」を参照してください。

  8. [OK] をクリックします。

Oracle データベースからパブリケーションを作成するには

  1. Oracle パブリッシャーがディストリビューターとして使用する SQL Server のインスタンスに接続し、サーバー ノードを展開します。

  2. [レプリケーション] フォルダーを展開します。

  3. [ローカル パブリケーション] フォルダーを右クリックし、 [新しい Oracle パブリケーション] をクリックします。

  4. パブリケーションの新規作成ウィザードの [Oracle パブリッシャー] ページで、Oracle パブリッシャーを選択します。 Oracle パブリッシャーが表示されていない場合は、 [Oracle パブリッシャーの追加] をクリックし、前の手順から操作を行います。

  5. [パブリケーションの種類] ページで、 [スナップショット パブリケーション] または [トランザクション パブリケーション] を選択します。

  6. [アーティクル] ページで、パブリッシュするデータベース オブジェクトを選択します。

    必要に応じて、テーブルを展開してから 1 つ以上の列のチェック ボックスをオフにし、テーブルの列をフィルター選択します。 [アーティクルのプロパティ] をクリックしてアーティクルのプロパティを表示および変更し、必要に応じて代替データ型マッピングを指定します。 データ型マッピングの詳細については、「Specify Data Type Mappings for an Oracle Publisher」(Oracle パブリッシャーのデータ型マッピング) を参照してください。

  7. [テーブル行のフィルター選択] ページで、必要に応じてフィルターを適用し、1 つ以上のテーブルからデータのサブセットをパブリッシュします。

  8. サブスクリプション データベースですべてのオブジェクトを作成し、必要なデータをすべて追加している場合に限り、 [スナップショット エージェント] ページで [スナップショットをすぐに作成する] をオフにします。

  9. [エージェント セキュリティ] ページで、スナップショット エージェントの資格情報 (すべてのパブリケーション用) およびログ リーダー エージェントの資格情報 (トランザクション パブリケーション用) を指定します。 エージェントが実行され、指定した SQL Server Windows アカウントのコンテキストを使用して Microsoft ディストリビューターへの接続が確立されます。 レプリケーション管理ユーザー スキーマとして指定したアカウントのコンテキストを使用して、エージェントから Oracle データベースへの接続が確立されます。 詳細については、「Oracle パブリッシャーの構成」をご覧ください。

    各エージェントで必要な権限の詳細については、「 Replication Agent Security Model 」および「 Replication Security Best Practices」を参照してください。

  10. [ウィザードのアクション] ページで、必要に応じてパブリケーションのスクリプトを作成できます。 詳細については、「レプリケーションのスクリプト作成」を参照してください。

  11. [ウィザードの完了] ページで、パブリケーションの名前を指定します。

Transact-SQL の使用

Oracle データベースをパブリッシャーとして構成した後で、システム ストアド プロシージャを使用して、Microsoft SQL Server パブリッシャーから行う場合と同じ方法でトランザクション パブリケーションまたはスナップショット パブリケーションを作成できます。

Oracle パブリケーションを作成するには

  1. Oracle データベースをパブリッシャーとして構成します。 詳細については、「Oracle パブリッシャーの構成」をご覧ください。

  2. リモート ディストリビューターが存在しない場合は、リモート ディストリビューターを構成します。 詳細については、「 Configure Publishing and Distribution」をご参照ください。

  3. Oracle パブリッシャーが使用するリモート ディストリビューターで、 sp_adddistpublisher (Transact-SQL) を実行します。 @publisherの Oracle データベース インスタンスの Transparent Network Substrate (TNS) 名と 、@publisher_typeORACLE 値または ORACLE GATEWAY の値を指定 しますSpecify 次のいずれかの方法で、Oracle パブリッシャーからリモート SQL Server ディストリビューターに接続するときに使用されるセキュリティ モードを指定します。

    • Oracle Standard Authentication (既定値) を使用するには、@security_modeに値 0@loginの構成時に Oracle パブリッシャーで作成したレプリケーション管理ユーザー スキーマのログイン、および@passwordのパスワードを指定します。

      重要

      可能であれば、実行時、ユーザーに対してセキュリティ資格情報の入力を要求します。 スクリプト ファイルに資格情報を格納する場合は、不正アクセスを防ぐために、そのファイルをセキュリティで保護する必要があります。

    • Windows 認証を使用するには、@security_mode値 1 を指定します。

      Note

      Windows 認証を使用する場合は、Windows 資格情報を使用した接続を許可するように Oracle サーバーが構成されている必要があります (詳細については、Oracle のマニュアルを参照してください)。また、レプリケーション管理ユーザー スキーマに指定した Microsoft Windows アカウントと同じアカウントを使用して現在ログインしている必要があります。

  4. パブリケーション データベースのログ リーダー エージェント ジョブを作成します。

    • パブリッシュされたデータベースに対してログ リーダー エージェント ジョブが存在するかどうかわからない場合は、ディストリビューション データベースで Oracle パブリッシャーによって使用されるディストリビューターで sp_helplogreader_agent (Transact-SQL) を実行します。 @publisherの Oracle パブリッシャーの名前を指定します。 結果セットが空の場合、ログ リーダー エージェント ジョブを作成する必要があります。

    • パブリケーション データベース用のログ リーダー エージェント ジョブが既に存在する場合、手順 5. に進みます。

    • ディストリビューション データベースで Oracle パブリッシャーによって使用されるディストリビューターで、 sp_addlogreader_agent (Transact-SQL) を実行します。 @job_login@job_passwordに対してエージェントを実行する Windows 資格情報を指定します。

      Note

      @job_login パラメーターは、手順 3 で指定したログインと一致している必要があります。 パブリッシャーのセキュリティ情報を指定しないでください。 ログ リーダー エージェントは、手順 3. で指定されたセキュリティ情報を使用してパブリッシャーに接続します。

  5. ディストリビューション データベースのディストリビューターで、 sp_addpublication (Transact-SQL) を 実行してパブリケーションを作成します。 詳しくは、「 パブリケーションを作成」をご覧ください。

  6. ディストリビューション データベースのディストリビューターで、 sp_addpublication_snapshot (Transact-SQL) を実行します。 @publicationの手順 4 で使用するパブリケーション名と、@job_nameと@passwordに対してスナップショット エージェントを実行する Windows 資格情報を指定します。 パブリッシャーに接続するときに Oracle 標準認証を使用するには、@publisher_security_modeに値 0@publisher_login@publisher_passwordに Oracle ログイン情報も指定する必要があります。 これにより、パブリケーション用のスナップショット エージェント ジョブが作成されます。

参照

Oracle パブリッシャーの構成
データとデータベース オブジェクトのパブリッシュ
Oracle パブリッシャー用のトランザクション セット ジョブの構成 (レプリケーション Transact-SQL プログラミング)
Oracle パブリッシングの概要
Oracle の権限を許可するためのスクリプト