sqlserver 鏡像配置問題 (針對服務器網絡地址 "TCP://XXXXX:5022" 無法訪問或不存在。 請檢查網絡地址名稱,並檢查本地和遠程端點的端口是否正常運行)


按照基本操作建立鏡像同步的時候,最后步驟報錯

服務器網絡地址 "TCP://XXXXXXX:5022" 無法訪問或不存在。
請檢查網絡地址名稱,並檢查本地和遠程端點的端口是否正常運行
 

查詢sql日志,發現是‘10052(遠程主機強迫關閉了一個現有的連接。)’,初步判斷是權限原因。針對這種報錯,在網上搜索了大神用證書授權的解決方案后,自己測試通過,記錄一下步驟。(本案例是雙機熱備,只有主體服務器和鏡像服務器,沒有見證服務器)

  1. 創建數據庫主密鑰
    USE master 
    GO 
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'YourPassword';

    刪除的話用drop命令,使用相同方式在鏡像服務器創建主密鑰

  2. 創建證書,並用主密鑰加密
    USE master 
    GO 
    CREATE CERTIFICATE Host_A_Cert  
    WITH Subject = 'Host_A Certificate', 
    Expiry_Date = '2080-1-1'; --過期日期

    刪除的話用drop命令,使用相同方式在鏡像服務器創建Host_B_Cert的證書

  3. 創建端點
    IF NOT EXISTS ( SELECT * FROM sys.database_mirroring_endpoints )
    BEGIN
        CREATE ENDPOINT [DatabaseMirroring] STATE = STARTED AS TCP ( LISTENER_PORT = 5022,LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION =
        CERTIFICATE Host_A_Cert, ENCRYPTION = REQUIRED Algorithm AES, ROLE = ALL );
    END

    使用相同方式在鏡像服務器創建Host_B_Cert證書的端點

  4. 備份證書
    BACKUP CERTIFICATE Host_A_Cert 
    TO FILE = 'C:\ShareFolders\Host_A_Cert.cer';  

    將備份出來的證書復制到鏡像服務器。使用相同方式在鏡像服務器備份證書Host_B_Cert,將鏡像服務器證書復制到主體服務器。

  5. 創建登錄賬號
    CREATE LOGIN Host_B_Login WITH PASSWORD = 'YourPassword';

    創建一個賬號給鏡像服務器使用,使用同樣方式在鏡像服務器創建一個賬號Host_A_Login給主體服務器使用。

  6. 創建用戶,並映射到剛才創建的登錄賬號
    CREATE USER Host_B_User For Login Host_B_Login;

    使用相同方式在鏡像服務器創建用戶Host_A_User映射到剛才創建的登錄賬號

  7. 使用證書授權用戶
    CREATE CERTIFICATE Host_B_Cert 
    AUTHORIZATION Host_B_User 
    FROM FILE = 'C:\Certifications\Host_B_Cert.cer';

    創建一個新證書,並使用剛才從鏡像服務器復制過來的證書導入,然后映射用戶到這個新證書上。在鏡像服務器也這樣執行一遍。

  8. 將登錄賬號授權訪問端口
    GRANT CONNECT ON ENDPOINT::[DatabaseMirroring] TO [Host_B_Login];

    在鏡像服務器上也執行一遍。至此,證書授權結束。

  9. 執行鏡像配置步驟(主體備份數據庫,鏡像還原數據庫,具體自行搜索,網上都有)

參考文章:https://blog.csdn.net/elie_yang/article/details/88024042?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM