Articles

SQLShack

今日の保持、管理、アクセスのデータ量は前例のないものです。 企業は、IT部門がデータをオンラインで無期限にアクセスできるようにし、データの保存と管理に必要なデータベースに強い圧力をかけることを期待して 今日のニーズを満たすためには、古くて非効率なレガシープロセスを新しい、より機敏な技術に置き換える必要があります。 SQL Serverのレプリケーションは、このような要求に対応するための手法の1つです。p>

  • 注意: データベースの複製の詳細については、”さまざまな利害関係者、さまざまな見解:データベース管理に体系的なアプローチが必要な理由”の記事をお読みください。

この記事では、コンポーネント、内部、およびSQLを含む完全なSQL Serverレプリケーショントポグラフィの理解を形作って、すべてをバインドしましょう。 この記事を読んで完了した後、あなたは理解するでしょう:

  • SQL Serverレプリケーション、一般的には
  • トランザクションSQL Serverレプリケーションのコンポーネント、特に
  • ディストリビュータプロパティを取得する方法
  • 同じディストリビュータを使用してパブリッシャーを検索する方法
  • SQL Serverレプリケーションに使用されるデータベースは何ですか
  • レプリケーション環境の一般的なトポロジ
  • SQL Serverレプリケーションモデルの種類にマップされているアーティクルは何ですか
  • パブリケーションの詳細を取得する方法
  • li>
  • サブスクリプションの詳細を取得する方法
  • sql serverレプリケーションエージェント
  • および more…

Replication

SQL Server replicationは、データとデータベースオブジェクトをあるデータベースから別のデータベースにコピーして配布し、データベース間で同期して、データの一貫性と ほとんどの場合、レプリケーションは、目的のターゲットでデータを再現するプロセスです。 SQL Serverレプリケーションは、データを継続的にコピーおよび同期するために使用されます。 一方向、一対多、多対一、双方向など、さまざまなデータ同期アプローチをサポートし、複数のデータセットを互いに同期させるいくつかの異なるレプリケーション手法があります。

トランザクションSQL Serverレプリケーションコンポーネント

次の図は、トランザクションSQL Serverレプリケーションのコンポーネ

SQL Serverレプリケーションを含む…

  • Publisher
  • Publication database
  • Publication
  • Articles
  • Distributor
  • Distribution database
  • Subscriber
  • Subscription database
  • Subscription
  • Replication agent

SQL Server replication diagram

アーティクル

アーティクルは、sql serverレプリケーションの基本単位です。 アーティクルは、テーブル、ストアドプロシージャ、およびビューで構成できます。 フィルタオプションを使用して、記事を水平方向と垂直方向に拡大縮小することができます。 また、いくつかの制限と制限を持つ同じオブジェクト上に複数の記事を作成することもできます。

新規パブリケーションウィザードを使用して、記事を移動できます。 これにより、記事のプロパティを表示したり、記事のプロパティを設定するオプションを提供したりできます。 場合によっては、プロパティはパブリケーションの作成時に設定することができ、読み取り専用プロパティです。

たとえば、SQL Serverレプリケーションパブリケーションの作成後、プロパティに変更が必要な場合は、新しいレプリケーションスナップショットを生成する パブリケーションに1つ以上のサブスクリプションがある場合は、すべてのサブスクリプションを再初期化する必要があります。 詳細については、”SQL Serverの既存のパブリケーションに記事を追加/削除する方法”を参照してください。p>

公開されているすべての記事を一覧表示するには、次のT-SQLを実行します

1
2
3
4
5
6
7
8
9
10
11
12
pub.

、アート。
、アート。
、アート。
、アート。
から
。. アート
内部結合。. Pub
アートの上に。 = Pub.
ORDER BY
Pub., Art.

To get the details of articles in transactional or merge SQL Server replication in a published database, run the following T-SQL.

1
2
3
4
5
6
7
8

SELECT st.name , st.schema_id, st.is_published , st.is_merge_published,is_schema_published
sysから。テーブルstここで、st.is_published=1またはst.is_merge_published=1またはst.is_schema_published=1
UNION
SELECT sp.name、sp.schema_id,0,0,sp.is_schema_published
sysから。procedures sp WHERE sp.is_schema_published=1
UNION
SELECT sv.name、sv。schema_id,0,0,sv.is_schema_published
sysから。ビュー svここで、sv.is_schema_published=1;

