從0開始搭建SQL Server AlwaysOn 第一篇(配置域控)


從0開始搭建SQL Server AlwaysOn 第一篇(配置域控)

 

第一篇
http://www.cnblogs.com/lyhabc/p/4678330.html
第二篇
http://www.cnblogs.com/lyhabc/p/4682028.html
第三篇
http://www.cnblogs.com/lyhabc/p/4682986.html
第四篇
http://www.cnblogs.com/lyhabc/p/6136227.html
搭建非域AlwaysOn win2016+SQL2016
http://www.cnblogs.com/lyhabc/p/6498712.html
SQL Server AG集群啟動不起來的臨時自救大招
http://www.cnblogs.com/lyhabc/p/6953255.html

 

 

安裝完之后別忘了還需要安裝SSMS,這是坑爹的地方之二,干嘛不集成到SQL Server安裝包里還要用戶自己單獨下載

下載地址:https://msdn.microsoft.com/en-us/library/mt238290.aspx?f=255&MSPPError=-2147217396

 

AlwaysOn是SQL Server2012推出的最新的高可用技術,用以取代原有的SQL Serve鏡像

網上的 AlwaysOn可以說是非常的多,也可以說是非常的千篇一律,而且很多都是搭建非常順利的,沒有坑的,難道搭建 AlwaysOn真的可以這麽順利嗎??????

由於公司使用的是最新的Windows Server 2012 R2,網上用的都是Windows Server 2008 R2 ,2012 R2和2008 R2在故障轉移集群界面菜單和AD 服務管理工具

已經有較大變化,有一些步驟跟Windows Server 2008 R2可能會不一樣。

本文希望能夠詳細的在Windows Server 2012 R2 搭建 AlwaysOn的過程寫出來,減少大家踩坑的機會 。

 

 

實驗環境:

准備工作

軟件准備

(1) SQL Server 2012 

(2) Windows Server 2012 R2 DataCenter   64

(3) VMware-workstation 10.0

操作系統:都是Windows Server 2012 R2   DataCenter  64位(win2012/win2012R2 只有DataCenter 版本才能使用故障轉移集群)

 

當然,生產環境服務器最好每台服務器都配置兩個網卡,一個網卡用作業務,一個網卡用作心跳,當然一個網卡也沒有什么問題

至於各個計算機的計算機名我這里不做修改,在真實生產環境計算機名是需要修改的

 

計算機名

域控:win-felbg10uu7f

node1:win-7107jjj2bcc

node2:win-5pmsdhui0kq

 

 

故障轉移集群VIP跟AlwaysOn 的VIP的作用是不一樣的

故障轉移集群VIP(192.168.66.170)是讓你連接故障轉移集群管理器的集群用的,而不是讓你連接AlwaysOn 

AlwaysOn 的VIP(192.168.66.171)是讓你連接AlwaysOn 的

所以故障轉移集群VIP跟AlwaysOn 的VIP不能一樣!


步驟

下面使用step by step guide的方式來展示怎麽安裝域控

注意:先把各台機器的防火牆關掉。

 

域控端

1、配置域控ipipv6去掉,因為DNS服務器就安裝在域控上,所以首選DNS服務器填寫:127.0.0.1 回環地址

 

 

 

2、安裝AD域服務

 

 

 

 安裝AD域服務的同時,操作系統會同時安裝好DNS服務器

3、點擊服務器管理器右上角的小旗幟,彈出對話框,點擊“將此服務器提升為域控制器”以提升為域控

 

 

 

4、進入AD域服務配置向導,設置域名 abc.com

 

5、設置DSRM密碼為123456

默認林中的第一棵域樹的根域的域控制器必須擔當全局編錄服務器和必須安裝DNS服務,不能是只讀域控制器

創建DNS委派,直接跳過,不設置

NetBIOS名稱不需要設置,至於什么是NetBIOS名稱,可以在本文最后的兩本書中進行了解

 

AD DS數據庫文件路徑保持默認就可以了,當然將日志文件和數據庫文件放在不同的磁盤有助提升性能,更多信息可以在本文最后的兩本書中進行了解

 

6、安裝完AD DS之后會自動重啟服務器,重啟服務器之后打開DNS管理器

可以看到域控制器win-felbg10uu7f.abc.com已經將主機名(win-felbg10uu7f)和IP地址(192.168.66.155)注冊到DNS服務器內

 

可以看到動態更新已開啟

在_tcp文件夾內,_ldap記錄和_gc記錄說明這台服務器已經正確注冊為域控制器和擔當全局編錄服務器

注意:如果在_tcp文件夾內沒有_ldap記錄和_gc記錄相關的記錄,那么請重啟Netlogon服務來重新注冊

 

7、檢查AD域服務和Netlogon服務是否正常啟動

 

8、在AD用戶和計算機里添加域用戶DCADMIN,請務必記住DCADMIN的密碼,因為后面第二篇和第三篇都需要用到DCADMIN這個域用戶

