如何在沒有域的環境中搭建AlwaysOn(一)

2022-02-14 19:48:10 字數 2938 閱讀 6151

對dba而言,不需要域就可以搭建sql server alwayson是windows server 2016中最令人興奮的功能了,它不僅可以降低搭建的成本,而且還減少了部署和運維的工作量。

下面我給大家介紹如何在windows server 2016中部署alwayson,整個過程分了兩部分,內容較多,我準備以兩篇部落格來寫

1.搭建故障轉移集群;

2.搭建alwayson;

一.搭建故障轉移集群

1.建立集群使用者

1.1.在每個節點上建立相同使用者名稱和密碼的使用者,且把此使用者加入到伺服器本地管理員組;

說明:考慮到作業系統已自帶了administrator,所以此步驟也可以忽略,但為了安全起見,建議還是自建乙個集群專用的賬戶,專號專用,以便日後管理和安全。

1.2.配置登錄檔

把localaccounttokenfilterpolicy的值設定為1,配置方法:

在powershell中執行如下命令:

new-itemproperty -path hklm:\software\microsoft\windows\currentversion\policies\system -name localaccounttokenfilterpolicy -value 1
配置成功後的截圖:

2.安裝故障轉移功能

在所有的節點上安裝故障轉移功能:

2.1.開啟【伺服器管理器】

2.2.點選右上角的【管理】,選擇【新增角色和功能】

2.3.按照嚮導,依次多次點選【下一步】,直到【選擇功能】的頁面,勾選【故障轉移集群】;

說明:在下圖截圖時我已經安裝了【故障轉移集群】,所以截圖紅色框中【故障轉移集群】前面已經勾選,且括號內顯示已安裝,而你在新安裝時是沒有勾選和已安裝的提示的,請知悉。

2.4.連續點選【下一步】,直到完成安裝;

2.5.在其他節點上重複步驟1-4;

3.每個節點配置主dns字尾

3.1.開啟系統屬性介面;

點選【控制面板】,選擇大圖示檢視方式,然後選擇【系統】

3.2.新增主dns字尾

在每個節點上,點選【更改設定】,在彈出的【系統屬性】中選擇【更改】,然後在彈出的【計算機名/域更改】的介面中選擇【其他】,最後在彈出的【dns字尾和netbios計算機名】中,增加此計算機的主dns字尾——如果你的環境中沒有dns伺服器,可以用example.com做測試用。

4.名稱解析

將各個節點的計算機名和ip配置到dns伺服器中(也就是a記錄),如果沒有dns伺服器,則把各個節點的計算機名和ip配置到hosts檔案中,

配置hosts的方法:

開啟每個節點的c:\windows\system32\drivers\etc\hosts,將所有節點的伺服器名字和對應的ip寫到hosts檔案中,如:

5.建立集群

說明:只需在任意乙個節點上執行即可。

new-cluster –name mywgcluster -node win-srcojdgeq3i,win-jbrhiajpmg2 -administrativeaccesspoint dns -staticaddress 10.5.103.217
引數說明:

–name:集群的名字

-node:節點,多個節點用英文逗號分隔

-staticaddress:集群的公共ip

建立過程的截圖:

6.配置仲裁

基於工作組搭建的集群目前還不支援檔案共享的方式做仲裁,官方建議使用磁碟做仲裁或者雲見證。我這次驗證的時候因為沒有條件,所以就沒有做仲裁了,在實際生產環境中,請大家利用故障轉移集群管理器建立仲裁。

faq

1.搭建故障轉移集群後,集群一直報錯,提示註冊dns名稱失敗。

有兩個原因會導致這個問題:

1.1 在集群搭建時,修改主機名、建立集群網路名稱都會嘗試到網絡卡中配置的dns伺服器上註冊a記錄,以便實現主機名、集群網路名稱的ip解析,但當dns伺服器與集群在不同的域中時,註冊就會因為dns許可權配置問題而失敗,解決辦法是修改dns伺服器的配置,允許「非安全」的動態更新:

1.2 集群配置時用的hosts檔案做的主機名和集群名的ip解析,沒有用到dns伺服器,所以當節點嘗試通過網絡卡中配置的dns伺服器去解析集群的網路名稱時,會提示找不到。

如何在Mac搭建golang環境

最近學一下go語言,需要在mac上搭建go的開發環境。我比較喜歡用zsh命令列工具,我就從裝zsh說起吧 sh c curl fssl 啟用zsh zsh安裝go的話,去官網看就行了,很詳細。安裝完成後,新增go的path環境變數 指定開發檔案,設定gopath 編輯.zshrc vim zshrc...

轉貼 如何在沒有IIS的環境中執行Web程式

在微軟 net平台中,自從visual studio 2005 以後的版本編寫web程式的時候,可以在沒有iis的環境中編譯和除錯,每次除錯的時候都會執行起乙個 asp.net development server 的服務,這個服務和iis類似,可以說是iis的簡化版,雖然不如iis完善和成熟但是用...

如何在vs2013中搭建python環境

前言 python是乙個高層次的結合了解釋性 編譯性 互動性和物件導向的指令碼語言。python的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。自己也只搞過.net吧,想著開拓一下自己的視野,於是選擇了這個指令碼語言來學習一下。每次來...