web-dev-qa-db-ja.com

ミラーリング-サーバーネットワークアドレスに到達できません

SQL Server 2008 R2がインストールされています。 3つのインスタンスが含まれています。

  1. デフォルト(MSSQLServer)
  2. 最初のインスタンス
  3. 2番目のインスタンス

これらはすべてネットワークサービスとしてログオンします。

デフォルトのインスタンスはプリンシパルサーバーです最初のインスタンスはミラーです2番目のインスタンスは監視サーバーです

最初に、主データベースの完全バックアップとトランザクションログバックアップを作成しました。同じデータベース名を維持することで最初のインスタンスに復元し、リカバリ状態はリカバリ不可

最後に、ミラーリングを開始したところ、以下の2つのエラーメッセージが表示されました。

enter image description here

enter image description here

13
testing

基本的な接続テストをいくつか試してください。

  1. 5022、5023、5024がリッスンしていることを確認します。
  2. 使用しているサーバー名が正しいことを確認してください。

コマンドラインから:

netstat -an

enter image description here

私のサーバーでは、5022がリッスンしていることがわかります。

次に、Telnet経由でこれらのポートに接続できることを確認します

telnet fully-qualified-server-name 5022

ミラーリングプロパティGUIのNoteセクションの「ウィットネスフィールド」のすぐ下で言及されているように、サーバー名は完全修飾TCPアドレスである必要があります。

enter image description here

黒い画面が表示されるはずです。この例では、接続に失敗するような名前を選択しました。 「接続を開けませんでした」と表示される場合は、ミラー、プリンシパル、およびウィットネスとして定義されているサーバーに到達できないか、正しい名前を使用していません。

Telnetクライアントは、Windows 2008の[機能]に追加できます。

Windows 2008では、[コンピューター]を右クリックすると、完全なコンピューター名が表示されます。コマンドラインからもpingできるはずです。例:ping myservername

更新

各SQL Serverインスタンスで次のクエリを実行し、結果を質問に入力してください。これらのトラブルシューティングのヒントの多くは、以下から取得されます。 http://msdn.Microsoft.com/en-us/library/ms189127.aspx

TCPエンドポイントを表示

SELECT type_desc, port FROM sys.tcp_endpoints;

ミラーリングエンドポイントのステータスを表示します

SELECT state_desc FROM sys.database_mirroring_endpoints;

ROLEが正しいことを確認してください

SELECT role FROM sys.database_mirroring_endpoints;

エンドポイントへのアクセス許可を表示します

SELECT EP.name, SP.STATE, 
   CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id)) 
      AS GRANTOR, 
   SP.TYPE AS PERMISSION,
   CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id)) 
      AS GRANTEE 
   FROM sys.server_permissions SP , sys.endpoints EP
   WHERE SP.major_id = EP.endpoint_id
   ORDER BY Permission,grantor, grantee; 
GO

他のサーバーインスタンスからのサービスアカウントのログインには、CONNECT権限が必要です。他のサーバーからのログインにCONNECT権限があることを確認してください。エンドポイントのCONNECT権限を持つユーザーを判別するには、各サーバーインスタンスで次のTransact-SQLステートメントを使用します。

出力例:

name    STATE   GRANTOR PERMISSION  GRANTEE
TSQL Local Machine  G   sqladmin    CO      public
TSQL Named Pipes    G   sqladmin    CO      public
TSQL Default TCP    G   sqladmin    CO      public
TSQL Default VIA    G   sqladmin    CO      public
Mirroring   G   SERVERNAME\Grantor  CO      SERVERNAME\Grantee

許可者は(CO)接続許可を割り当てたアカウント、許可者は接続許可を持つアカウントです

コマンドラインからipconfig /allを実行し、ホスト名が返す内容を確認します。

12
Craig Efrein