1つのデータベースをフェイルオーバーした場合、同じミラーエンドポイントを共有する他のデータベースもフェイルオーバーしますか?


11

単一のSQL Serverインスタンスでミラーリングするための2つのデータベースセットアップがあります。テストデータベースと本番データベースです。どちらも、まったく同じエンドポイントを使用して別のサーバーにミラーリングされます。

テストデータベースのデータベースプロパティに移動して[フェールオーバー]ボタンをクリックすると、両方のデータベースがミラーエンドポイントを共有し、それらのサーバーネットワークアドレスプロパティが同じであるため、本番データベースもフェールオーバーしますか?

ここに画像の説明を入力してください

2番目のデータベースのミラーリングをセットアップするときに、何も新しく構成する必要がなかったので心配です。既存の情報をすべて使用しただけです。

データベースプロパティの[フェールオーバー]ボタンを使用すると、そのエンドポイントを使用するすべてのデータベース、またはプロパティを表示している特定のデータベースのみがフェールオーバーされますか?

回答:


19

@mrdennyの答えは正確です。1つのデータベースをフェイルオーバーしても、他のすべてのデータベースもフェイルオーバーするわけではありません。

ただし、データベースミラーリングエンドポイントの概要を説明するだけです。

BOLから、

Microsoft SQL Server 2005以降のバージョンの接続管理は、エンドポイントに基づいています。エンドポイントは、SQL Serverがネットワーク経由で通信できるようにするSQL Serverオブジェクトです。データベースミラーリングの場合、サーバーインスタンスには専用のデータベースミラーリングエンドポイントが必要です。サーバーインスタンス上のすべてのミラーリング接続は、単一のデータベースミラーリングエンドポイントを使用します。このエンドポイントは、他のサーバーインスタンスからデータベースミラーリング接続を受信するためだけに使用される特別な目的のエンドポイントです。

より柔軟にするために、T-sqlを使用して手動フェイルオーバーを実行できます。

ミラーDBでミラーリングをオフミラーリングの解除)にします。

ALTER DATABASE <<DB NAME>> SET PARTNER OFF

リカバリーmod DBをRECOVERYに設定します

RESTORE DATABASE <<DB NAME>> WITH RECOVERY

SQL認証を使用している場合の修正および孤立したユーザー

EXEC sp_change_users_login Auto_Fix , ‘<<username>>’

編集:

(スクリーンショットのように)高安全モードを使用しているので、プリンシパルサーバーから以下を使用できます

ALTER DATABASE <<DB NAME>> SET PARTNER FAILOVER

そうすることで、ロールの反転のみが発生し、ミラーリングの方向が逆になります-プリンシパルはミラーになり、その逆も同様です。MIRRORINGは壊れていません。

このMSDNの記事に従って

手動フェールオーバーは、プリンシパルサーバーからのみ開始できます。

フェイルオーバー全体を自動化する場合は、データベースミラーリングの自動化を参照してください。


8

いいえ、それはしません。データベースは互いに独立してフェイルオーバーされます。テストデータベースをフェイルオーバーしても害はありません。本番データベースはそのままです。

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