適用対象:SQL Server
Azure SQL Managed Instance
レプリケーションを設定した後は、レプリケーショントポロジーの管理方法を理解することが重要です。 この記事では、いくつかの分野で基本的なベストプラクティスの指針を提供し、それぞれの分野に関する詳細へのリンクを掲載しています。 この記事で示されたベストプラクティスのガイダンスに従うことに加え、よくある質問や課題を理解するためによくある質問( Frequently Asked Questions for Replication Administrators)を読むことも検討してください。
ベストプラクティスの指針を2つの分野に分けてください:
以下の情報は、すべてのレプリケーショントポロジーで実装すべきベストプラクティスをカバーしています。
バックアップと復元方法の開発およびテスト
レプリケーション トポロジ スクリプトの作成
しきい値および警告の作成
レプリケーショントポロジを監視します。
パフォーマンス基準の確立と必要に応じたレプリケーションの調整
以下の情報は、トポロジー上で必ずしも必要ではないかもしれない、考慮すべきベストプラクティスを紹介しています:
定期的なデータの検証
プロファイルを使用したエージェント パラメーターの調整
公開および配布の保持期間を調整する
アプリケーション要件が変更された場合のアーティクルおよびパブリケーションのプロパティの変更方法についての理解
アプリケーション要件が変更された場合のスキーマの変更方法についての理解
バックアップと復元方法の開発およびテスト
すべてのデータベースを定期的にバックアップし、定期的にバックアップを復元できるかどうかテストしてください。 レプリケートデータベースも同じです。 以下のデータベースを定期的にバックアップしてください:
パブリケーション データベース
ディストリビューション データベース
サブスクリプション データベース
パブリッシャー、ディストリビューター、すべてのサブスクライバーのmsdb データベースおよび master データベース
複製されたデータベースは、データのバックアップや復元時に特別な注意が必要です。 詳細については、「 レプリケートされたデータベースのバックアップと復元」を参照してください。
レプリケーション トポロジ スクリプトの作成
トポロジー内のすべてのレプリケーションコンポーネントを、災害復旧計画の一環としてスクリプト化します。 スクリプトを使って繰り返し作業を自動化することもできます。 スクリプトには、パブリケーションやサブスクリプションなど、レプリケーションコンポーネントを実装するために必要な Transact-SQL システムのストアドプロシージャが含まれています。 スクリプトはウィザード(例えばNew Publication Wizard)やコンポーネント作成後にSQL Server Management Studioで作成してください。 スクリプトの閲覧、修正、実行はSQL Server Management Studioまたはsqlcmdで行えます。 複製トポロジーを再構成する必要がある場合に備えて、スクリプトとバックアップファイルを保存してください。 詳細については、「レプリケーションのスクリプト作成」を参照してください。
プロパティを変更したらコンポーネントをリスクリプトしてください。 トランザクションレプリケーションでカスタムストアドプロシージャを使う場合は、スクリプトと一緒に各プロシージャのコピーを保存してください。 手順が変わったらコピーを更新してください。 手順は通常、スキーマの変更やアプリケーション要件の変更により変更されます。 カスタム プロシージャの詳細については、「トランザクション アーティクルに変更を反映する方法の指定」を参照してください。
パフォーマンス基準の確立と必要に応じたレプリケーションの調整
レプリケーションを設定する前に、レプリケーションのパフォーマンスに影響を与える要因に精通してください:
サーバーおよびネットワークのハードウェア
データベースの設計
ディストリビューターの構成
パブリケーションの設計およびオプション
フィルターの設計および使用方法
サブスクリプション オプション
スナップショット オプション
エージェント パラメーター
管理
レプリケーションを設定した後は、パフォーマンスベースラインを作成しましょう。 このベースラインは、アプリケーションやトポロジーで典型的なワークロードに対してレプリケーションがどのように振る舞うかを理解するのに役立ちます。 レプリケーション モニターおよびシステム モニターを使用し、以下に示すレプリケーション パフォーマンスの 5 つのディメンションについて標準となる数値を決定してください。
レイテンシ:レプリケーショントポロジー上でデータ変更がノード間で伝播するのにかかる時間。
スループット : 長期間にわたってシステムが維持できるレプリケーションの総利用状況 (一定期間内に配信されたコマンドで測定されます)。
コンカレンシー数 : システムにおいて同時に実行可能なレプリケーションのプロセス数。
同期の実行時間 : 同期処理が完了するまでに必要な時間。
リソース消費量 : レプリケーション プロセスの結果として使用されるハードウェアおよびネットワークのリソース。
トランザクション レプリケーションに最も関連するのは待機時間およびスループットです。トランザクション レプリケーションを使用するシステムでは、一般的に短い待機時間と高いスループットが要求されるためです。 マージ レプリケーションに最も関連するのはコンカレンシー数と同期の実行時間です。マージ レプリケーションを使用するシステムでは多数のサブスクライバーが存在することが多く、これらのサブスクライバーに対してパブリッシャーが同時に多数の同期を行うことがあるためです。
基準値を設定したら、レプリケーションモニターで閾値を設定します。 詳細については、「Set Thresholds and Warnings in Replication Monitor」 (レプリケーション モニターのしきい値と警告の設定) と「Use Alerts for Replication Agent Events」 (レプリケーション エージェント イベントに対する警告の使用) を参照してください。 パフォーマンスの問題に直面した場合は、前述のパフォーマンス向上記事の提案を確認してください。 直面している問題に影響を与える分野の変更を適用しましょう。
しきい値および警告の作成
レプリケーションモニターはステータスやパフォーマンスに関連する閾値を設定できます。 トポロジーに適した閾値を設定しましょう。 閾値に達すると警告が表示され、メールアカウントやポケットベル、その他のデバイスにアラートを送信することも可能です。 詳細については、「 Set Thresholds and Warnings in Replication Monitor」を参照してください。
監視閾値に関連するアラートに加え、レプリケーションはレプリケーションエージェントの動作に応答する事前定義のアラートを提供します。 これらのアラートを使って、複製トポロジーの状態を把握しましょう。 アラートについて説明した記事を確認し、あなたの管理ニーズに合ったものを使いましょう。 必要に応じて追加のアラートを作成することも可能です。 詳細については、「レプリケーション エージェント イベントに対する警告の使用」を参照してください。
レプリケーション トポロジを監視する
レプリケーショントポロジーを作成し、閾値やアラートを設定したら、定期的にレプリケーションを監視してください。 レプリケーション トポロジの監視は、レプリケーションの配置における重要な側面です。 レプリケーション活動は分散しているため、レプリケーションに関与するすべてのコンピュータ間で活動と状況を追跡しなければなりません。 以下のツールを使ってレプリケーションを監視してください:
レプリケーションモニターは、レプリケーションを監視する上で最も重要なツールです。 これにより、複製トポロジー全体の健全性を監視できます。 詳しくは、「 Monitoring Replication」をご覧ください。
Transact-SQL およびレプリケーション管理オブジェクト (RMO) には、レプリケーション監視用のインターフェイスが用意されています。 詳しくは、「 Monitoring Replication」をご覧ください。
レプリケーションのパフォーマンスの監視には、システム モニターも役立ちます。 詳細については、「 Monitoring Replication with System Monitor」を参照してください。
定期的なデータの検証
レプリケーションは検証を必要としませんが、トランザクションレプリケーションやマージレプリケーションの場合は定期的に検証を実行するべきです。 検証は、加入者側のデータがPublisher側のデータと一致していることを検証します。 検証が成功した場合、その時点でPublisherからのすべての変更がSubscriberに複製され(Subscriberが更新をサポートしている場合はSubscriberからPublisherへも複製)、両データベースが同期していることを示します。
出版データベースのバックアップスケジュールに従って検証を行います。 例えば、出版データベースに週に一度の完全なバックアップがある場合、バックアップ完了後に週に一度検証を実行します。 詳細については、「レプリケートされたデータの検証」 を参照してください。
エージェント プロファイルによるエージェント パラメーターへの必要に応じた変更
エージェント プロファイルを使用すると、レプリケーション エージェントのパラメーターを簡単に設定できます。 また、エージェントのコマンドラインでパラメータを指定することもできますが、パラメータの値を変更する必要がある場合は、あらかじめ定義されたエージェントプロファイルを使うか、新しいプロファイルを作成するのが一般的に適しています。 例えば、マージレプリケーションを使っていて、加入者がブロードバンド接続からダイヤルアップ接続に移行する場合、マージ エージェントの遅いリンクプロファイルの使用を検討してください。 このプロファイルは、遅い通信リンクにより適したパラメータセットを使用します。 詳しくは、「 レプリケーション エージェント プロファイル」をご覧ください。
パブリケーションおよびディストリビューションの保有期間の必要に応じた調整
トランザクション レプリケーションとマージ レプリケーションでは、ディストリビューション データベースでのトランザクションの保有期間、およびサブスクリプションの同期頻度を決定する保有期間が使用されます。 最初はデフォルト設定を使い、トポロジーを監視して設定の調整が必要かどうかを判断してください。 たとえば、マージ レプリケーションの場合、パブリケーションの保有期間 (既定では 14 日間) によって、システム テーブルにおけるメタデータの保有期間が決定されます。 サブスクリプションが常に5日以内に同期するなら、設定を低い数字に調整することを検討してください。 この変更によりメタデータが減少し、パフォーマンスの向上が期待されます。 詳細については、「 Subscription Expiration and Deactivation」を参照してください。
アプリケーション要件が変わった場合にパブリケーションを変更する方法を理解する
出版物を作成した後、記事の追加や削除、出版物および記事のプロパティを変更する必要があるかもしれません。 ほとんどの変更は出版物作成後に許可されますが、場合によっては出版物の新しいスナップショットを生成し、その出版物の購読を再初期化する必要があります。 詳細については、「Change Publication and Article Properties」 (パブリケーションおよびアーティクルのプロパティの変更) と「既存のパブリケーションでのアーティクルの追加および削除」を参照してください。
アプリケーション要件が変更された場合のスキーマの変更方法についての理解
多くの場合、アプリケーションが本番環境に入った後にスキーマの変更が必要です。 レプリケーショントポロジーでは、これらの変更をすべてのサブスクライバーに伝播させる必要があることが多いです。 レプリケーションは、パブリッシュされたオブジェクトに対するさまざまなスキーマ変更をサポートしています。 適切な公開オブジェクトに対して以下のスキーマ変更を加えた場合、Microsoft SQL Server Publisherでその変更はデフォルトですべてのSQL Serverサブスクライバーに伝播されます:
ALTER TABLE
ALTER VIEW
ALTER PROCEDURE
ALTER FUNCTION
ALTER TRIGGER
詳細については、「パブリケーション データベースでのスキーマの変更」を参照してください。