15

SQL Server でデータベースをミラーリングしようとしています。データベースを作成し、そのバックアップを取り、別のサーバーに復元しました。しかし、すべての操作を行った後、ミラーリングの開始をクリックすると、次のエラーが表示されます。Witness サーバーオプションに「NO」を入力しますここに画像の説明を入力

このリンクのミラーリング手順に従いました。ここでは、STEP 3 で同じ資格情報を使用して、プリンシパル サーバーとミラー サーバーの両方にユーザーを作成します。両方のサーバーに同じユーザーを作成する必要がありますか? または代替ソリューションはありますか?

4

10 に答える 10

21

私も同じ問題に直面しました。以下の項目を一度確認する必要があります。

  1. services.msc に移動し、SQL サーバーがどのアカウントで実行されているかを確認します。SQL Server サービスと SQL Server エージェント サービスが同じ資格情報で実行されていることを確認してください。

  2. ミラー データベース サーバーで、手順 1 と同じ手順を実行する必要があります。プリンシパル サーバーと同じ資格情報を指定します。そのユーザーが存在しない場合は、同じ資格情報を使用して両方のサーバーに新しいユーザーを作成します。

  3. プリンシパル サーバーを取得し、SQL サーバーでSecurity-->Loginの下に新しいログインを追加します。サーバーの役割を Sysadmin および public として付与します。ミラー サーバーにも同じユーザーを追加します。

  4. 次に、プリンシパル データベースでミラーリングを行います。そこでエラーは発生しませんでした。

于 2012-06-15T11:14:30.523 に答える
3

同じ問題、エラー1418。

後から考えると、それは明らかでした。MIRRORING > CONFIGURE SECURITY WIZARD を完了すると、結果を説明するページが表示されます。SQL1 および SQL2 ノードを見ると、次の行が重要でした。

On the principal server instance, SQL1
Listener Port: 5022
Encryption: **Yes**


On the mirror server instance, SQL2
Listener Port: 5022
Encryption: **No**

解決。すべての SQL ノードでウィザードを終了したら、次を実行します。

drop endpoint Mirroring
go


CREATE ENDPOINT Mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING 
(ENCRYPTION = DISABLED,ROLE=ALL)
GO

ミラーリングの開始を押して、問題を解決しました。

スコットの誰かを助けることを願っています

于 2013-10-24T09:55:52.983 に答える
2

上記のすべてのオプションを使い果たした後、ミラーリング環境にバリエーションがありました。プリンシパル ミラー構成の 2014 Server に貢献する SQL Server 2008 がありました。2014 Sql サーバーは、他のデータベースの HA の AlwaysOn 構成でも使用されていました。エンドポイントは、SQL 2008 と SQL 2014 で異なる名前が付けられるようになりました。

上記のエラーが発生した後、2008 の暗号化は RC4 で、2014 の暗号化は AES であることがわかりました。その結果、SQL2014 エンドポイントとのハンドシェイクに失敗していました。以下のコマンドとviolaを使用して、SQL 2008の暗号化と一致するように暗号化を変更しました!!

ALTER ENDPOINT [Hadr_endpoint]
    FOR DATA_MIRRORING ( ENCRYPTION  = REQUIRED ALGORITHM RC4 )
于 2015-11-09T19:53:25.463 に答える
1

また、ミラーリングを目的としたコピーを復元状態のままにしない場合もあります。復元状態は、ミラーリングをオンにするために残しておく必要があります。

通常、SQLServerミラーリングの手順は次のとおりです。

1)元のデータベースをバックアップし、ミラーリング用のサーバーにコピーします。

2)トランザクションログをバックアップし、ミラーリング用のサーバーにコピーします。

3)MMCからデータベースの復元を選択し、データベースのバックアップを見つけて、トランザクションのロールバックなしで非機能状態のままにするように設定されたオプションを使用してデータベースを復元します。

4)復元を選択してファイルを選択してから、ログファイルを選択し、ロールバックなしおよび機能しないオプションを使用してログファイルのバックアップを復元します。これは、SQLServer2008のオプションページの下にある2番目のラジオボタンです。

5)元のデータベースコピーサーバーに移動し、ミラーリングをオンにします。ミラーリング会話を開始するには、両方のサーバーでsysadmin権限を持つアカウントを使用する必要があります。

于 2013-02-08T16:22:58.233 に答える
0

私にとっては、この問題が発生し、ミラーリング エンドポイントを削除して再作成することで最終的に解決しました (SSMS -> サーバー オブジェクト -> エンドポイント -> データベース ミラーリング)。

于 2015-11-10T17:37:43.720 に答える
0

以前にこの問題に遭遇しました。すべての検証に合格しました。最後に新しいエンドポイントを使用してください。根本的な原因は、5022 が他のセッションをブロックする可能性があることです。

于 2014-04-15T07:01:18.777 に答える
0

エラー 1418 は、両方のサーバーで同じドライブ文字を使用することで解決されました...

MS は別の文字を使用できることを提案していますが、私は同じドライブ文字を使用することにしました...

MS から:

また、可能であれば、ミラー データベースのファイル パス (ドライブ文字を含む) をプリンシパル データベースのパスと同じにすることをお勧めします。たとえば、プリンシパル データベースがドライブ 'F:' にあるが、ミラー システムに F: ドライブがない場合など、ファイル パスが異なる必要がある場合は、RESTORE ステートメントに MOVE オプションを含める必要があります。

于 2015-06-25T16:37:16.117 に答える
0

上記のいずれも機能しなかった場合、ここに問題の原因があります。両方のサーバーで次のクエリを実行し、よく見てください

SELECT @@Version

ミラー サーバーにインストールされていないプリンシパル サーバーの更新プログラムがいくつかありました。

また、ミラーリングが機能しない理由については、SQL Server ログで追加情報を確認できます。それが、両方のサーバーに異なるバージョンがあることに気付いた方法です。

于 2016-10-20T17:49:44.850 に答える