sql >> データベース >  >> RDS >> Database

スナップショットレプリケーションを作成する方法

    スナップショットレプリケーションの概念は単純です。スキーマと記事のデータのスナップショットを生成して配布し、特定の時間に表示され、サブスクリプションの変更を更新します。スナップショットレプリケーションを作成すると、SQLServerはスナップショットエージェントジョブを作成します パブリケーションデータベースオブジェクトのスナップショットを生成します。スナップショットは、ネットワーク上の場所またはハードドライブに保存されます。 SQLジョブスケジュールを使用して、スナップショットを生成する間隔を定義できます。

    デモのセットアップ

    このデモでは、1つのデータベースサーバーに2つのSQLServerインスタンスを作成しました。インスタンス名と詳細は次のとおりです。

    [テーブルID=54 /]

    デモのセットアップでは、ディストリビューターを作成していないため、パブリッシャーインスタンスもディストリビューターとして機能します。 に属するテーブルとデータを複製します AdventureWorks2014データベースのスキーマ。

    パブリッシャーの構成

    パブリッシャーを構成するには、SQL Server Management Studioを開き、データベースインスタンスを展開し、レプリケーションを展開します。 ノードで、L ocal Publicationを右クリックします 新しい出版物を選択します 。次の画像を参照してください:

    新しいパブリケーションウィザードが起動します。画面に、ウィザードの簡単な概要が表示されます。 この開始ページを再度表示しないをオンにすると、この画面をスキップできます。 チェックボックス。 次へをクリックします 次の画面に移動します。次の画像を参照してください:

    次の画面で、発行元として機能するデータベースを選択します。このデモでは、 AdventureWorks2014を使用しています したがって、データベースを選択します。 AdventureWorks2014 データベースリストからデータベースを選択し、[次へ]をクリックします 。次の画像を参照してください:

    次の画面で、パブリケーションタイプを選択します。タイプは[パブリケーションタイプ]リストボックスに一覧表示され、個々のパブリケーションタイプについては、その説明もパブリケーションタイプの説明で説明されています。 テキストボックス。 スナップショット複製を選択します nをクリックし、[次へ]をクリックします 。次の画像を参照してください:

    レプリケーションでは、データベースオブジェクトはArticlesと呼ばれます。 記事について 画面には、パブリケーションデータベース内のデータベースオブジェクトのリストが表示されます。 Personスキーマに属するすべてのテーブルのデータを複製するので、記事のリストからPersonスキーマに属するテーブルを選択し、[次へ]をクリックします。 。次の画像を参照してください:

    レプリケーションを初期化するには、スナップショットを生成する必要があります。 スナップショットエージェント 画面で、スナップショットの生成間隔を設定します。スナップショットをすぐに生成することも、データベーススナップショットを生成する特定の時間をスケジュールすることもできます。デフォルトでは、スナップショットは1時間ごとに生成されますが、変更することもできます。特定の間隔でスナップショットを生成するには、[変更]をクリックします 。 新しいジョブスケジュール ダイアログボックスが開きます。目的のスケジュールを設定し、[ OK]をクリックします 。次の画像を参照してください:

    このデモでは、すぐにスナップショットを生成するため、スナップショットを作成し、サブスクリプションを初期化するためにスナップショットを利用できるようにしておくを確認します。 オプションを選択し、[次へ]をクリックします。

    次の画面で、SQLエージェントのセキュリティを構成します。エージェントのセキュリティを構成するには、セキュリティ設定をクリックします ボタン。 スナップショットエージェントのセキュリティ ダイアログボックスが開きます。ダイアログボックスで、サブスクライバーがパブリッシャーに接続するためのアカウントを指定します。さらに、SQLServerエージェントジョブが実行されるアカウント情報を提供します。このデモでは、SQL ServerジョブはSQLServerエージェントサービスアカウントで実行されるため、SQLServerエージェントサービスアカウントで実行を選択します。 オプション。サブスクライバーはSQLログインを使用してパブリッシャーに接続されるため、次のSQLServerログインオプションを使用するを選択します。 SQLログインとパスワードを入力します。このデモでは、 saを使用して接続します ログインする。 OKをクリックします ダイアログボックスを閉じて[Nex]をクリックします t。次の画像を参照してください:

    次の画面で、パブリケーションを作成するか、パブリケーションを作成するためのスクリプトを生成するかを選択できます。 パブリケーションを作成するためのスクリプトファイルを生成するを選択します レプリケーションステップのスクリプトを生成するオプション。パブリケーションを作成するため、パブリケーションの作成を選択します オプションを選択し、次へをクリックします 。次の画像を参照してください:

    次の画面で、パブリケーションの名前を入力し、レプリケーションを作成するために実行するタスクの概要を確認して、[完了]をクリックします。 パブリケーションを作成し、新しいパブリケーションウィザードを閉じます。次の画像を参照してください:

    記事の冒頭で述べたように、スナップショットレプリケーションを作成すると、SQLはスナップショットを作成し、スナップショットファイルをデフォルトのディレクトリに保存するジョブを作成します。

    それらを表示するには、SQLServerエージェントを展開します>>ジョブを展開します 。次の画像を参照してください:

    パブリケーションを構成したら、サブスクライバーを構成します。

    サブスクライバーの構成

    サブスクライバーを構成するには、まず、別のSQLインスタンスに接続します。インスタンスに接続した後、レプリケーションを展開し、ローカルサブスクリプションを右クリックします 。次の画像を参照してください:

    新しいSubscriptionWizard 開きます。画面に、ウィザードの簡単な概要が表示されます。 この開始ページを再度表示しないをオンにすると、この画面をスキップできます。 チェックボックス。 次へをクリックします 次の画面に移動します。次の画像を参照してください:

    次の画面で、パブリケーションサーバーを選択します。 パブリッシャーをクリックします ドロップダウンボックスで、SQLServerパブリッシャーの検索を選択します リストから。パブリッシャーを接続するためのダイアログボックスが開きます。 [サーバー名]テキストボックスに、発行元サーバーのホスト名を入力し、[接続]をクリックします。次の画像を参照してください:

    サイト運営者との接続が確立されると、 Snapshot_Replication 出版物とAdventureWorks2014 データベースはデータベースと出版物に表示されます テキストボックス。 Snapshot_Replicationを選択します 次へをクリックします 。次の画像を参照してください:

    次の画面で、配布エージェントの場所を選択します。このデモでは、プルサブスクリプションを使用します 、したがって、サブスクライバーで各エージェントを実行するを選択します オプションをクリックし、次へをクリックします :

    次の画面で、サブスクリプションデータベースを選択します。 Personsという名前のデータベースを作成しました これはサブスクライバデータベースとして機能します。 サブスクリプションデータベース ドロップダウンボックスで、を選択します リストからのデータベース。サブスクリプションデータベースを選択したら、[次へ]をクリックします 。次の画像を参照してください:

    次の画面で、配布エージェントのセキュリティを構成します。セキュリティを構成するには、[…]をクリックします ボタン。 配布エージェントのセキュリティ ダイアログボックスが開きます。最初のセクションで、配布エージェントプロセスを実行するドメインアカウントを指定します。配布エージェントはSQLServerエージェントサービスで実行されるため、SQLServerエージェントサービスアカウントで実行を選択します。 オプション。

    ここでは配布サーバーを構成しなかったため、パブリッシャーがディストリビューターとして機能します。サブスクライバーは、SQLログインを使用してパブリッシャー/ディストリビューターに接続します。ディストリビューターを接続するには、 saを使用します ログインとパスワード。次の画像を参照してください:

    OKをクリックします ダイアログボックスを閉じます。そして、ディストリビューションエージェントのセキュリティ 画面で、次へをクリックします 。次の画像を参照してください:

    次の画面で、サブスクリプションの同期スケジュールを構成します。継続的に実行するか、スケジュールされた実行を構成するかを選択できます。 継続的に実行を選択します エージェントスケジュール ドロップダウンボックス。 次へをクリックします 。次の画像を参照してください:

    次の画面で、パブリケーションデータとスキーマのスナップショットを使用してサブスクリプションをすぐに初期化するか、最初の同期後にサブスクリプションを初期化するかを選択します。サブスクリプションはすぐに初期化されるため、すぐにを選択します 初期化時期から ドロップダウンボックス。 次へをクリックします 。次の画像を参照してください:

    次の画面で、サブスクリプションをすぐに作成するか、サブスクリプションを作成するためのスクリプトを生成するかを選択できます。 スクリプトファイルを生成してサブスクリプションを作成するを選択します 。レプリケーションステップのスクリプトを生成するオプション。パブリケーションを作成するため、[サブスクリプションの作成]オプションを選択し、[ Nex]をクリックします。 t。次の画像を参照してください:

    次の画面に、サブスクリプションを作成するために実行されたタスクのリストが表示されます。それらを確認して、[完了]をクリックできます 。次の画像を参照してください:

    サブスクリプションが作成されると、ローカルサブスクリプションの下にサブスクリプションが表示されます。 ノード。次の画像を参照してください:

    スナップショットスケジュールの変更

    前述したように、パブリケーションを作成するときに、スナップショットエージェントからスナップショット間隔を構成できます。 画面。スナップショットレプリケーションSQLジョブのスケジュールを変更することで、スナップショット間隔を変更できます。これを行うには、パブリッシャーサーバーで、SQLServerエージェントを展開します>>ジョブを展開 スナップショットレプリケーションジョブ(TTI412-VM \ SQL2017-AdventureWorks2014-Snapshot_Replication-4)を右クリックし、プロパティを選択します。 。次の画像を参照してください:

    [ジョブのプロパティ]ダイアログボックスが開きます。 スケジュールを選択します ページでスケジュールを選択し、編集をクリックします 。次の画像を参照してください:

    仕事のスケジュール ダイアログボックスが開きます。適切なスケジュールを設定し、[ OK ]をクリックします 。

    上記の構成では、1時間ごとにスナップショットが生成されます。

    スナップショットファイルの場所の変更

    スナップショットファイルを別のフォルダーに配置することもできます。このデモでは、スナップショットファイルはデフォルトのフォルダーである E:\ ReplicationSnapshotに保存されます。 。ロケーションスナップショットファイルを変更します。新しい場所はE:\ Snapshot \ PersonsSchemaになります 。

    パブリケーションのプロパティからスナップショットの場所を変更できます。パブリケーションのプロパティを開くには、ローカルパブリケーションを右クリックします サイト運営者のサーバーで、[プロパティ]を選択します。 次の画像を参照してください:

    パブリケーションプロパティ ダイアログボックスが開きます。ダイアログボックスで、スナップショットを選択します 。 スナップショットについて 画面で、デフォルトのフォルダにファイルを置くをクリアします オプションを選択し、次のフォルダにファイルを配置を選択します オプション。テキストボックスに新しいパスを入力し、[ OK]をクリックします 。次の画像を参照してください:

    この変更を実行すると、現在のスナップショットが無効になります。したがって、この設定を変更すると、次の画像に示すような警告が表示されます。

    [はい]をクリックします。新しいスナップショットを生成し、スナップショットファイルを E:\ Snapshots \ PersonsSchema \ uncに保存します 。次の画像を参照してください:

    レプリケーションステータスの表示

    レプリケーションモニターを使用できます レプリケーションステータスを表示します。レプリケーションモニターを開くには、レプリケーションを展開します nノード>>展開ローカル出版物>> Snapshot_Replicationを右クリックします レプリケーションモニターの起動を選択します 。次の画像を参照してください。

    レプリケーションモニターを使用すると、次を表示できます。

    1. レプリケーションのステータス
    2. サブスクリプションのリスト
    3. 最後の同期日時。

    レプリケーションモニターを使用すると、エージェントとジョブに関連するジョブのステータスを表示できます。表示するには、エージェントを選択します レプリケーションモニター ダイアログボックス。次の画像を参照してください:

    エージェントの下 タブで、次の詳細を表示できます:

    1. 公開ジョブのステータス。
    2. パブリケーションジョブの名前。
    3. 公開ジョブの最終開始日時。
    4. 公開ジョブの完了までの期間。
    5. 最後のアクションはパブリケーションジョブによって実行されました。

    概要

    この記事では、次のことを説明しました:

    1. 高レベルはスナップショットレプリケーションの概要です。
    2. パブリッシャーとサブスクライバーを構成する方法。
    3. レプリケーションモニターとその使用法。

    便利なツール:

    dbForge Data Compare for SQL Server –ビッグデータを処理できる強力なSQL比較ツール。

    dbForge Schema Compare for SQL Server –SQLServer上のデータベースを比較および同期する際の時間と労力を節約する信頼性の高いツール。


    1. 列の値をコンマ区切りのリストに連結する

    2. PostgreSQLで任意の数の行を列に変換する

    3. PostgreSQLの「INSERTにはターゲット列よりも多くの式があります」を修正しました

    4. カスタムORDERBY説明