sys.database_mirroring (Transact-SQL)

適用対象: SQL サーバー

SQL Server のインスタンス内のデータベースごとに 1 つの行が含まれます。 データベースが ONLINE でない場合、またはデータベース ミラーリングが有効になっていない場合、database_idを除くすべての列の値は NULL になります。

master または tempdb 以外のデータベースの行を表示するには、データベース所有者であるか、少なくとも ALTER ANY DATABASE または VIEW ANY DATABASE サーバー レベルのアクセス許可またはマスター データベースの CREATE DATABASE 権限が必要です。 ミラー データベースで NULL 以外の値を表示するには、 sysadmin 固定サーバー ロールのメンバーである必要があります。

Note

データベースがミラーリングに関与しない場合、先頭に "mirroring_" が付いた列はすべて NULL になります。

列名 データ型 説明
database_id int データベースの ID です。 SQL Server のインスタンス内で一意です。
mirroring_guid uniqueidentifier ミラーリング パートナーシップの ID。

NULL = データベースにアクセスできないか、ミラー化されていません。

注: データベースがミラーリングに関与しない場合、先頭に "mirroring_" が付いた列はすべて NULL になります。
mirroring_state tinyint ミラー データベースとデータベース ミラーリング セッションの状態。

0 = 中断

1 = 他のパートナーから切断

2 = 同期中

3 = 保留中のフェールオーバー

4 = 同期済み

5 = パートナーが同期されていません。 現在、フェールオーバーは実行できません。

6 = パートナーが同期されています。 フェールオーバーが可能である可能性があります。 フェールオーバーの要件については、「 Database ミラーリングの動作モードを参照してください。

NULL= データベースにアクセスできないか、ミラー化されていません。
mirroring_state_desc nvarchar(60) ミラー データベースとデータベース ミラーリング セッションの状態の説明には、次のいずれかを指定できます。

DISCONNECTED

SYNCHRONIZED

SYNCHRONIZING

PENDING_FAILOVER

SUSPENDED

非同期

SYNCHRONIZED

NULL

詳細については、「ミラーリング状態 (SQL Server)」を参照してください。
mirroring_role tinyint データベース ミラーリング セッションにおけるローカル データベースの現在のロールです。

1 = プリンシパル

2 = ミラー

NULL= データベースにアクセスできないか、ミラー化されていません。
mirroring_role_desc nvarchar(60) ミラー化におけるローカル データベースのロールの説明。次のいずれかになります。

PRINCIPAL

MIRROR
mirroring_role_sequence int フェールオーバーまたは強制サービスが原因で、ミラーリング パートナーがプリンシパルロールとミラー ロールを切り替えた回数。

NULL= データベースにアクセスできないか、ミラー化されていません。
mirroring_safety_level tinyint ミラー データベースの更新プログラムの安全性設定:

0 = 状態不明

1 = オフ [非同期]

2 = 完全 [同期]

NULL= データベースにアクセスできないか、ミラー化されていません。
mirroring_safety_level_desc nvarchar(60) ミラー データベースの更新に関するトランザクションの安全性の設定。次のいずれかになります。

UNKNOWN

OFF

FULL

NULL
mirroring_safety_sequence int トランザクションの安全性レベルの変更のシーケンス番号を更新します。

NULL= データベースにアクセスできないか、ミラー化されていません。
mirroring_partner_name nvarchar(128) データベース ミラーリング パートナーのサーバー名。

NULL= データベースにアクセスできないか、ミラー化されていません。
mirroring_partner_instance nvarchar(128) 他のパートナーに対するインスタンス名とコンピューター名。 クライアントは、パートナーがプリンシパル サーバーになる場合に、この情報をパートナーに接続する必要があります。

NULL= データベースにアクセスできないか、ミラー化されていません。
mirroring_witness_name nvarchar(128) データベース ミラーリング監視サーバーのサーバー名。

NULL = ミラーリング監視サーバーが存在しません。
mirroring_witness_state tinyint データベースのデータベース ミラーリング セッションにおけるミラーリング監視サーバーの状態は、次のいずれかになります。

0 = 不明

1 = 接続済み

2 = 切断済み

NULL = ミラーリング監視サーバーが存在しない、データベースがオンラインでない、またはデータベースがミラー化されていない。
mirroring_witness_state_desc nvarchar(60) 状態の説明は、次のいずれかになります。

UNKNOWN

CONNECTED

DISCONNECTED

NULL
mirroring_failover_lsn numeric(25,0) 両方のパートナーのディスクに対してセキュリティが強化されていることが保証されている最新のトランザクション ログ レコードのログ シーケンス番号 (LSN)。 フェールオーバー後、新しいミラー サーバーが新しいミラー データベースと新しいプリンシパル データベースの同期を開始する調整ポイントとして、 mirroring_failover_lsn がパートナーによって使用されます。
mirroring_connection_timeout int ミラーリング接続のタイムアウト (秒単位)。 これは、パートナーまたはミラーリング監視サーバーからの返信を待機する秒数です。この時間を過ぎるとパートナーまたはミラーリング監視サーバーは使用できないものと見なされます。 タイムアウトの既定値は 10 秒です。

NULL= データベースにアクセスできないか、ミラー化されていません。
mirroring_redo_queue int ミラー化で再実行されるログの最大サイズ。 mirroring_redo_queue_typeが UNLIMITED (既定の設定) に設定されている場合、この列は NULL になります。 データベースがオンラインでない場合も、この列は NULL になります。

上記以外の場合、この列にはログの最大サイズ (MB 単位) が格納されます。 最大値に達すると、ミラー サーバーが追いつくと、プリンシパルでログが一時的にストールします。 この機能により、フェールオーバー時間が制限されます。

詳しくは、「役割の交代中に発生するサービスの中断時間の算出 (データベース ミラーリング)」を参照してください。
mirroring_redo_queue_type nvarchar(60) UNLIMITED は、ミラーリングによって再実行キューが阻害されないことを示します。 これが既定の設定です。

再実行キューの最大サイズ (メガ バイト単位) の MB。 キューサイズがキロバイトまたはギガバイトとして指定された場合、データベース エンジンは値をメガバイトに変換します。

データベースがオンラインでない場合、この列は NULL です。
mirroring_end_of_log_lsn numeric(25,0) ディスクにフラッシュされたローカルのログの終わり。 これは、ミラー サーバーの堅牢化された LSN に相当します ( mirroring_failover_lsn 列を参照)。
mirroring_replication_lsn numeric(25,0) レプリケーションが送信できる最大 LSN。

アクセス許可

カタログ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。

参照

カタログ ビュー (Transact-SQL)
ALTER DATABASE (Transact-SQL)
sys.database_mirroring_witnesses (Transact-SQL)
sys.database_mirroring_endpoints (Transact-SQL)
データベースとファイルのカタログ ビュー (Transact-SQL)
SQL Server システム カタログに対するクエリに関してよく寄せられる質問