注意:如果域控機器上默認的Administrator本地計算機賬戶沒有被禁用的話,在安裝完域控之后,Administrator本地賬戶會從本地的SAM本地賬戶移動到域賬戶(這時候本地賬戶已經不存在Administrator這個賬戶,除非將域控進行降級)

這時候其他非域控機器都可以利用Administrator域賬戶進行登錄,但是我們一般不使用Administrator域賬戶,而是新建一個域用戶來做,這里就是另外新建一個DCADMIN賬戶

詳細可以查看《Windows Server2012系統配置指南》書

域用戶DCADMIN創建完畢

 

9、將這個域用戶加入到域計算機組和域管理員組

 

9、將系統自動更新關閉掉

win2016

 

客戶端

1、設置客戶端ipipv6去掉,注意要設置網關,禁用TCP/IP上的NetBIOS

 

 

2、加域,填寫域名abc.com,並輸入剛剛在 AD域用戶(DCADMIN)和密碼

加域之前最好在客戶端先ping一下DNS(abc.com)和域控的IP,看能否ping通,如果ping不通,加域肯定不成功了,需要進一步排查為什麽ping不通

需要先檢查一下防火牆,一般都是防火牆的問題

在客戶端的網絡和共享中心可以看到機器當前已經加入abc.com這個域網絡

 

加域之后,在域控的DNS管理器里能看到新添加的機器的主機和IP地址

在AD用戶和計算機里的Computers容器里也能看到新添加的機器

 

 

3、加域后客戶端計算機會自動重啟,重啟后使用本地Administrator用戶登錄計算機,先不要用DCADMIN這個域用戶來登錄計算機

 

4、打開計算機管理-》本地用戶和組,選擇組,選中Administrators組,右鍵-》添加到組

點擊添加

 

輸入域用戶(DCADMIN)和密碼

 

 

這樣DCADMIN域用戶就有了這台客戶端計算機的Administrator權限

 

5、將系統自動更新關閉掉

 

另一台客戶端計算機的配置這里就不再敘述了,步驟都是一樣的

 

最后在域控里查看DNS和AD Computers容器,兩個節點都已經添加成功


總結

通過上面的步驟演示,在搭建AD DS服務的時候有一些地方是需要注意的,希望大家能夠看清楚截圖,一步一步進行配置,基本上就沒有問題了

現在AlwaysOn可用性組已經完全支持 Windows Azure ,可以把輔助副本部署到 Windows Azure 上

希望通過這篇文章讓大家體會到新一代高可用技術AlwaysOn的強大,下一篇是安裝並設置故障轉移集群

參考文章

AlwaysON – HADRON Learning Series: – How does AlwaysON Process a Synchronous Commit Request
https://blogs.msdn.microsoft.com/psssql/2011/04/01/alwayson-hadron-learning-series-how-does-alwayson-process-a-synchronous-commit-request/

 


2016-9-10補充

在開始本文的操作之前,大家需要留意主副本機器和各個輔助副本機器的扇區是否一致,如果扇區不一致,或者環境不一樣有可能導致同步慢或IP沖突問題

AlwaysOn就會出現問題

 

 

在服務器上運行下面命令,D盤為SQL Server數據文件,日志文件所在盤符

fsutil fsinfo ntfsInfo  D:

每個扇區字節數:硬盤暴露給OS的邏輯扇區

每個物理扇區字節數:硬盤里的磁碟的物理扇區

每個簇字節數:操作系統的分配單元/block,也就是OS block

阿里雲ecs,本地SSD

 

 

NTFS對於大於2GB的分區,默認簇大小為8個扇區(4KB),分配單元默認是4096字節是因為內存頁是4kb
簇==分配單元: windows7默認的分配單元是4096字節,那么一個6000字節的文件就需要兩個分配單元,分配單元是windows讀寫文件的基本單位
邏輯扇區:512字節,整個硬盤暴露給操作系統的扇區,一般跟物理扇區的大小是一樣的,保持對齊,操作系統將分配單元的讀寫請求划分為多個512字節大小,為了適應邏輯扇區的大小
物理扇區:512字節 ,物理磁盤讀寫的基本單位,舊磁盤是512字節,硬盤里面每個磁碟真正的讀寫扇區,新磁盤(固態硬盤的物理扇區和邏輯扇區都是為了兼容機械硬盤模擬出來的,固態硬盤實際用的是塊/頁)是4kb

高級格式化:操作系統對文件系統盤符進行格式化,規划每分配單元/簇大小
低級格式化:存儲廠家對物理存儲硬件做的低級格式化,例如機械硬盤,規划每扇區大小,通常512字節

注意:邏輯扇區和物理扇區都是硬盤里的概念,不是操作系統的概念

 

HDD的扇區是512字節,512n,最小讀寫單位
SSD的塊是4K,最小讀寫單位
扇區是HDD的概念,塊是SSD的概念

