SQLServer2016 AlwaysOn基於證書的搭建筆記

来源:http://www.cnblogs.com/ajiangg/archive/2017/02/21/6424900.html
-Advertisement-
Play Games

最近搭建了一套SQLServer2016 AlwaysOn。 筆者是採用修改各節點的hosts文件,以及修改電腦名的dns尾碼,來避免需要另外一臺DNS伺服器。 上面128,129,130三個IP屬於AlwaysOn的三個節點伺服器 IP100屬於可用性組偵聽器IP IP150屬於群集 途中遇到的 ...


最近搭建了一套SQLServer2016 AlwaysOn AG。

(後記:經實際測試,使用SQLServer2012 也同樣可以在Winserver2016上搭建基於工作組的AlwaysOn AG,其實基於工作組的AG僅僅只是WindowsServer2016的WSFC新功能。)

筆者是採用修改各節點的hosts文件,以及修改電腦名的dns尾碼,來避免需要另外一臺DNS伺服器。

 

上面128,129,130三個IP屬於AlwaysOn的三個節點伺服器

IP100屬於可用性組偵聽器IP

IP150屬於群集

途中遇到的問題點記錄於此:

1.如果不是採用administrator這個內置管理員賬號而採用其它的管理員帳戶(每個節點都需要同樣的管理員帳戶),則在搭建群集前,需要使用Powershell添加如下註冊表項:

new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1

否則,在創建群集添加伺服器時會報錯。

----------------------------------------------------------------------------------------

2.在執行

ALTER DATABASE [SQL2016] SET HADR AVAILABILITY GROUP = [AG2016]

時出錯,sp_readerrorlog可以找到如下錯誤:

Database Mirroring login attempt by user 'NT AUTHORITY\ANONYMOUS LOGON.' failed with error: 'Connection handshake failed. The login 'NT AUTHORITY\ANONYMOUS LOGON' does not have CONNECT permission on the endpoint. State 84.'.  [CLIENT: 192.168.206.128]

解決方法:

這其實以前在玩鏡像時也遇到過,一種解決方法是修改SQL Server實例的屬性,將登錄身份改為同樣的本地管理員帳戶,並將該用戶添加到SQLServer的登錄名中,同時需要給sysadmin授權。修改之後,重啟SQL Server實例。(各節點都需要操作一遍)

另一種方法是按照上面報錯信息,將NT AUTHORITY\ANONYMOUS LOGON添加到SQLServer的登錄名中,同時需要給sysadmin授權。修改之後,重啟SQL Server實例。(各節點都需要操作一遍)

----------------------------------------------------------------------------------------

3.添加偵聽器時遇到如下錯誤:

消息 41066,級別 16,狀態 0,第 3 行
無法使 Windows Server 故障轉移群集(WSFC)資源(ID“32b92e1c-37e2-4ae1-a045-d691c45011a7”)聯機(錯誤代碼 5942)。WSFC 服務可能未在運行、可能在其當前狀態下無法訪問,或是 WSFC 資源未處於可接受請求的狀態。有關此錯誤代碼的信息,請參閱 Windows 開發文檔中的“系統錯誤代碼”。
消息 19476,級別 16,狀態 4,第 3 行
嘗試為偵聽器創建網路名稱和 IP 地址失敗。WSFC 服務可能未在運行或在其當前狀態下無法訪問,或者為網路名稱和 IP 地址提供的值可能不正確。請檢查 WSFC 群集的狀態並且由網路管理員來驗證該網路名稱和 IP 地址。

解決方法:

這是因為未將偵聽器IP的DNS記錄添加到hosts文件中導致,添加即可。

----------------------------------------------------------------------------------------

4.只讀路由的負載均衡不起作用

因為我仍然按照以前SQLServer2012時期的腳本來搭的AlwaysOn只讀路由

創建SQLServer2016的負載均衡只讀路由的腳本應該如下:

ALTER AVAILABILITY GROUP ag MODIFY REPLICA ON N’WIN02′ WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=((‘WIN01’, ‘WIN03’), ‘WIN02’)));

