単一のミラーリングされたデータベースの自動フェイルオーバーをトリガーする簡単な方法はありますか?


8

自動フェールオーバー構成を備えた安全性の高いsqlserver2008-R2の単一インスタンスに3つのミラーリングされたデータベースがあります。1つのデータベースのみの自動フェイルオーバーをトリガーする方法はありますか?

SSMSの[フェールオーバー]ボタンをクリックするだけでなく、データベースが実際に到達できない場所をシミュレートしたいと思います。プライマリのエンドポイントを停止できますが、同じエンドポイントを使用するため、3つのデータベースすべてに到達できなくなります。

1 dbだけを無効にするにはどうすればよいですか?

回答:


3

ミラーリングが安全性の高い/自動フェイルオーバー用に正しく構成されている場合は、次のようにしてプリンシパルデータベースをオフラインにできると思いがちです。

alter database YourDb set offline
with rollback immediate
go

データベースをオフラインにすることで、フェイルオーバーしたくない他の2つのデータベースに影響を与えることなく、自動フェイルオーバーができると思います。


1
これは私が機能することを望んでいたソリューションですが、メッセージ1468が返されます。データベースはミラーリングに関与しているため、alterステートメントが失敗しました。
dat_girl

@dat_girl最初にそれをロールバック即時のシングルユーザーとして設定してから、上記のステートメントを試すことができますか?
Thomas Stringer

これは@sharkでも機能しませんでした。同じエラーです。データベースに「状態」の変更を加える前に、ミラーリングを停止する必要があると思います。
dat_girl

2

ミラーリングを有効にするには、SQL-Serverの少なくとも2つ目のインスタンスが必要です。1つは「プリンシパル」用で、もう1つは「ミラー」用です。

追加のインスタンスをインストールする方法については、インスタンスの設定をご覧ください。

自動フェイルオーバーを有効にするには、プリンシパルとミラーの(接続)状態を監視するための3番目のインスタンス(「ウィットネス」)も必要です(「...ウィットネスはデータベースに対応していません。自動サポートフェイルオーバーは証人の唯一の役割です」)。

ミラーリング全体をフェイルオーバーでセットアップするには、「自動フェイルオーバー同期データベースミラーリング(高安全モード)」を参照してください

手順が完了したら、SQL-Serverサービス(プリンシパルまたはミラー)の1つを停止して構成をテストできます。ミラーリングされたデータベースが利用可能になります。

ハードウェア障害から保護されないため、同じ実サーバー上でインスタンスを実行しないことを強くお勧めします。


@voraxに感謝しますが、私はすでにミラーリングの設定をしており、正常に動作します。また、インスタンス上のすべてのデータベースが停止するため、サービスを停止したくありません。1だけ停止したい
dat_girl

0

うーん、alter database whateverdb set partner failoverそれを行うべきですが、サーバー全体が必要になる可能性があります。私が試すことができるものはありません。ドキュメントでは、サーバーデータベースを交換可能に使用しているようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.