SQLサーバーでデータベースをミラーリングしようとしています。データベースを作成し、バックアップを取り、別のサーバーに復元しました。しかし、すべての操作を行ってミラーリングの開始をクリックすると、次のエラーが表示されます。ウィットネスサーバーオプションに「NO」を設定します。
この link のミラーリング手順に従いました。ここでは、手順3で同じ資格情報を使用してプリンシパルサーバーとミラーサーバーの両方にユーザーを作成します。両方のサーバーで同じユーザーを作成しますか?または代替ソリューションがありますか?
私も同じ問題に直面しました。次の項目を一度確認する必要があります。
Services.mscに移動し、SQLサーバーがどのアカウントで実行されているかを確認します。 SQLサーバーとSQLサーバーエージェントサービスが同じ資格情報で実行されることを確認してください。
ミラーデータベースサーバーでは、手順1と同じ手順を実行する必要があります。プリンシパルサーバーと同じ資格情報を指定します。そのユーザーが存在しない場合は、両方のサーバーで同じ資格情報で新しいユーザーを作成します。
プリンシパルサーバーを取得し、SQLサーバーでSecurity-> Loginの下に新しいログインを追加します。サーバーの役割をSysadminおよびpublicとして付与します。同じユーザーをミラーサーバーにも追加します。
次に、プリンシパルデータベースでミラーリングを実行します。そこでエラーは発生しませんでした。
同じ問題、エラー1418。すべてがここで提案されました: link
後知恵でそれは明らかでした。 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
ミラーリングを開始し、問題を解決しました。
誰かを助けることを願っていますScott
上記のすべてのオプションを使い果たした後、ミラーリング環境に変化がありました。プリンシパルミラー構成の2014 Serverに寄与するSQL Server 2008がありました。 2014 Sqlサーバーは、他のDbのHAのAlwaysOn構成でも使用されていました。エンドポイントは、SQL 2008とSQL 2014で異なる名前になりました。
上記のエラーを取得した後、2008年の暗号化はRC4であり、2014年の暗号化はAESであることがわかりました。その結果、SQL2014エンドポイントとのハンドシェイクに失敗していました。以下のコマンドとビオラを使用して、暗号化をSQL 2008の暗号化に一致するように変更しました。
ALTER ENDPOINT [Hadr_endpoint]
FOR DATA_MIRRORING ( ENCRYPTION = REQUIRED ALGORITHM RC4 )
また、ミラーリングを目的としたコピーを復元状態のままにしておかない場合があります。ミラーリングを有効にするには、コピーを残しておく必要があります。
通常、SQL Serverミラーリングの手順は次のとおりです。
1)元のデータベースをバックアップし、ミラーリング用のサーバーにコピーします。
2)トランザクションログをバックアップし、ミラーリングを目的としたサーバーにコピーします。
3)MMC)からデータベースの復元を選択し、データベースのバックアップを見つけて、オプションを設定して復元し、トランザクションのロールバックなしで機能しない状態のままにします。
4)復元を選択してファイルを選択し、ログファイルを選択して、ロールバックなしで機能しないオプションを使用してログファイルのバックアップを復元します。これは、SQL Server 2008のオプションページの下にある2番目のラジオボタンです。
5)元のデータベースコピーサーバーに移動し、ミラーリングをオンにします。会話のミラーリングを開始するには、両方のサーバーでsysadmin権限を持つアカウントを使用する必要があります。
私にとっては、この問題が発生し、ミラーリングエンドポイントをドロップして再作成することで最終的に解決しました(SSMS->サーバーオブジェクト->エンドポイント->データベースミラーリング)
すべての検証に合格する前に、この問題に遭遇しました。最後に新しいエンドポイントを使用すると、機能します。根本的な原因は、5022が他のセッションをブロックする可能性があることです。
SQL Server 2016では、プリンシパルサーバーとミラーサーバーの両方で[ドメインアカウント]をsysadminとして持つことが解決策です。次に、次のように新しいアカウントを作成します
プリンシパルサーバー
use [master]
GO
CREATE LOGIN [domain\mirrorservername$] FROM WINDOWS
GO
GRANT CONNECT ON ENDPOINT::[Mirroring] TO [domain\mirrorservername$]
GO
ミラーサーバー
use [master]
GO
CREATE LOGIN [domain\principalservername$] FROM WINDOWS
GO
GRANT CONNECT ON ENDPOINT::[Mirroring] TO [domain\principalservername$]
GO
これらのアカウントはプリンシパルサーバーとミラーサーバー間のハンドシェイク中に使用されるため、これらのアカウントを作成し、CONNECTアクセス許可を付与する必要があります。
エラーの詳細については、SQLエラーログを確認してください。
この投稿が誰かの助けになることを願っています。
エラー1418は、両方のサーバーで同じドライブ文字を使用して解決されました...
MSは異なる文字を使用することを提案していますが、同じドライブ文字を使用することにしました...
MSから:
また、可能であれば、ミラーデータベースのファイルパス(ドライブ文字を含む)は、プリンシパルデータベースのパスと同じにすることをお勧めします。たとえば、プリンシパルデータベースがドライブ 'F:'にあるが、ミラーシステムにF:ドライブがない場合など、ファイルパスを変える必要がある場合は、RESTOREステートメントにMOVEオプションを含める必要があります。
ドロップエンドポイントミラーリング
行く
CREATE ENDPOINT Mirroring
STATE = STARTED
AS TCP ( LISTENER_PORT = 5022 )
FOR DATABASE_MIRRORING
(ENCRYPTION = DISABLED,ROLE=ALL)
GO
ミラーリングを開始し、問題を解決しました。
誰かを助けることを願っていますScott
これはスコットのおかげで本当に助けられました
Tnx Ritz
上記のいずれも機能しない場合、ここに私の問題の原因があります。両方のサーバーで次のクエリを実行し、よく見てください
SELECT @@Version
プリンシパルサーバーに、ミラーサーバーにインストールされていない更新がいくつかありました。
また、ミラーリングが機能しない理由に関する追加情報をSQL Serverログで確認できます。それは私が両方のサーバーで異なるバージョンを持っていることに気づいた方法です。
同じ問題がありました。ドメインセットアップで、Windows 2008-R2にミラーリングをセットアップしようとしていました。上記のエキスパートの1人が提案したように、SQLSERVERとSQLSERVERAGENTのSQL Server 'ログオン'アカウントを確認し、両方のマシンのSQL Serverサービスに同じドメインアカウントを使用しました。ミラーリングをセットアップできました。
助けてくれてありがとう!