データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

新しい記事の追加と既存のSQLServerトランザクションレプリケーションの再初期化

以前のブログでは、データベースのバックアップを使用して大規模なデータベースのレプリケーションを初期化する方法について説明しました。次に、新しい記事を追加し、バックアップによって構成された既存のSQLServerトランザクションレプリケーションを再初期化する方法について説明します。

はじめに

通常、ユーザーはスナップショットエージェントを使用してパブリケーションに新しい記事を追加したり、サブスクライバーを再初期化したりする傾向がありますが、このシナリオでは、データベースバックアップを使用してトランザクションレプリケーションを既に構成しています。詳細な手順は次のとおりです。

  1. バックアップで初期化された既存のパブリケーションに新しい記事を追加します。
  2. バックアップですでに初期化されているサブスクライバーを再初期化します。

シナリオ1:新しい記事をに追加する方法バックアップで初期化された既存のパブリケーション:

このシナリオでは、トランザクションレプリケーションは、バックアップファイルを使用して次のようにすでに構成されています。

-パブリッシャー+ディストリビューター :Node1-サブスクライバー :Node2-パブリッシャーデータベース :ABC_Pub-サブスクライバーデータベース :ABC_Sub-出版物 :ABC_Pub_Bkp-サブスクリプション :ABC_Sub_Bkp-記事 :車、自転車

既存のパブリケーションに新しい記事を追加するには、発行者とサブスクライバーの間でデータを手動で同期します(詳細な手順で説明します)。

プロセスステップの概要:
  1. 一般的なインポート/エクスポート方法を使用して、発行者からサブスクライバーへの新しい記事のデータを同期します。
  • パブリッシャーデータベースに新しいテーブルを追加し、いくつかの行を挿入します。
  • 新しいテーブルの作成定義をスクリプト化し、サブスクライバデータベースで実行します。
  • export \ importメソッドを使用して、パブリッシャーとサブスクライバーの間でデータを同期します。
  1. ログリーダーとディストリビューターエージェントのジョブを停止します。
  2. GUIを使用してパブリケーションに新しい記事を追加し、構成を完了します。
  3. ログリーダーとディストリビューターエージェントのジョブを有効にして開始します。
  4. サイト運営者に新しいデータを挿入します。
  5. サブスクライバーのデータを検証します。

ステップ1:を使用して、パブリッシャーからサブスクライバーへの新しい記事のデータを同期します。インポート/エクスポート方法。

既存のレプリケーションには2つの記事があり、パブリッシャーデータベース用にさらに2つのテーブルを作成し、後でそれらをレプリケーションに追加します。

既存のレプリケーションに関する記事:

パブリッシャーデータベースに2つの新しいテーブルを作成し、各テーブルにいくつかの行を追加しました。次に、両方のテーブルの作成定義をスクリプト化し、サブスクライバデータベースで実行します。

パブリッシャーデータベースに2つの新しいテーブルが作成されました:

パブリッシャーからの定義を使用してサブスクライバーにテーブルを作成しました:

次に、import \ exportメソッドを使用して、パブリッシャーとサブスクライバーの間でデータを同期します。

パブリッシャーデータベースを右クリック->[データのエクスポート]を選択->ウィザードに従って必要な情報を渡します。

ソースサーバー(発行元)とデータベース名を選択します:

次のステップで、宛先サーバー(サブスクライバー)とデータベース名を選択します:

データを転送するテーブル名を選択し、[次へ]をクリックします:

次のステップでは、エクスポートは成功しました:

データの検証: ご覧のとおり、データはパブリッシャーとサブスクライバーの間で同期されています。

2。ログリーダーとディストリビューターエージェントのジョブを停止します–

記事を操作する前に、レプリケーションエージェントを停止することをお勧めします。

3。 GUIを使用してパブリケーションに新しい記事を追加し、構成を完了します

レプリケーションフォルダの下にあるパブリケーションを右クリックし、[プロパティ]->[記事]ページに移動->[リストにあるチェック済みの記事のみを表示する]のチェックを外します ->公開するオブジェクトの下にある2つの新しい記事を選択します つまり、この場合は国と顧客で、[OK]をクリックして構成を完了します。

4。ログリーダーとディストリビューターエージェントのジョブを有効にして開始します–

エージェントを有効にして開始したら、新しく追加されたレコードをログリーダーでキャプチャしてから、ディストリビューターエージェントでサブスクライバーに複製する必要があります。次のステップでは、データが検証されます。