這可能會讓不少人誤解,首先SSD的確是沒有物理扇區的概念的,但是為了與HDD完全在接口層面兼容,所以SSD一樣向操作系統提供了扇區參數,其次SSD都是以4K作為最低物理層面讀寫的最小單位,就算它向操作系統匯報512字節,實際上內部還是按照4K來讀寫,所以不對齊的情況下會導致跨物理存儲區的讀寫而導致性能下降甚至於影響壽命。SSD到底向操作系統匯報是512還是4k純粹是SSD的固件決定的,比如intel官方就提供了相關工具可以隨便切換扇區數據 
整個來說,不管SSD的固件顯示是512還是4k,分區的時候都應該按照4k對齊來分


為什么存在磁盤塊/簇
讀取方便:由於扇區的數量比較小,數目眾多在尋址時比較困難,所以操作系統就將相鄰的扇區組合在一起,形成一個塊,再對塊進行整體的操作。
分離對底層的依賴:操作系統忽略對底層物理存儲結構的設計。通過虛擬出來磁盤塊的概念,在系統中認為塊是最小的單位。


簇和塊的區別
通俗的來講,在Windows下如NTFS等文件系統中叫做簇或分配單元;在Linux下如Ext4等文件系統中叫做塊(block)。每個簇或者塊可以包括2、4、8、16、32、64…2的n次方個硬盤的邏輯扇區
文件系統就是操作系統的一部分,所以文件系統操作文件的最小單位是塊/簇。


塊與頁的關系
操作系統經常與內存和硬盤這兩種存儲設備進行通信,類似於“塊”的概念,都需要一種虛擬的基本單位。所以,與內存操作,是虛擬一個頁的概念來作為最小單位。與硬盤打交道,就是以塊為最小單位
x86系統所有的內存以64K邊界粒度, 4K頁面大小分配,包括Linux默認4KB,Windows默認4KB

 

各個Windows版本對新舊磁盤物理扇區/塊的支持情況,可以看到只有Windows2012或以上版本的操作系統才支持4K native(4K對齊),所以一定要用高版本的操作系統

3種硬盤扇區格式類型
512n——物理扇區和邏輯扇區大小均為512byte,邏輯扇區和物理扇區對齊,早期的硬盤都是這樣,原生512,512B native
512e——物理扇區大小為4096字節,邏輯扇區為(8個)512字節扇區,為了兼容性的一種過渡,硬盤層面上的“欺騙”,邏輯扇區512,物理扇區4096
4Kn——即原生4KB,物理扇區和邏輯扇區大小都是4KB,邏輯扇區和物理扇區對齊,邏輯扇區4096,物理扇區4096

 

京東IO卡為第一代產品,與目前最新采購的第三代產品,物理機器
第一代產品為512e),第三代產品為4Kn
Node_A:第一代產品
Node_B:第三代產品

 

 

存儲極客 | 4KB扇區硬盤來了,RAID、VMware兼容不?
這篇文章得出的結論
1、要真正支持4Kn對齊,那么,硬盤/存儲設備必須要使用4Kn,然后文件系統要感知得到4Kn,不能使用虛擬機,公有雲廠商的雲服務器因為大部分用的kvm,所以大部分都是512e
例子:最新的固態硬盤,默認都是4KB塊/頁,然后操作系統使用rhel6或以上,Windows2012R2或以上,然后要用物理機,不能用虛擬化
2、要真正支持512n對齊,那么,硬盤/存儲設備必須要使用512n,然后文件系統都支持512byte,然后硬盤不能用固態硬盤,用機械硬盤
3、真正的原子寫,符合對齊就是真正的原子寫,比如 符合512n或4Kn,  更改Windows分配單元/簇或Linux的block與物理扇區對齊並不科學,如果硬盤使用的是512e,一個特殊例外是,IO卡不經過文件系統直接讀寫存儲設備/硬盤的,也是原子寫

虛擬化更加復雜,多了一個虛擬化層VMFS block

 

參考:

https://blogs.msdn.microsoft.com/psssql/2013/05/15/sql-serverstorage-spacesvhdx-and-4k-sector-size/
Is this safe for SQL Server?



關於Windows Server的SID

Secure ID即SID 安全標識符,是區分系統的重要標識,SID不僅代表機器本身的標識,還代表其他安全主體,

包括域計算機帳號,用戶和安全組,具有同一個SID的服務器將會被視為一台機器,具有相同SID的計算機不能同時加入到一個域里。

SID會在安裝好系統后在配置過程中生成,使用模板部署的雲主機、虛擬機很容易發生SID重復問題,因此作為模板的虛擬機要想辦法清除SID

在早期Windows Server里可以使用NewSID小工具清除系統已有的SID。但從Windows 2008開始這個工具不能使用,取而代之的是系統自帶sysprep.exe

使用sysprep工具在關機選項里要選擇關機,而不能選擇重新啟動,因為系統准備工具在清除完SID后,如果重新啟動會給虛擬機生成新的SID,這樣

起不到清除SID的效果

摘錄自《軟件定義數據中心 Windows Server SDDC 技術與實踐》

 

如有不對的地方,歡迎大家拍磚o(∩_∩)o 


免責聲明!

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



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