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

トランザクションレプリケーションを作成する方法

    この記事では、トランザクションレプリケーションを作成する方法を示します。

    トランザクションレプリケーションは、パブリケーションDBオブジェクトとその中のデータのスナップショットを生成しました。スナップショットが生成された後、パブリッシャーデータベースで発生したすべてのデータ変更とスキーマ変更がサブスクライバーデータベースに配信されます。トランザクションレプリケーションでは、データとスキーマの変更はほぼリアルタイムであるため、トランザクションレプリケーションを使用してレポートをオフロードしたり、DRサイトとして使用したりすることができます。

    トランザクションレプリケーションを作成すると、SQLServerは次のSQLジョブを作成します

    1. スナップショットエージェントの仕事: スナップショットエージェントジョブは、パブリケーションデータベースオブジェクトのスナップショットを生成します。スナップショットは、ネットワーク上の場所またはハードに保存されます
    2. ログリーダージョブ: ログリーダージョブは、出版物を継続的に監視します。スキーマの変更と、クエリの挿入、更新、削除を検出し、それらにレプリケーションのマークを付けます。ログリーダーは「Sp_Replcmds」を使用します 」をクリックして、レプリケーション用にマークされたコマンドを適用します。

    デモのセットアップ:

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

    デモを設定するとき、私はディストリビューターを作成していません。そのため、パブリッシャーインスタンスはディストリビューターとしても機能します。 「顧客」を作成しました 」AdventureWorks2014データベースのテーブル。 Customerテーブルのデータを複製します。したがって、それは出版社によって記事と呼ばれます。

    パブリッシャーの構成

    パブリッシャーを構成するには、SQL Server Management Studioを開き、データベースインスタンスを展開し、レプリケーションを展開します。 ノードをクリックし、ローカルパブリケーションを右クリックします 新しい出版物を選択します 。

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

    次のダイアログボックスで、発行元として機能するデータベースを選択します。このデモでは、 AdventureWorks2014を使用しています データベースなので、 AdventureWorks2014を選択します データベースリストから次へをクリックします 。

    次のダイアログボックスで、パブリケーションタイプのリストからパブリケーションタイプを選択します。それらの説明は、パブリケーションタイプの説明にも表示されます。 テキストボックス。 トランザクション公開を選択します 次へをクリックします 。

    次のダイアログボックスで、パブリケーションタイプのリストからパブリケーションタイプを選択します。それらの説明は、パブリケーションタイプの説明にも表示されます。 テキストボックス。 トランザクション公開を選択します 次へをクリックします 。

    テーブルのデータをフィルタリングする場合は、[テーブル行のフィルタリング]ダイアログボックスで条件を指定できます。フィルタを追加するには、[追加]をクリックします ボタン。別のダイアログボックスフィルターの追加 開きます。このダイアログボックスでは、フィルターステートメントで目的のフィルターステートメントを指定できます。 テキストボックス。

    このデモでは、顧客のデータをフィルタリングしていません テーブルなので、このダイアログボックスをスキップして、[次へ]をクリックします 。

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

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

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

    次のダイアログボックスで、パブリケーションを作成するか、パブリケーションを作成するためのスクリプトを生成するかを選択できます。 パブリケーションを作成するためのスクリプトファイルを生成するを選択します レプリケーションステップのスクリプトを生成するオプション。パブリケーションを作成しますので、パブリケーションの作成を選択します オプションを選択し、[次へ]をクリックします 。

    次のダイアログボックスで、パブリケーションの名前を指定し、レプリケーションを作成するために実行するタスクの概要を確認して、[完了]をクリックします。 パブリケーションを作成して新しいパブリケーションを閉じる ウィザード

    記事の冒頭で述べたように、トランザクションレプリケーションを作成すると、ログリーダーエージェントジョブ、スナップショットエージェントジョブ、および期限切れのサブスクリプションのクリーンアップジョブが作成されます。

    それらを表示するには、SQLServerエージェントを展開します 、次にジョブを展開します 。

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

    サブスクライバーの構成

    サブスクライバーを構成するには、まず、別のSQLインスタンスに接続します。インスタンスに接続したら、レプリケーションを展開します ローカルサブスクリプションを右クリックします 。

    新しいサブスクリプションウィザード 開きます。ダイアログボックスに、ウィザードの簡単な概要が表示されます。 この開始ページを再度表示しないをオンにすると、この画面の表示をスキップできます。 チェックボックス。 次へをクリックします 次のダイアログボックスに移動します。

    次のダイアログボックスで、パブリケーションサーバーを選択します。 パブリッシャーをクリックします ドロップダウンボックスをクリックし、SQLServerパブリッシャーの検索をクリックします。 。パブリッシャーに接続するためのダイアログボックスが開きます。 サーバー名 テキストボックスで、パブリッシャーサーバーのホスト名を指定し、[接続]をクリックします 。

    サイト運営者との接続が確立されたら、 Customer_Publication およびAdventureWorks2014 データベースと出版物に表示されます テキストボックス。 Customer_Publicationを選択します 次へをクリックします 。

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

    次のダイアログボックスで、サブスクリプションデータベースを選択します。 Customer_DBという名前のデータベースを作成しました 、サブスクライバデータベースとして機能します。 サブスクリプションデータベース ドロップダウンボックスで、 Customer_DBを選択します リストからのデータベース。サブスクリプションデータベースを選択したら、[次へ]をクリックします 。

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

    ここでは配布サーバーを構成しなかったため、発行者が配布者として機能します。サブスクライバーは、SQLログインを使用してパブリッシャー/ディストリビューターに接続します。ディストリビューターを接続するには、「sa」を使用します ログインとパスワード。

    OKをクリックします ダイアログボックスを閉じます。 [配布エージェントのセキュリティ]ダイアログボックスで、[次へ]をクリックします 。

    次のダイアログボックスで、サブスクリプションの同期スケジュールを構成します。継続的に実行するか、スケジュールされた実行を構成するかを選択できます。 継続的に実行を選択します エージェントスケジュール ドロップダウンボックス。 次へをクリックします 。

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

    次のダイアログボックスで、サブスクリプションをすぐに作成するか、サブスクリプションを作成するためのスクリプトを生成するかを選択できます。 スクリプトファイルを生成してサブスクリプションを作成するを選択します レプリケーションステップのスクリプトを生成するオプション。パブリケーションを作成するので、サブスクリプションの作成を選択します オプションを選択し、[次へ]をクリックします 。

    次のダイアログボックスに、サブスクリプションを作成するために実行されたタスクのリストが表示されます。それらを確認して、[完了]をクリックできます 。

    サブスクリプションが作成されると、ローカルサブスクリプションの下にサブスクリプションが表示されます。 ノード。

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

    レプリケーションモニターを使用して、レプリケーションステータスを表示できます。レプリケーションモニターを開くには、[レプリケーション]を展開します 、次に[ローカルパブリケーション]を展開します。 Customer_Publicationを右クリックします レプリケーションモニターの起動を選択します。

    概要:

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

    1. トランザクションレプリケーションの概要。
    2. デモのセットアップ。
    3. レプリケーションパブリケーションを構成する方法。
    4. レプリケーションサブスクライバーを構成する方法。

    便利なツール:

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

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


    1. MySQLDumper:PHPおよびPerlベースのMySQLデータベースバックアップツール

    2. MariaDBでのTIME_FORMAT()のしくみ

    3. oracleblobテキスト検索

    4. OracleのTRANSLATE()関数