To get detailed information about an article in the listed publisher, run the following T-SQL

1
2
3
4
5
6
7

DECLARE @publication AS sysname;
SET @publication = N’PROD_HIST_Pub’;
USE MES_PROD_AP
EXEC sp_helparticle
@publication = @publication;
GO

To get column level details, run the following T-SQL

1
2
3

USE MES_PROD_AP
GO
sp_helparticlecolumns @publication = N’PROD_HIST_Pub’ , @article = ‘tb_Branch_Plant’

iv パブリケーションデータベースのトランザクションレプリケーションでパブリッシュされている列を一覧表示するには、次のT-SQLを実行します。

1
オブジェクト名(object_id)、sysから名前を選択します。列sc WHERE sc.is_replicated=1;

パブリケーション

パブリケーションは、データベースからの記事の論理的なコレクションです。 エンティティを使用すると、プロパティがそのグループ内のすべての記事に継承されるように、記事のプロパティをより高いレベルで定義およ

exec sp_helppublication;

パブリッシャーデータベース

パブリッシャは、SQL Serverレプリケーションアーティクルとして指定されているオブジェク 出版社は、1つ以上の出版物を持つことができます。 各パブリッシャは、複数の内部レプリケーションストアドプロシージャを作成して、データ伝播メカニズムを定義します。

1
2
3

USE Distribution
GO
select * from MSpublications

Publisher

The Publisher is a database instance that makes data available to other locations through SQL Server replication. パブリッシャは1つ以上のパブリケーションを持つことができ、それぞれが論理的に関連するオブジェクトとデータのセットを定義して複製します。

ディストリビュータ

ディストリビュータは、一つ以上のパブリッシャーに関連付けられたレプリケーション固有のデータの倉庫として機能するデー 多くの場合、ディストリビュータはパブリッシャとディストリビュータの両方として機能する単一のデータベースです。 SQL Serverレプリケーションのコンテキストでは、これは一般に”ローカルディストリビューター”と呼ばれます。 一方、別のサーバーで構成されている場合は、”リモートディストリビューター”と呼ばれます。 各パブリッシャは、”ディストリビュータ”と呼ばれる”ディストリビューションデータベース”と呼ばれる単一のデータベースに関連付けられています。

ディストリビューションデータベースは、SQL Serverレプリケーションステータスデータ、パブリケーションに関するメタデータを識別して格納し、場合によっては、パブリッシャからサブスクライバに移動するデータのキューとして機能します。

レプリケーションモデルによっては、アーティクルが変更されたことをパブリケーションを購読しているサブスクライバーに通知する責任もあります。 また、配布データベースはデータの整合性を維持します。

ディストリビューションデータベース

各ディストリビューターには、少なくとも一つのディストリビューションデータベースが必要です。 配布データベースは、記事の詳細、複製メタデータ、およびデータで構成されています。 ただし、単一のパブリッシャで定義されているすべてのパブリケーションは、同じ配布データベースを使用する必要があります。

サーバーがディストリビューターであるかどうかを調べるには?

  • サーバーがディストリビューターであるかどうか?

    1
    SELECT @@ServerName Servername, case when is_distributor=1 then ‘Yes’ else ‘No’ end status FROM sys.servers WHERE name=’repl_distributor’ AND data_source=@@servername;

  • a distribution database installed or not?

    1
    SELECT name FROM sys.databases WHERE is_distributor = 1
  • a Publisher is using this Distributor or not?

    1
    EXEC sp_get_distributor

  • or just to interrogate various Distributor and Distribution database properties?

    1
    2
    3

    EXEC sp_helpdistributor;
    EXEC sp_helpdistributiondb;
    EXEC sp_helpdistpublisher;

Subscriber

A database instance that consumes SQL Server replication data from a publication is called a Subscriber. 加入者は、1つまたは複数の発行者および出版物からデータを受信することができる。 サブスクライバは、レプリケーションの設計とモデルの種類に応じて、データの変更をパブリッシャに渡したり、他のサブスクライバにデータを再パブリッシ

exec sp_helpsubscriberinfo;

サブスクリプション