跟以前的變更之處上上邊(‘WIN01’, ‘WIN03’)的腳本處。

使用腳本查詢路由可以得到這樣的結果(WIN01和WIN03節點都是第一路由優先順序):

select 
 b.replica_server_name 
,a.routing_priority 
,c.replica_server_name 
from
sys.availability_read_only_routing_lists a
left join
sys.dm_hadr_availability_replica_cluster_states b
on a.replica_id = b.replica_id 
left join sys.dm_hadr_availability_replica_cluster_states  c
on a.read_only_replica_id = c.replica_id 
order by a.replica_id 

使用SQLCMD測試時,幾乎是以1:1的比例來分配的負載。而使用SSMS時則不是這樣,會出現連續N次都是WIN01,之後連續N次都是WIN03。

----------------------------------------------------------------------------------------

最後,使用最新的SSMS管理工具,可以直接從圖形化界面進行操作創建AlwaysOn可用性組(稍老的版本好像會缺少部分腳本)。

本文鏈接地址:http://www.cnblogs.com/ajiangg/p/6424900.html

參考鏈接:

https://blogs.msdn.microsoft.com/clustering/2015/08/17/workgroup-and-multi-domain-clusters-in-windows-server-2016/

https://blogs.msdn.microsoft.com/alwaysonpro/2016/05/02/sql-server-2016-alwayson-availability-group-enhancements-load-balance-read-only-routing/

http://www.cnblogs.com/ajiangg/p/3636019.html

http://www.cnblogs.com/ajiangg/p/3668936.html

http://www.cnblogs.com/ajiangg/p/3636082.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • SQL 事務隔離級別 概述 隔離級別用於決定如果控制併發用戶如何讀寫數據的操作,同時對性能也有一定的影響作用。 步驟 事務隔離級別通過影響讀操作來間接地影響寫操作;可以在回話級別上設置事務隔離級別也可以在查詢(表級別)級別上設置事務隔離級別。事務隔離級別總共有6個隔離級別:READ UNCOMMIT ...
  • conda升級預設官網地址,速度會特別慢,現在我們指定一個當前可用的鏡像,步驟如下: 1.執行命令,生成.condarc文件 執行完上述命令後會在當前用戶目錄下生成.condarc文件 2.確認.condarc文件內容 3.確認無誤後,關閉控制台視窗,重新打開才會重新載入配置。 再升級什麼的,會發現 ...
  • --資料庫表名及欄位名都無數據字典,現在補充上。 --暫時想到如下笨辦法: --思路,分兩步,一是填寫表的字典。二是填寫表中欄位的字典。 --將表名導出到Table_Description --將列名導出到Column_Description --然後填寫上Description,最後調用存儲過程, ...
  • 1. 可能是 mysql 登錄用戶限制了只能本地連接,輸入以下命令設置可連接的 ip 地址, % 表示 所有 ip GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; flush priv ...
  • 項目上使用Oracle資料庫,所以本地需要備份還原(居然沒有在區域網上共用一個資料庫)。 比如說現在有 student.dmp 資料庫備份文件一份。 安裝配置 Oracle 11g XE 簡介 以下內容來自Oracle Database 快捷版 11g 第 2 版的 OTN 許可協議: Any us ...
  • 聲音識別和聲學模型的建立 [email protected] http://www.cnblogs.com/swje/ 作者:Zhouwan 2016-3-30 聲明 1)本文僅供學術交流,非商用。所以每一部分具體的參考資料並沒有詳細對應。如果某部分不小心侵犯了大家的利益,還望海涵,並聯繫博主 ...
  • 一 、對數據的增刪改查。 1. 新增 2. 修改 3. 查看 4. 刪除 ...
  • Microsoft SQL Server(以下簡稱SQL Server)作為一種中小型資料庫管理系統,已經得到了廣泛的應用,該系統更強調由系統來管理鎖。在用戶有SQL請求時,系統分析請求,自動在滿足鎖定條件和系統性能之間為資料庫加上適當的鎖,同時系統在運行期間常常自動進行優化處理,實行動態加鎖。 對 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...