第一篇http://www.cnblogs.com/lyhabc/p/4678330.html
第二篇http://www.cnblogs.com/lyhabc/p/4682028.html
第三篇
http://www.cnblogs.com/lyhabc/p/4682986.html
這一篇是從0開始搭建SQL Server AlwaysOn 的第三篇,這一篇才真正開始搭建AlwaysOn,前兩篇是為搭建AlwaysOn 做準備的
步驟
這一篇依然使用step by step的方式介紹怎麼搭建AlwaysOn
請先使用本地用戶Administrator登錄這兩個集群節點并執行下面的操作,先不要用域用戶DCADMIN登錄
1、兩個集群節點都需先安裝.NET Framework 3.5(在Windows Server 2012 R2中使用添加功能來安裝)。
2、各個集群節點本地都要準備好相關軟件,在各個節點上獨立安裝SQL Server 2012(不能使用群集方式安裝),保證各個節點中使用相同的安裝目錄結構和排序規則!
選擇全新SQL Server獨立安裝,不要選擇新的SQL Server故障轉移集群安裝
至于安裝過程,默認下一步下一步就可以了,跟單機安裝SQL Server沒有區別,這里就忽略安裝過程了
注意:因為本人的安裝包已經自帶SP1補丁包,為了后續避免踩坑,如果沒有安裝SP1或以上補丁包的,請先安裝
注意:如果一開始使用域用戶DCADMIN來登錄集群節點機器,并安裝SQL Server的時候會遇到一個坑,SQL Server安裝程序會連接故障轉移集群,但是實際上單機安裝SQL Server根本不需要連接故障轉移集群
本人排查了很久都找不到原因,為什么SQL Server安裝程序會連接故障轉移集群,下面是SQL Server安裝日志
如果一開始就使用集群節點本地用戶Administrator登錄來安裝SQL Server就不會踩到這個坑
3、注銷集群節點計算機,然后使用域用戶DCADMIN登錄,然后設置SQL Server的啟動賬戶為域用戶DCADMIN
打開服務管理器,先修改SQL代理的啟動賬戶為域用戶DCADMIN,然后再修改SQL 引擎的啟動賬戶為域用戶DCADMIN
點擊“位置”,修改查找位置,選中abc.com
點擊“高級”
點擊“立即查找”,選中DCADMIN
點擊“確定”
輸入域用戶DCADMIN的密碼
重啟一下SQL代理服務
重啟之后可以看到登錄用戶為DCADMIN@abc.com
同樣,SQL引擎服務也需要同樣的設置
這樣,SQL引擎服務和SQL代理服務都用域用戶DCADMIN啟動
另一個集群節點的SQL Server也需要做同樣的操作
注意:在集群節點脫離域之后,SQL引擎服務和SQL代理服務都要用本地服務帳號來啟動,不能再用域用戶來啟動
4、將DCADMIN域用戶加入到兩個集群節點的SQL Server登錄用戶中,服務器角色選擇sysadmin
先用sa登錄SQL Server
添加登錄用戶,跟SQL 服務添加啟動賬戶的步驟一樣,將DCADMIN域用戶添加為登錄用戶
給予sysadmin權限
兩個集群節點都可以用DCADMIN域用戶來登錄SQL Server
5、回到SQL Server配置管理器,啟用AlwaysOn可用性組
注意:集群節點一定要能進行通信,如果集群節點之間斷開通信,那么啟用AlwaysOn的時候會報錯
重啟SQL Server
如果AlwaysOn啟用成功,在服務器屬性里可以看到啟用HADR為True
6、在其中一個集群節點的SQL Server中驗證各節點的投票數 ,在其中一個集群節點的SQL Server上執行使用下面SQL語句
SELECT * FROM sys.dm_hadr_cluster_members;
SELECT * FROM SYS.[dm_hadr_cluster]
7、再次確保各節點已經關閉防火墻
8、我們使用自行初始化數據庫的方式,所以這一步需要新建一個測試庫和測試表并插入一些測試數據(這些動作就不演示了),然后對數據庫做一個完整備份 和 日志備份
然后把完整備份文件和日志備份文件搬到WIN-5PMSDHUI0KQ機器上依次進行還原,完整備份-》還原完整備份-》日志備份-》還原日志備份腳本
--在win-7107jjj2bcc上執行CREATE DATABASE [test]USE [test]CREATE TABLE [test1]([id] INT,[name] VARCHAR(100))INSERT INTO [test1] SELECT 1,'test'
--在win-7107jjj2bcc上執行DECLARE @CurrentTime VARCHAR(50), @FileName VARCHAR(200)SET @CurrentTime = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120 ),'-','_'),' ','_'),':','') --(test 數據庫完整備份)SET @FileName = 'c:/DBBackup/test_FullBackup_' + @CurrentTime+'.bak'BACKUP DATABASE [test]TO DISK=@FileName WITH FORMAT ,COMPRESSION --(test 數據庫日志備份) SET @FileName = 'c:/DBBackup/test_logBackup_' + @CurrentTime+'.bak'BACKUP log [test]TO DISK=@FileName WITH FORMAT ,COMPRESSION
--在WIN-5PMSDHUI0KQ上執行USE [master]RESTORE DATABASE [test] FROM DISK = N'C:/DBBackup/test_FullBackup_2015_07_30_093949.bak' WITH FILE = 1, MOVE N'test' TO N'C:/Program Files/Microsoft SQL Server/MSSQL11.MSSQLSERVER/MSSQL/DATA/test.mdf', MOVE N'test_log' TO N'C:/Program Files/Microsoft SQL Server/MSSQL11.MSSQLSERVER/MSSQL/DATA/test_log.ldf', NOUNLOAD,NORECOVERY, REPLACE, STATS = 5GO--注意一定要用NORECOVERY來還原備份USE [master]RESTORE DATABASE [test] FROM DISK = N'C:/DBBackup/test_logBackup_2015_07_30_105949.bak' WITH FILE = 1, NOUNLOAD,NORECOVERY, REPLACE, STATS = 5GO
自行初始化數據庫的好處是:如果我們的輔助副本是跨機房的我們都可以控制初始化的時間,也就是備份和還原的時間,不需要SQL Server來幫我們備份還原數據庫
在WIN-5PMSDHUI0KQ上還原日志備份之后的樣子
9、在“Alwayson高可用性”節點上右鍵選擇“新建可用性組向導
注意:加入到AlwaysOn可用性組的數據庫必須符合下面要求
(1)數據庫的恢復模式必須是“完整”恢復模式
(2)數據庫已進行了一次完整備份
(3)需要是用戶庫,系統庫不能加入可用性組
(4)數據庫可以讀寫,只讀庫不能加入到可用性組
(5)數據庫處于多用戶模式
(6)數據庫沒有使用AUTO_CLOSE
(7)不屬于任何其他的可用性組
(8)數據庫沒有配置數據庫鏡像
一個可用性組最大支持100個數據庫
10、點擊“下一步”,輸入一個從未使用過的高可用性組名稱 testAG
11、點擊下一步,選擇要添加的數據庫
12、點擊“下一步”,使用添加副本來將其他節點添加到可用性組中,并選擇自動故障轉移節點和同步提交節點,因為我們只有兩個節點
我們將輔助副本設置為可讀,能夠自動故障轉移,同步提交模式
13、點擊“端點”tab頁面設置端點
注意:端點URL使用ip的方式,不要用FQDN長名的方式,因為服務器通常會有兩個網卡,一個public網卡,一個private網卡,端點建議使用private網卡地址
這樣在端點直接傳送的數據就會經由private網卡來傳送,使用TCP://test.abc.com:5022 這種FQDN長名的方式是不能保證端點數據通過private網卡來傳送
SQL Server服務賬戶使用域用戶DCADMIN來進行身份驗證,
新聞熱點
疑難解答