zoukankan      html  css  js  c++  java
  • [TroubleShooting] The server network address can not be reached or does not exist

    Backtround:

    I'm trying to set up mirroring between two sql 2008 R2 databases on different servers in my internal network, as a test run before doing the same thing with two live servers in different locations.

    When I actually try and switch the mirroring on the target DB (with
    ALTER DATABASE xxxdb SET PARTNER = TCP://myserverAddress:50221') I'm getting an error telling me that the server network address can not be reached or does not exist. A little research suggests this is a fairly unhelpful message that pops up due to a number of possible causes, some of which are not directly related to the server existing or otherwise.

    In fact, this is error is not clear for us.Checking the log, I'm seeing the following errors. "Database mirroring connection error 5 'Connection handshake failed. The certificate used by the peer is invalid due to the following reason: Certificate not found. State 89.' for 'TCP://myserverAddress:50221'." in event viewer(eventvwr).

    Solution:

    You can manual copying the certificates around(Principal, Mirror and Witness). and drop login, user. and then create login, user with certificate responsed. Last, Grant connect endpoint.

    CREATE LOGIN HOST_pro_login WITH PASSWORD ='Password01!';
    CREATE USER HOST_pro_user FOR LOGIN HOST_pro_login;
    -- drop CERTIFICATE HOST_pro_cert
    CREATE CERTIFICATE HOST_pro_cert AUTHORIZATION HOST_pro_user FROM FILE ='D:Hot backupHOST_pro_cert.cer';
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_pro_login];

    Other Suggestions:

    The solution to the above problem is very simple and as follows.

    Fix/WorkAround/Solution: Try all the suggestions one by one.

    Suggestion 1: Make sure that on Mirror Server the database is restored with NO RECOVERY option (This is the most common problem).

    Suggestion 2: Make sure that from Principal the latest LOG backup is restored to mirror server. (Attempt this one more time even though the full backup has been restored recently).

    -- Back up 1:
    GO
    BACKUP DATABASE [dbName] TO  DISK = N'D:Hot backup	estbackup01.bak' WITH NOFORMAT, NOINIT,  NAME = N'TestBackup01-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
    GO
    
    BACKUP LOG [dbName] TO  DISK = N'D:Hot backupTestBackup01.trn' WITH NOFORMAT, NOINIT,  NAME = N'TestBackup01-Transaction Log  Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
    GO
    
    -- Restore 1:
    RESTORE DATABASE dbName
       FROM DISK = 'D:Hot backupdbName.bak' WITH  FILE = 1,  
       MOVE 'dbName' TO 'C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLBackupdbName.mdf', 
       MOVE 'dbName_log' TO 'C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLBackupdbName_log.ldf',
    NORECOVERY,  NOUNLOAD,  REPLACE,  STATS = 10
    GO
    -- Restore 2:
    RESTORE DATABASE dbName FROM DISK = 'D:Hot backupackup_TestBackup01.bak' WITH FILE = 1, NORECOVERY, NOUNLOAD;
    RESTORE LOG dbName FROM DISK = 'D:Hot backupackup_TestBackup01.trn' WITH NORECOVERY


    Suggestion 3: Check if you can telnet to your ports using command TELNET ServerName Ports like “telnet SQLServerName 50221″.(Please add feature lelnet client|Server in server 2k8, if it not exsit.)

    Suggestion 4: Make sure your firewall is turned off.

    Suggestion 5: Verify that the endpoints are started on the partners by using thestate or state_desc column the of the sys.database_mirroring_endpoints catalog view. You can start end point by executing an ALTER ENDPOINT statement.

    Suggestion 6: Try the following command as one of the last options.

    GRANT CONNECT ON ENDPOINT::Mirroring TO ALL

    Suggestion 7: Delete the end points and recreate them.

    Suggestion 8: Check SQL log.

    If any of above solutions does not fix your problem, do leave comment here. Based on the comment, I will update this article with additional suggestions.

    Please note that some of the above suggestions can be security threat to your system. Please use them responsibly and review your system with security expert in your company.

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    Spring 框架的概述以及Spring中基于XML的IOC配置
    SpringBoot(1)
    C/C++经典程序之打印三角形
    C++构造函数详解(复制构造函数)
    利用函数模板计算并返回数组d 中size个元素的平方和
    C++模板之typename和class关键字的区别
    构造函数与成员函数的区别?
    为什么多数穷人很难逆袭成功
    用递归方式求解这个问题:一只母兔从四岁开始每年生一只小母兔,按此规律,第n年有多少只母兔?
    编写一个函数 reverseDigit(int num).该函数读入一个整数,然后将这个整数的每个位上的数字逆序输出。
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4749030.html
Copyright © 2011-2022 走看看