C#アプリケーションはSQL 2005および2008データベースに接続し、データベースミラーリングの現在のステータスを確認する必要があります(たとえば、有効、一時停止、一時停止、切断など)。これを確認できる物件はありますか?
ミラーリングされているすべてのデータベースには、監視と手動フェイルオーバー(同期ミラーリング)がありません。
誰かが私を助けたり、いくつかのドキュメントを指摘したりできるなら、グーグル検索はこれについてあまり出てこない。
現在の状態は次のように表示されsys.database_mirroring
ます。
SELECT mirroring_state
FROM sys.database_mirroring
WHERE database_id = DB_ID('...');
ここにあるMSDNの記事では、必要な情報を提供するすべてのシステムストアドプロシージャについて説明しています。
sp_dbmmonitorresultsシステムストアドプロシージャを実行して、現在のステータスを取得または更新することもできます。
sp_dbmmonitorresultsを使用することとRemusの答えにあるsys.database_mirroringテーブルを使用することの明らかでない違いの1つは、必要なアクセス許可です。
Remusが参照したMSDNの記事によると
masterまたはtempdb以外のデータベースの行を表示するには、データベースの所有者であるか、マスターデータベースで少なくともALTERANYDATABASEまたはVIEWANYDATABASEサーバーレベルの権限またはCREATEDATABASE権限を持っている必要があります。ミラーデータベースでNULL以外の値を表示するには、sysadmin固定サーバーロールのメンバーである必要があります
SPのミラーリングに関する前述のMSDNの記事によると
sysadmin固定サーバーの役割のメンバー、およびdbm_monitor固定データベースの役割に追加されたユーザー