データベース ミラーリングの前提条件、制限事項、および推奨事項
適用対象 SQL Server
Note
この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに Always On 可用性グループ を使用してください
SQL Server のデータベース ミラーリングは、Microsoft Fabric データベース ミラーリングとは異なるテクノロジです。
このトピックでは、データベース ミラーリングを設定するための前提条件と推奨事項について説明します。 データベース ミラーリングの概要については、「データベース ミラーリング (SQL Server)」を参照してください。
データベース ミラーリングのサポート
Windows の SQL Server の各エディションでサポートされる機能のリストについては、以下を参照してください。
- SQL Server 2022 の各エディションとサポートされている機能
- SQL Server 2019 の各エディションとサポートされている機能
- エディションと SQL Server 2017 のサポートされる機能
- エディションと SQL Server 2016 のサポートされる機能
データベース ミラーリングは、サポートされているすべてのデータベース互換性レベルで動作します。 サポートされている互換性レベルについては、「ALTER DATABASE 互換性レベル (Transact-SQL)」を参照してください。
前提条件
ミラーリング セッションを確立するには、パートナーとミラーリング監視サーバー (存在する場合) が、同じバージョンの SQL Server で実行されている必要があります。
2 つのパートナー (プリンシパル サーバーとミラー サーバー) で同じエディションの SQL Server が実行されている必要があります。 ミラーリング監視サーバー (存在する場合) は、データベース ミラーリングをサポートする SQL Server のすべてのエディションで実行できます。
注意
ミラーリング セッションでのパートナーであるサーバー インスタンスを、より新しいバージョンの SQL Server にアップグレードできます。 詳細については、「 ミラー化されたインスタンスのアップグレード」を参照してください。
このデータベースは、完全復旧モデルを使用する必要があります。 単純復旧モデルと一括ログ復旧モデルでは、データベース ミラーリングがサポートされていません。 そのため、ミラー化されたデータベースでは、常に一括操作が完全にログに記録されます。 復旧モデルについては、「復旧モデル (SQL Server)」を参照してください。
ミラー サーバーにミラー データベースを保持するだけの十分なディスク領域があることを確認します。
注意
レプリケートされるデータベースでのデータベース ミラーリングの使用方法の詳細については、「データベース ミラーリングとレプリケーション (SQL Server)」を参照してください。
ミラー サーバーにミラー データベースを作成する際は、同じデータベース名と WITH NORECOVERY オプションを指定して、プリンシパル データベースのバックアップを復元する必要があります。 また、このバックアップが実行された後で作成されたすべてのログ バックアップについても、WITH NORECOVERY を指定して適用する必要があります。
重要
データベース ミラーリングが停止している場合は、データベース ミラーリングを再開する前に、停止中にプリンシパル データベースで作成されたすべてのログ バックアップをミラー データベースに適用する必要があります。
制限
ミラー化できるのはユーザー データベースのみです。 master、 msdb、 tempdb、または model の各データベースはミラー化できません。
データベース ミラーリング セッション中に、ミラー化されるデータベースの名前を変更することはできません。
データベース ミラーリングは FILESTREAM をサポートしていません。 プリンシパル サーバー上に FILESTREAM ファイル グループを作成することはできません。 FILESTREAM ファイル グループを含むデータベースに対してデータベース ミラーリングを構成することはできません。
複数のデータベースにまたがるトランザクションまたは分散トランザクションでは、データベース ミラーリングがサポートされません。 詳細については、Always On 可用性グループとデータベース ミラーリングでのデータベース間のトランザクションと分散トランザクション (SQL Server) に関するページを参照してください。
パートナー サーバーの構成に関する推奨事項
パートナーは、同じ量のワークロードを処理できる同等のシステムで実行する必要があります。
Note
自動フェールオーバーを伴う高い安全性モードを使用する場合は、各フェールオーバー パートナーの通常の負荷が CPU の 50% 未満である必要があります。 ワークロードによって CPU が過負荷になると、フェールオーバー パートナーがミラーリング セッションで他のサーバー インスタンスに ping を実行できなくなる場合があります。 これにより、不必要なフェールオーバーが発生します。 CPU 使用率を 50% 未満に維持できない場合は、自動フェールオーバーを伴わない高い安全性モードか、高パフォーマンス モードを使用することを推奨しています。
可能であれば、ミラー データベースのパス (ドライブ文字を含む) を、プリンシパル データベースと同一のパスにします。 ファイル レイアウトが異なる場合は、RESTORE ステートメントに MOVE オプションを含める必要があります。 プリンシパル データベースがドライブ 'F:' 上にあっても、ミラー システムには F: ドライブがない場合などがあります。
重要
ミラー データベースの作成時にデータベース ファイルを移動した場合、そのミラー データベースに後でファイルを追加する際に、ミラーリングの中断が必要になる場合があります。
ミラーリング セッションのすべてのサーバー インスタンスが同じマスター コード ページと照合順序を使用する必要があります。 異なるマスター コード ページと照合順序を使用すると、ミラーリングの設定中にエラーが発生する可能性があります。
必要に応じて、データベースのフェールオーバーにかかる時間を見積もり、必要なパフォーマンスを実現できるようにシステムを構成します。 詳しくは、「役割の交代中に発生するサービスの中断時間の算出 (データベース ミラーリング)」を参照してください。
最適なパフォーマンスを得るには、ミラーリングに専用のネットワーク アダプター (ネットワーク インターフェイス カード) を使用します。
高い安全性モードでデータベース ミラーリングを行う場合、ワイドエリア ネットワーク (WAN) の信頼性が十分かどうかに関する推奨事項はありません。 高い安全性モードで WAN 経由のデータベース ミラーリングを使用する場合、不要なフェールオーバーが自動的に行われる可能性があるため、セッションにミラーリング監視サーバーを追加する方法には注意してください。 詳細については、このトピックの「 データベース ミラーリングの配置に関する推奨事項」を参照してください。
データベース ミラーリングの配置に関する推奨事項
データベース ミラーリングのパフォーマンスを最適化するには、非同期動作を使用する必要があります。 同期動作を使用するミラーリング セッションは、ワークロードが大量のトランザクション ログ データを生成するときに、パフォーマンスが低下する可能性があります。
テスト環境ですべての動作モードを調査し、データベース ミラーリングのパフォーマンスを評価することをお勧めします。 ただし、ミラーリングを運用環境に配置する前に、実際のネットワークの性能を理解することが必要です。
自動フェールオーバーを伴う高い安全性モードは、ネットワーク障害が発生する可能性を最小限に抑える、専用接続または非常に単純なネットワーク構成を備えた高サービス ネットワーク用に設計されています。 自動フェールオーバーを伴う高い安全性モードにはこのような質の高いネットワーク環境が不可欠であり、すべてのデータベース ミラーリング セッションに推奨されます。 ただし、高パフォーマンス モードと自動フェールオーバーを伴わない高い安全性モードは、ネットワークの信頼性による影響をそれほど受けません。
したがって、実稼働環境では、以下の配置ガイドラインに従うことをお勧めします。
非同期の高パフォーマンス モードで実行を開始します。 このモードは、ネットワーク環境の影響を受けることが最も少なく、ミラーリングの動作を調べるには最善の構成です。 帯域幅がミラーリングをサポートすることに確信が持て、ミラーリングの設定および環境における非同期モードのパフォーマンスについて理解できるまでは、システムを非同期で実行することをお勧めします。 詳しくは、「 Database Mirroring Operating Modes」をご覧ください。
重要
テストの期間をとおして、データベース ミラーリングの障害の原因となるネットワーク エラーをセッションで監視することをお勧めします。 障害の潜在的な原因の詳細については、「 Possible Failures During Database Mirroring」を参照してください。 データベース ミラーリングの監視方法については、「データベース ミラーリングの監視 (SQL Server)」を参照してください。
非同期動作がビジネス ニーズを満たすことが確信できたなら、同期動作を実行してデータ保護の強化を図ることができます。 自分の環境で同期ミラーリングがどのように動作するのかをテストするときは、最初に自動フェールオーバーを伴わない高い安全性モードをテストすることをお勧めします。 このテストの主な目的は、同期操作がデータベースのパフォーマンスに与える影響を確認することです。 詳しくは、「 Database Mirroring Operating Modes」をご覧ください。
自動フェールオーバーを伴わない高い安全性モードがビジネス ニーズを満たしていること、およびネットワーク エラーによって障害が発生しないことを確認できるまで、自動フェールオーバーは有効にしないでください。 詳細については、「データベース ミラーリング セッション中の役割の交代 (SQL Server)」をダウンロードしてください。
参照
データベース ミラーリングの設定 (SQL Server)
データベース ミラーリングと Always On 可用性グループのトランスポート セキュリティ (SQL Server)
データベース ミラーリング (SQL Server)
データベース ミラーリング構成のトラブルシューティング (SQL Server)