2

2 台の異なる SQL Server マシン上のデータベースに対して、SQL Server 2005 のデータベース ミラーリングをセットアップしました。ここで使用される監視サーバーはありません。また、データベースのプライマリ サーバーとミラー サーバーで、それぞれ "Principal/Synchronized" と "Mirror, Synchronized/Restoring" というステータスも表示されます。

ここで、ミラー サーバーへのフェールオーバーが正常に機能するかどうかをテストしたいと考えました。そこで、以下のような小さなコンソール アプリを作成しました。

try
{
    SqlConnection cn = new SqlConnection("data source=PRIMARYSQL1;Failover Partner=MIRRORSQL1;initial catalog=TESTDB;Integrated Security=SSPI;");
    SqlCommand cm = new SqlCommand("insert into department(name) values('Dept10')", cn);
    cn.Open();
    cm.ExecuteNonQuery();
}

次に、プライマリ サーバーの SQL Server および SQL Agent サービスをオフにしました。コンソール アプリは引き続き正常に動作すると予想していましたが、以下のエラーが発生しました。

「SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: 名前付きパイプ プロバイダー、エラー: 40 - SQL Server への接続を開けませんでした)"

また、プライマリ サーバーがダウンすると、ミラー サーバーからミラー データベースをプライマリにすることができないため、ミラー データベースをプライマリにする方法がありません。

私は何か間違ったことをしていると確信しています。誰でも私を助けることができますか?

4

2 に答える 2

2

自動フェールオーバーが発生することを期待していますが、監視なしでは自動フェールオーバーを実行できません。安価な/古いハードウェアから実行されている SQL Express インスタンスは監視として機能できることを考えると、プライマリ損失の場合にデータ損失の可能性がある手動フェールオーバーを行うよりも、監視を追加して自動フェールオーバーを行うことを強くお勧めします。 .

于 2010-10-21T18:28:27.007 に答える
0

私はあなたがこのようなものを探していると思います(これを鏡の上で実行してください):

ALTER DATABASE dbName SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS GO

于 2010-10-21T16:41:15.127 に答える