5。出版社に新しいデータを挿入します。

次に、両方のパブリッシャーテーブルにデータを追加して、各テーブルにさらに5つのレコードを追加します。

6。サブスクライバーのデータを検証します:

データの検証後、両方のテーブルに5つの新しいレコード(合計10行)が追加されたことがわかります。同じことが加入者に複製されました。

レプリケーションのヘルスステータス:

シナリオ2:バックアップで既に初期化されているサブスクライバーを再初期化する方法。

>

サブスクライバーを再初期化することでレプリケーションの同期の問題を修正する最後のオプションが残っている場合がある2番目のシナリオに移動します。

この例では、バックアップを介してレプリケーションを初期化しました。サブスクライバーを再初期化するプロセス手順は次のとおりです。

  1. ログリーダー、ディストリビューターエージェント、およびディストリビューターのクリーンアップジョブを停止します。
  2. パブリッシャーデータベースの完全バックアップを取り、T-Logバックアップジョブを無効にします。
  3. replaceを使用してサブスクライバデータベースのデータベースを復元します。
  4. データを検証します。
  5. sp_addsubscriptionを実行します
  6. ログリーダーとディストリビューターのジョブを有効にし、パブリッシャーデータベースに新しいレコードを挿入し、サブスクライバーのデータを検証します。

1。ログリーダーとディストリビューターエージェントのジョブを停止します。

記事で操作を行う前に、レプリケーションエージェントを停止することをお勧めします。

2。パブリッシャーデータベースの完全バックアップを取り、T-Logバックアップジョブを無効にします。

パブリッシャーサーバー上のデータベースABC_Pubの完全バックアップをトリガーし、T-Logバックアップジョブがある場合は無効にします。

3。 replaceandnorecoveryを使用してサブスクライバデータベースのデータベースを復元します

サブスクライバデータベースABC_SubをReplaceで復元します:

4。パブリッシャーデータベースとサブスクライバーデータベース間のデータを検証します。

データは検証されており、次のスナップショットに示すように、CarsとBikesのテーブルにはそれぞれ5つのレコードがあり、Countryとcustomerのテーブルにはそれぞれ10のレコードがあります。

5。 sp_addsubscriptionを実行します:

次に、必要なパラメータを使用して次のストアドプロシージャを実行し、サブスクライバを再初期化します。

6。ログリーダー、ディストリビューターエージェント、およびクリーンアップジョブを有効にします。パブリッシャーデータベースに新しいレコードを挿入し、サブスクライバーのデータを検証します。

レプリケーションエージェントジョブを有効にして開始します:

次の2つのレプリケートされたテーブルに追加の5つのレコードを挿入します:

サブスクライバーデータベースで今すぐデータを検証します:

これで検証が完了し、新しく追加された5つのレコードがサブスクライバーに置き換えられ、すべてのテーブルにそれぞれ10のレコードが含まれるようになりました。

レプリケーションのヘルスチェック:

結論

上記の2つのシナリオが、新しい記事の追加と、バックアップによって既に初期化されているサブスクライバーの再初期化に役立つことを願っています。

コメントや質問をするには、[フィードバック]タブを使用します。私たちと会話を始めることもできます。


  1. MicrosoftSQLServerクエリストア

    Microsoft®SQLServer®クエリストアは、その名前が示すように、実行されたクエリのデータベース履歴、クエリの実行時実行統計、および実行プランをキャプチャするストアのようなものです。データはディスクに保存されるため、トラブルシューティングの目的でいつでもクエリストアデータを取得できます。SQLServerを再起動してもデータに影響はありません。 SQL Server 2016で導入され、以降のすべてのエディションで利用できるクエリストアを使用して、クエリプランの変更によって引き起こされるパフォーマンスの問題をトラブルシューティングします。 はじめに ベースラインデータ分析はパフォ

  2. PostgresSQLでのレプリケーション

    レプリケーションでは、1つのデータベースサーバーであるソースからデータをコピーします。 、別のサーバーへのレプリカ 。レプリケーションは強力なデータベース機能であり、高可用性を提供し、ディザスタリカバリをサポートします。 はじめに また、テストとレポートの目的で使用するレプリカサーバーを作成して、本番のオンライントランザクション処理(OLTP)データベースの負荷を軽減することもできます。この投稿は、PostgreSQL®のさまざまなタイプのレプリケーションと、PostgreSQLデータベースのストリーミングレプリケーションを実装するために必要な手順を理解するのに役立ちます。 レプリケーション