サブスクリプションは、サブスクライバーに配信されるパブリケーションのコピー サブスクリプションは、どのパブリケーションデータを受信するか、どこで、いつ定義します。 プッシュサブスクリプションとプルサブスクリプション

  • プッシュサブスクリプション:ディストリビューターは、サブスクライバデータベース内のデータを直接更新します
  • プルサブスクリプション: サブスクライバーは、新しい変更が利用可能かどうかをディストリビューターで定期的に確認し、サブスクリプションデータベース自体のデータを更新す
exec sp_helpsubscription;

サブスクリプションデータベース

レプリケーションモデルのターゲットデータベースは、サブスクリプショ

レプリケーションエージェント

SQL Serverレプリケーションは、スタンドアロンプログラムの事前定義されたセットを使用し、イベントは、データに関 既定では、SQL Serverレプリケーションエージェントは、sql Serverエージェントでスケジュールされたジョブとして実行されます。 レプリケーションエージェントは、コマンドラインやレプリケーション管理オブジェクト(RMO)を使用するアプリケーシ Sql Serverレプリケーションエージェントは、レプリケーションモニタとSQL Server Management Studioを使用して監視および管理できます。

Replication snapshot Agent

Replication snapshot Agentは、パブリケーションデータベースとサブスクリプションデータベースの初期データ同期を実行するために必要なデータセットを提供するため、すべてのタイプのSQL Serverレプリケーションテクノロジーで使用されます。 パブリッシュされたアーティクル、スナップショットファイルのスキーマと初期データを準備し、同期の種類に関する情報を配布データベースに記録します。

ログリーダーエージェント

ログリーダーエージェントは、トランザクションレプリケーションでのみ使用されます。 レプリケーショントランザクションは、パブリケーションデータベースのオンライントランザクションログからディストリビューションデータベースに移動します。

ディストリビューションエージェント

ディストリビューションエージェントは、レプリケーションスナップショッ このエージェントは、初期レプリケーションスナップショットをサブスクリプションデータベースに適用し、その後、データの変更が追跡され、ディストリビ

マージエージェント

マージエージェントは、マージレプリケーションモデルで使用されます。 既定では、マージエージェントはサブスクライバからパブリッシャに変更をアップロードし、パブリッシャからサブスクライバに変更をダウンロードします。 各サブスクリプションには、パブリッシャとサブスクライバの両方に接続し、両方を更新する独自のマージエ マージエージェントは、プッシュサブスクリプションのディストリビュータまたはプルサブスクリプションのサブスクライバで実行されます。 ここで、同期は双方向である。 データの競合は、プロセス全体をサポートする一連のトリガーによって処理されます

Summary

これまで、SQL Serverレプリケーションの重要な概念のいくつか また、T-SQLスクリプトを使用して、システムテーブルとレプリケーションストアドプロシージャを照会し、SQL Serverレプリケーションに関する一般的な質問のほと SQL Serverレプリケーションの詳細については、今後の記事で説明します。

あなたが感じる場合は、何かがこの記事で改善することができ、以下のコメントを残すこと自由に感じます…

目次

SQL Serverレプリケーション:コンポーネp>

sql serverトランザクションレプリケーション: Sql Serverデータベースバックアップを使用してサブスクリプションを再初期化する方法

中央サブスクライバと複数のパブリッシャデータベースを使p>データ損失ゼロのsql serverデータベース移行 およびダウンタイムゼロ

トランザクションデータレプリケーションを使用してステージングサーバー上の実稼働負荷を再生およびテストする

: “レプリケーションサポートのみ”を使用してサブスクリプションを再初期化する方法–Tba

SQL Serverレプリケーションの監視とpowershellを使用したアラートの設定–TBA

  • 著者
  • 最近の投稿
Prashanth jayaram
私はデータベース技術に関する11年以上の豊富な実践的な経験を持つデータベース技術者です。 私はマイクロソフト認定プロフェッショナルであり、コンピュータアプリケーションのマスターの学位を取得しています。
私の専門は、高可用性ソリューションとクロスプラットフォームDB移行を実装する&の設計にあります。 現在取り組んでいる技術は、SQL Server、PowerShell、Oracle、MongoDBです。
Prashanth Jayaramによるすべての投稿を表示する
Prashanth Jayaram
Prashanth Jayaramによる最新の投稿(すべてを参照)
  • SQLのデータベース監査の概要-January28,2021
  • Azure間のAzureデータ同期sqlデータベースとオンプレミスsql Server-2021年1月20日
  • powershellを使用してazure sqlデータベースのインポート/エクスポート操作を実行する方法-2021年1月14日