web-dev-qa-db-ja.com

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

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

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

enter image description here

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

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

11
Rachel

@ mrdenny's answer 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記事 に注意してください

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

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

19
Kin Shah

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

8
mrdenny