從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:

如果每個扇區字節數和每個物理扇區字節數這兩個值, 各個副本顯示不同,那麼最好不要搭建AlwaysOn

在副本上每個扇區字節數顯示512,每個物理扇區字節數顯示512

在輔助副本上每個扇區字節數顯示512,每個物理扇區字節數顯示512

這樣是沒有問題的

或者

在副本上每個扇區字節數顯示512,每個物理扇區字節數顯示4096

在輔助副本上每個扇區字節數顯示512,每個物理扇區字節數顯示512

這樣也是沒有問題的

或者

在副本上每個扇區字節數顯示512,每個物理扇區字節數顯示512

在輔助副本上每個扇區字節數顯示512,每個物理扇區字節數顯示4096

這樣是有問題的

NTFS對於大於2GB的分區,默認簇大小爲8個扇區(4KB),分配單元默認是4096字節是因爲內存頁是4kb
簇=分配單元 windows7默認呢的分配單元是4096字節,那麼一個6000字節的文件就需要兩個分配單元,分配單元是windows讀寫文件的基本單位
邏輯扇區:512字節,操作系統將分配單元的讀寫請求劃分爲多個512字節大小,然後寫入到磁盤,其實就是操作系統做了一層轉換
物理扇區:512 ,物理磁盤讀寫的基本單位,舊磁盤是512字節,新磁盤是4kb
高級格式化:操作系統對盤符進行格式化,按照分配單元大小
低級格式化:磁盤廠家對磁盤做的低級格式化,按照512字節大小

由於新磁盤使用了4kb字節大小,某些操作系統和應用程序無法適應,所以磁盤廠家退出了512E格式,對磁盤增加了一個模擬層,底層是4kb,模擬層是512字節
操作系統對磁盤的讀寫依然是512字節,這樣廠家推出的新磁盤就可以向下兼容舊操作系統,因爲是模擬出來的,所以名字叫 512-byte Emulation或512e
最新操作系統例如win2012已經可以支持4kb磁盤,所以使用命令fsutil fsinfo ntfsInfo D: 的時候,如果每扇區和每物理扇區都顯示爲4096,那麼表示
磁盤使用的是最新的支持4kb磁盤,win2012操作系統對物理扇區進行了對齊,邏輯扇區是4096,物理扇區是4096,就是原生4K模式,所以名字叫4K native或4Kn

參考文章:
https://support.microsoft.com/en-us/kb/2510009
http://stackoverflow.com/questions/9465451/how-can-i-determine-the-sector-size-in-windows
https://blogs.msdn.microsoft.com/psssql/2011/01/13/sql-server-new-drives-use-4k-sector-size/
https://msdn.microsoft.com/en-us/library/windows/desktop/hh848035%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
http://ask.zol.com.cn/q/16407.html
http://www.cnblogs.com/diabloxl/p/4422120.html

解決辦法:通過fusionIO或者一些SSD磁盤的管理界面修改磁盤的參數

例如惠普的fusionIO,進去管理界面,將4KB扇區大小改爲512字節

修改爲

 

估計Hyper-V是無法修改磁盤的物理扇區大小,那如果使用Hyper-v就只能所有副本都用Hyper-V,而不能有些副本使用物理機,有些副本使用Hyper-V跑在虛擬機裏面

 

京東IO卡爲第一代產品,與目前最新採購的第三代產品
第一代產品爲512字節,第三代產品爲4KB
Node_A:第一代產品
Node_B:第三代產品

 

由於格式化磁盤的時候可以選擇分配單元512字節~64KB,所以log block要適應文件系統的分配單元否則不能原子寫入磁盤

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

The answer is yes.  An I/O subsystem can return a larger sector size than actual, physical sector size as long as all reported values can be evenly divided by 512 bytes.
4096的塊只要能被512整除就無問題
As the diagram below shows, SQL Server maintains parity on 512 byte boundaries, for the log, regardless of the reported sector size.   This allows SQL Server to detect a partial write (torn behavior.)   For example, if the system reported a sector size of 4K but the physical sector size was 512 bytes, the I/O subsystem is only guaranteed to flush to a 512 byte mark.   If the first 4, physical sectors are flushed (2K of the 4K aligned block) and a power outage occurs, SQL Server will be able to detect the entire 4K was not properly flushed.

 

Microsoft SQL Server IO Internals ppt下載地址

http://files.cnblogs.com/files/lyhabc/MicrosoftSQLServerIOInternals.pptx


關於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 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章