0

C#アプリケーションはSQL 2005および2008データベースに接続し、データベースミラーリングの現在のステータスを確認する必要があります(たとえば、有効、一時停止、一時停止、切断など)。これを確認できる物件はありますか?

ミラーリングされているすべてのデータベースには、監視と手動フェイルオーバー(同期ミラーリング)がありません。

誰かが私を助けたり、いくつかのドキュメントを指摘したりできるなら、グーグル検索はこれについてあまり出てこない。

4

2 に答える 2

3

現在の状態は次のように表示されsys.database_mirroringます。

SELECT mirroring_state 
FROM sys.database_mirroring
WHERE database_id = DB_ID('...');
于 2010-11-09T23:01:39.703 に答える
0

ここにあるMSDNの記事では、必要な情報を提供するすべてのシステムストアドプロシージャについて説明しています。

sp_dbmmonitorresultsシステムストアドプロシージャを実行して、現在のステータスを取得または更新することもできます。

sp_dbmmonitorresultsを使用することとRemusの答えにあるsys.database_mirroringテーブルを使用することの明らかでない違いの1つは、必要なアクセス許可です。

sys.database_mirroringに必要な権利

Remusが参照したMSDNの記事によると

masterまたはtempdb以外のデータベースの行を表示するには、データベースの所有者であるか、マスターデータベースで少なくともALTERANYDATABASEまたはVIEWANYDATABASEサーバーレベルの権限またはCREATEDATABASE権限を持っている必要があります。ミラーデータベースでNULL以外の値を表示するには、sysadmin固定サーバーロールのメンバーである必要があります

sp_dbmmonitorresultsに必要な権限

SPのミラーリングに関する前述のMSDNの記事によると

sysadmin固定サーバーの役割のメンバー、およびdbm_monitor固定データベースの役割に追加されたユーザー

于 2010-11-09T23:01:46.307 に答える