Oracle データベースからのパブリケーションの作成
このトピックでは、SQL Server 2012 で SQL Server Management Studio または Transact-SQL を使用して、Oracle データベースからパブリケーションを作成する方法について説明します。
このトピックの内容
作業を開始する準備:
前提条件
Oracle データベースからパブリケーションを作成するために使用するもの:
SQL Server Management Studio
Transact-SQL
作業を開始する準備
前提条件
- パブリケーションを作成する前に、Microsoft SQL Server ディストリビューターに Oracle ソフトウェアをインストールし、Oracle データベースを構成する必要があります。 詳細については、「Oracle パブリッシャーの構成」を参照してください。
[Top]
SQL Server Management Studio の使用
パブリケーションの新規作成ウィザードを使用して、Oracle データベースからスナップショット パブリケーションまたはトランザクション パブリケーションを作成します。
Oracle データベースからパブリケーションを最初に作成するときは、SQL Server ディストリビューターで Oracle パブリッシャーを識別する必要があります (以降同じデータベースからパブリケーションを作成するときは、この作業は不要です)。 Oracle パブリッシャーの識別は、パブリケーションの新規作成ウィザードまたは [ディストリビューターのプロパティ - <Distributor>] ダイアログ ボックスで行うことができます。このトピックでは、[ディストリビューターのプロパティ - <Distributor>] ダイアログ ボックスについて説明します。
SQL Server ディストリビューターで Oracle パブリッシャーを識別するには
SQL Server Management Studio で、Oracle パブリッシャーがディストリビューターとして使用する SQL Server のインスタンスに接続し、サーバー ノードを展開します。
[レプリケーション] フォルダーを右クリックし、[ディストリビューターのプロパティ] をクリックします。
[ディストリビューターのプロパティ - <Distributor>] ダイアログ ボックスの [パブリッシャー] ページで、[追加] をクリックし、[Oracle パブリッシャーの追加] をクリックします。
[サーバーへの接続] ダイアログ ボックスで、[オプション] ボタンをクリックします。
[ログイン] タブで、次の操作を実行します。
Oracle データベースのインスタンス名を入力するか、または [サーバー インスタンス] コンボ ボックスで [参照] を選択します。
[Oracle 標準認証] (推奨) または [Windows 認証] を選択します。
[Windows 認証] を選択する場合は、Windows 資格情報を使用した接続を許可するように Oracle サーバーが構成されている必要があります (詳細については、Oracle のマニュアルを参照してください)。また、レプリケーション管理ユーザー スキーマに指定した Microsoft Windows アカウントと同じアカウントを使用して現在ログインしている必要があります。
[Oracle 標準認証] を選択する場合は、構成時に Oracle パブリッシャーで作成したレプリケーション管理ユーザー スキーマのログインおよびパスワードを入力します。
[接続プロパティ] タブで、パブリッシャーの種類として [ゲートウェイ] または [完全] を選択します。
[完全] オプションでは、スナップショット パブリケーションとトランザクション パブリケーションに、Oracle パブリッシングでサポートされるすべての機能セットが提供されます。 [ゲートウェイ] オプションでは、システム間のゲートウェイとしてレプリケーションが機能する場合にパフォーマンスが向上するように設計上の最適化が行われます。 [ゲートウェイ] オプションは、複数のトランザクション パブリケーションで同じテーブルのパブリッシュを予定している場合は使用できません。 [ゲートウェイ] を選択する場合、テーブルを表示できるのは、最大で 1 つのトランザクション パブリケーションと、任意の数のスナップショット パブリケーションになります。
[接続] をクリックします。これにより、Oracle パブリッシャーへの接続が作成され、レプリケーション用に構成されます。 [サーバーへの接続] ダイアログ ボックスが閉じ、[ディストリビューターのプロパティ - <Distributor>] ダイアログ ボックスに戻ります。
注 ネットワーク構成に問題がある場合は、この時点でエラーが返されます。 Oracle データベースへの接続中に問題が発生した場合は、「Oracle パブリッシャーのトラブルシューティング」の「SQL Server ディストリビューターが Oracle データベース インスタンスに接続できない」を参照してください。
[OK] をクリックします。
Oracle データベースからパブリケーションを作成するには
Oracle パブリッシャーがディストリビューターとして使用する SQL Server のインスタンスに接続し、サーバー ノードを展開します。
[レプリケーション] フォルダーを展開します。
[ローカル パブリケーション] フォルダーを右クリックし、[新しい Oracle パブリケーション] をクリックします。
パブリケーションの新規作成ウィザードの [Oracle パブリッシャー] ページで、Oracle パブリッシャーを選択します。 Oracle パブリッシャーが表示されていない場合は、[Oracle パブリッシャーの追加] をクリックし、前の手順から操作を行います。
[パブリケーションの種類] ページで、[スナップショット パブリケーション] または [トランザクション パブリケーション] を選択します。
[アーティクル] ページで、パブリッシュするデータベース オブジェクトを選択します。
必要に応じて、テーブルを展開してから 1 つ以上の列のチェック ボックスをオフにし、テーブルの列をフィルター選択します。 [アーティクルのプロパティ] をクリックしてアーティクルのプロパティを表示および変更し、必要に応じて代替データ型マッピングを指定します。 データ型マッピングの詳細については、「Oracle パブリッシャーのデータ型マッピングの指定」を参照してください。
[テーブル行のフィルター選択] ページで、必要に応じてフィルターを適用し、1 つ以上のテーブルからデータのサブセットをパブリッシュします。
サブスクリプション データベースですべてのオブジェクトを作成し、必要なデータをすべて追加している場合に限り、[スナップショット エージェント] ページで [スナップショットをすぐに作成する] をオフにします。
[エージェント セキュリティ] ページで、スナップショット エージェントの資格情報 (すべてのパブリケーション用) およびログ リーダー エージェントの資格情報 (トランザクション パブリケーション用) を指定します。 エージェントが実行され、指定した Microsoft Windows アカウントのコンテキストを使用して SQL Server ディストリビューターへの接続が確立されます。 レプリケーション管理ユーザー スキーマとして指定したアカウントのコンテキストを使用して、エージェントから Oracle データベースへの接続が確立されます。 詳細については、「Oracle パブリッシャーの構成」を参照してください。
各エージェントで必要な権限の詳細については、「レプリケーション エージェントのセキュリティ モデル」および「レプリケーション セキュリティの推奨事項」を参照してください。
[ウィザードのアクション] ページで、必要に応じてパブリケーションのスクリプトを作成できます。 詳細については、「レプリケーションのスクリプト作成」を参照してください。
[ウィザードの完了] ページで、パブリケーションの名前を指定します。
[Top]
Transact-SQL の使用
Oracle データベースをパブリッシャーとして構成した後で、システム ストアド プロシージャを使用して、Microsoft SQL Server パブリッシャーから行う場合と同じ方法でトランザクション パブリケーションまたはスナップショット パブリケーションを作成できます。
Oracle パブリケーションを作成するには
Oracle データベースをパブリッシャーとして構成します。 詳細については、「Oracle パブリッシャーの構成」を参照してください。
リモート ディストリビューターが存在しない場合は、リモート ディストリビューターを構成します。 詳細については、「パブリッシングおよびディストリビューションの構成」を参照してください。
Oracle パブリッシャーが使用するリモート ディストリビューターで、sp_adddistpublisher (Transact-SQL) を実行します。 @publisher に Oracle データベース インスタンスの TNS (Transparent Network Substrate) 名を、@publisher_type に ORACLE or ORACLE GATEWAY の値を指定します。 次のいずれかの方法で、Oracle パブリッシャーからリモート SQL Server ディストリビューターに接続するときに使用されるセキュリティ モードを指定します。
既定の Oracle 標準認証を使用するには、@security_mode に 0 を、@login に Oracle パブリッシャーで構成時に作成したレプリケーション管理ユーザー スキーマを、@password にパスワードを指定します。
セキュリティに関する注意 可能であれば、実行時にセキュリティ資格情報の入力を求めるメッセージを表示します。 スクリプト ファイルに資格情報を格納する場合は、不正アクセスを防ぐために、そのファイルをセキュリティで保護する必要があります。
Windows 認証を使用するには、@security_mode に 1 を指定します。
注 Windows 認証を使用する場合は、Windows 資格情報を使用した接続を許可するように Oracle サーバーが構成されている必要があります (詳細については、Oracle のマニュアルを参照してください)。また、レプリケーション管理ユーザー スキーマに指定した Microsoft Windows アカウントと同じアカウントを使用して現在ログインしている必要があります。
パブリケーション データベースのログ リーダー エージェント ジョブを作成します。
パブリッシュされたデータベースにログ リーダー エージェント ジョブが存在するかどうか不明である場合は、ディストリビューション データベースの Oracle パブリッシャーによって使用されるディストリビューターで sp_helplogreader_agent (Transact-SQL) を実行します。 @publisher に Oracle パブリッシャーの名前を指定します。 結果セットが空の場合、ログ リーダー エージェント ジョブを作成する必要があります。
パブリケーション データベース用のログ リーダー エージェント ジョブが既に存在する場合、手順 5. に進みます。
Oracle パブリッシャーのディストリビューション データベースによって使用されるディストリビューターで、sp_addlogreader_agent (Transact-SQL) を実行します。 @job_login および @job_password に、エージェントを実行するときに使用する Windows 資格情報を指定します。
注 @job_login パラメーターは、手順 3. で指定したログインと一致する必要があります。 パブリッシャーのセキュリティ情報を指定しないでください。 ログ リーダー エージェントは、手順 3. で指定されたセキュリティ情報を使用してパブリッシャーに接続します。
ディストリビューター側のディストリビューション データベースに対して、パブリケーションを作成する sp_addpublication (Transact-SQL) を実行します。 詳細については、「パブリケーションの作成」を参照してください。
ディストリビューター側のディストリビューション データベースに対して、sp_addpublication_snapshot (Transact-SQL) を実行します。 手順 4. で使用したパブリケーション名を @publication に指定し、スナップショット エージェントを実行するときに使用される Windows 資格情報を @job_name と @password に指定します。 パブリッシャーへの接続時に Oracle 標準認証を使用するには、@publisher_security_mode に 0 を指定し、@publisher_login および @publisher_password に Oracle ログイン情報を指定する必要があります。 これにより、パブリケーション用のスナップショット エージェント ジョブが作成されます。
[Top]
関連項目
タスク
Oracle パブリッシャー用のトランザクション セット ジョブの構成 (レプリケーション Transact-SQL プログラミング)