データベースのレプリケーションを設定する - トランザクションレプリケーションの設定 - SQL Server
データベースのレプリケーションを設定する手順を紹介します。
手順
hosts ファイルへの登録
サーバーが同じプライベートネットワークにあり、NETBIOSやWinsサーバーで名前解決できる場合は不要ですが、ゾーンをまたぐ場合は、ホスト名で相手のSQL Serverに到達できる必要があります。IPアドレスでの接続や、FQDN名での接続は許可されていないため、hostsファイルに記入する必要があります。
Windows Serverのhostsファイルは、"%windir%\System32\drivers\etc\hosts"になります。(デフォルトの場合は、"C:\Windows\System32\drivers\etc\hosts" になります。)
レプリケーションするデータベースサーバーそれぞれのhostsファイルを変更します。
変更前
変更後の例
ディストリビューターの設定
ディストリビューターを設定します。ディストリビューターはマスタ側のデータベースに配置することも、サブスクリプション側のデータベースに配置することもできます。今回の例では、サブスクリプション側のデータベースにディストリビューターを配置します。
ディストリビューター側のデータベースサーバーでSQL Server Management Studioを起動します。
[オブジェクト エクスプローラー]のツリービューで[レプリケーション]ノードを選択し、右クリックします。下図のポップアップメニューが表示されます。メニューの[ディストリビューションの構成]をクリックします。
[ディストリビューションの構成ウィザード]が表示されます。[次へ]ボタンをクリックします。
ディストリビューターの設定画面が表示されます。今回はこのサーバーをディストリビューターにするため、デフォルトの"'(ホスト名)'を独自のディストリビューターとする"にチェックをします。チェック後[次へ]ボタンをクリックします。
SQL Server エージェントの起動に関する設定画面が表示されます。SQL Server エージェントを自動で開始できるようにするため[はい、SQL Server エージェント サービスを自動的に開始するように構成します]のラジオボタンにチェックをします。チェック後[次へ]ボタンをクリックします。
[スナップショット フォルダー]の設定画面が表示されます。今回はデフォルトのままとします。[次へ]ボタンをクリックします。
[ディストリビューション データべース]の設定画面が表示されます。今回はこちらもデフォルトのままとします。[次へ]ボタンをクリックします。
[パブリッシャー]の設定画面が表示されます。今回はデフォルトのままとします。[次へ]ボタンをクリックします。
[ウィザードのアクション]画面が表示されます。[ディストリビューションを構成する]のチェックボックスにチェックがついていることを確認し、[次へ]ボタンをクリックします。
[ウィザードの完了]画面が表示されます。[完了]ボタンをクリックして、ディストリビューションを構成します。
ディストリビューションの構成処理が実行されます。
パブリケーションの設定
続いて、マスタとなるデータベースにパブリケーションの設定をします。Microsoft SQL Server Management Studio を起動します。オブジェクトエクスプローラのツリービューの[レプリケーション]ノード内の[ローカル パブリケーション]ノードを選択します。
右クリックしてポップアップメニューを表示します。メニューの[新しいパブリケーション]をクリックします。
[パブリケーションの新規作成ウィザード]が起動します。下図のダイアログが表示されます。[次へ]ボタンをクリックして進みます。
[ディストリビューター]の設定画面が表示されます。今回は、ディストリビューターをサブスクライバーのサーバーに構成したため[以下のサーバーをディストリビューターとして使用する]のラジオボタンにチェックをします。
右側の[追加]ボタンをクリックします。
下図の認証ダイアログが表示されますので、ディストリビューションを設定したSQL Serverのホスト名を入力して接続します。
認証に成功すると、ディストリビューターにサーバーが追加されます。[次へ]ボタンをクリックして進みます。
ディストリビューターへの接続に使用するパスワードを指定します。パスワードとパスワードの確認を入力します。
入力後[次へ]ボタンをクリックします。
SQL Server エージェントの自動起動に関する設定画面が表示されます。SQL Server エージェントは起動する必要がありますので、[はい、SQL Server エージェント サービスを自動的に開始するように構成します]をチェックします。チェック後[次へ]ボタンをクリックします。
[スナップショット フォルダー]の設定画面が表示されます。今回はデフォルトのままとします。[次へ]ボタンをクリックします。
[パブリケーション データベース]の設定画面が表示されます。レプリケーションでパブリッシュするデータベースを選択します。選択後[次へ]ボタンをクリックします。
[パブリケーションの種類]の設定画面が表示されます。
今回は"トランザクション パブリケーション"を選択します。[次へ]ボタンをクリックします。
[アーティクル]の設定画面が表示されます。
データベース内でレプリケーション用にパブリッシュするオブジェクトを選択します。
今回はテーブルをレプリケーション用にパブリッシュします。パブリッシュするオブジェクトの左側のチェックボックスにチェックをつけます。チェック後[次へ]ボタンをクリックします。
[テーブル業のフィルター選択]の設定画面が表示されます。今回はフィルタは設定しないため[次へ]ボタンをクリックして進みます。
[スナップショット エージェント]の設定画面が表示されます。
[スナップショットをすぐに作成し、サブスクリプションを初期化できるようにそのスナップショットを保持する]のチェックボックスにチェックをします。チェック後[次へ]ボタンをクリックします。
[エージェントセキュリティ]の設定画面が表示されます。[セキュリティ設定]のボタンをクリックします。
[スナップショット エージェントのセキュリティ]ダイアログが表示されます。
スナップショットエージェントを実行するアカウントを設定します。
パブリッシャーに接続するアカウントを設定します。設定後[OK]ボタンをクリックします。
エージェントセキュリティの設定ができました。[次へ]ボタンをクリックします。
[ウィザードのアクション]設定画面が表示されます。[パブリケーションを作成する]のチェックボックスにチェックをします。チェック後、[次へ]ボタンをクリックします。
[ウィザードの完了]画面が表示されます。
[パブリケーション名]にパブリケーションの名称を設定します。設定後[完了]ボタンをクリックします。
パブリケーションの作成処理が始まります。
パブリケーションの作成が完了しました。SQL Server エージェントが開始できなかったため、いくつかの警告が表示されています。
SQL Server エージェントの開始
SQL Server 構成マネージャーを開きます。左側のツリービューで[SQL Server のサービス]のノードをクリックして選択します。右側にサービスの一覧が表示されます。
[SQL Server エージェント]の項目をクリックして選択し、右クリックしてポップアップメニューを表示します。メニューの[開始]をクリックします。
SQL Server エージェントのサービスが開始されます。
パブリケーションの作成ができると、SQL Server Managem,ent Studioのオブジェクト エクスプローラーの[レプリケーション]ノードの[ロカールパブリケーション]ノード内にパブリケーションの項目が追加されます。
サブスクリプションの設定
続いて、サブスクリプション側のデータベースサーバーで、SQL Server Management Studio を起動します。[オブジェクト エクスプローラー]の[レプリケーション]ノードの[ローカルサブスクリプション]ノードをクリックして選択します。
[サブスクリプションの新規作成ウィザード]が表示されます。[次へ]ボタンをクリックします。
[パブリケーション]の設定画面が表示されます。パブリッシャーのデータベースを選択します。
パブリッシャーのコンボボックスを開きます。[SQL Server パブリッシャーの検索]を選択します。
下図の認証ダイアログが表示されます。
パブリケーション設定がされているデータベースサーバーのホストを指定し接続します。
接続ができると、データベースとパブリケーションが表示されます。サブスクライブするパブリケーションを選択します。選択後、[次へ]ボタンをクリックします。
[ディストリビューション エージェントの場所]の設定画面が表示されます。今回は[サブスクライバーで各エージェントを実行する(プル サブスクリプション)]を選択します。選択後[次へ]ボタンをクリックします。
[サブスクライバー]の選択画面が表示されます。今回は自身のホストを選択します。
右側のコンボボックスを開きます。下図の画面が表示されます。[新しいデータベース]を選択します。
[新しいデータベース]ダイアログが表示されます。
データベースを新規作成します。
新規作成したデータベースをサブスクリプションデータベースとして選択します。[次へ]ボタンをクリックします。
[ディストリビューション エージェントのセキュリティ]画面が表示されます。右側の[...]ボタンをクリックします。
[ディストリビューション エージェントのセキュリティ]ダイアログが表示されます。
ディストリビューション エージェントの実行アカウントや、ディストリビューターの接続に利用するアカウントを設定します。設定ができたら、[OK]ボタンをクリックしてダイアログを閉じます。
[次へ]ボタンをクリックして進みます。
[同期スケジュール]の設定画面が表示されます。
コンボボックスを開くと下図の項目が選択できます。今回は[連続実行する]を選択します。設定後[次へ]ボタンをクリックします。
[サブスクリプションの初期化]ダイアログが表示されます。今回はデフォルトのままとします。[次の場合に初期化]が"今すぐ"になっていることを確認し[次へ]ボタンをクリックします。
[ウィザードのアクション]設定画面が表示されます。[サブスクリプションを作成する]にチェックをし[次へ]ボタンをクリックします。
[ウィザードの完了]ダイアログが表示されます。[完了]ボタンをクリックし、サブスクリプションの作成を開始します。
サブスクリプションの作成が始まります。
SQL Server エージェントの開始
サブスクリプション側のSQL Serverでも SQL Server エ^-ジェントを開始します。
[SQL Server 構成マネージャー]を開きます。左側のツリービューで[SQL Server のサービス]のノードを選択します。
右側のサービス一覧で、[SQL Serverエージェント]の項目を選択し、右クリックしポップアップメニューの[開始]メニューをクリックします。SQL Server エージェントのサービスが開始されます。
SQL Server エージェントが開始されました。
サブスクリプションの作成に成功すると、SQL Server Management Studio のオブジェクト エクスプローラーの[レプリケーション]ノードの[ローカル サブスクリプション]ノードにサブスクリプションの項目が追加されます。
以上で設定は完了です。スナップショットエ-ジェント、ログリーダーエージェントが起動していれば、データベースのレプリケーションが実行され、以後マスタデータベースが変更されると、レプリケーション先のデータべースのも変更が反映されます。
設定が完了しレプリケーションの接続ができる状態になると、マスタDB側のSQL Server Management Studioのオブジェクト エクスプローラーの[レプリケーション]ノードの[ローカルパブリケーション]ノード内のパブリケーションの項目にサブスクライバーの子ノードが表示されます。
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。