Windows故障轉(zhuǎn)移群集 和 SQLServer AlwaysOn 配置搭建詳細(xì)教程
最詳細(xì)的 SQLSERVER ALWAYSON配置教程
一、準(zhǔn)備工作:
1、準(zhǔn)備域控:服務(wù)器都在同一個(gè)域控(以下假設(shè)所在域控為 AAA.COM)。
2、開啟服務(wù):域控要開啟Remote Procedure Call (RPC)服務(wù)。
3、安裝角色和服務(wù):納入群集節(jié)點(diǎn)的服務(wù)器必須先添加角色和功能 .NET3.5 和 故障轉(zhuǎn)移群集,防火墻開啟兩個(gè)共享端口135、445,和端點(diǎn)端口5022,要開啟Remote Registry服務(wù)。
4、建專用域賬號(hào):在域控新建數(shù)據(jù)庫服務(wù)專用賬號(hào) wsfc_sqlserver@AAA.com,密碼:********。
5、配置仲裁共享文件夾:去域控下非數(shù)據(jù)庫節(jié)點(diǎn)服務(wù)器上建立一個(gè)共享文件夾(如:\\10.0.XXX.XXX\WIN故障轉(zhuǎn)移群集\共享仲裁盤專用),專門用于仲裁共享文件,授予wsfc_sqlserver@AAA.com所有共享權(quán)限。
6、數(shù)據(jù)庫相關(guān):
6.1、為新建域賬號(hào)授權(quán):在各節(jié)點(diǎn)服務(wù)器將此wsfc_sqlserver@AAA.com加入管理員組,并在服務(wù)中將其設(shè)置為 SQLSERVER服務(wù)的登錄身份,并賦予SQLSERVER的sysadmin角色(后邊就用這個(gè)賬號(hào)登錄SQLSERVER配置AlwaysOn)。
USE master CREATE LOGIN [AAA\wsfc_sqlserver] FROM WINDOWS WITH DEFAULT_DATABASE=[master] ALTER SERVER ROLE [sysadmin] ADD MEMBER [AAA\wsfc_sqlserver] go
6.2、整理節(jié)點(diǎn)服務(wù)器數(shù)據(jù)文件夾:每臺(tái)節(jié)點(diǎn)服務(wù)器的數(shù)據(jù)庫都要放到相同的位置,文件夾路徑要全部相同,副本服務(wù)器上要先按照主服務(wù)器建好文件夾。
6.3、設(shè)置節(jié)點(diǎn)服務(wù)器數(shù)據(jù)備份共享文件夾:每臺(tái)節(jié)點(diǎn)服務(wù)器建一個(gè)專門用于存放數(shù)據(jù)庫備份及同步文件的文件夾,設(shè)置共享,并加上管理員組 的所有共享權(quán)限(在之前wsfc_sqserever@AAA.com已加入管理員組)(注意干掉默認(rèn)的EveryOne權(quán)限)。
6.4、同步數(shù)據(jù)庫賬號(hào):在同步之前,在輔助副本服務(wù)器數(shù)據(jù)庫上先建立好與主副本數(shù)據(jù)庫一樣的數(shù)據(jù)庫賬號(hào)(用EXEC sp_help_revlogin;進(jìn)行導(dǎo)出導(dǎo)入,確保所有副本上的賬號(hào)完全一致(包括SID要一致))。
二、搭建故障轉(zhuǎn)移群集
1、選擇節(jié)點(diǎn)服務(wù)器
2、下一步驗(yàn)證配置,選“否”。
3、定義群集名稱和虛擬地址。
4、下面就是按你的設(shè)置進(jìn)入自動(dòng)配置,配置完成如圖。同時(shí)域控中會(huì)自動(dòng)生成一條以群集名稱和IP的主機(jī)(A)記錄,和計(jì)算機(jī)。
5、群集創(chuàng)建完成后,本機(jī)會(huì)自動(dòng)生成一個(gè)用戶CLIUSR,此用戶是用來啟動(dòng)和運(yùn)行群集服務(wù)的,千萬不要?jiǎng)铀?,否則會(huì)導(dǎo)致群集服務(wù)中斷。
6、配置群集仲裁(右鍵創(chuàng)建好的群集 >> 更多操作 >> 配置群集仲裁設(shè)置)
三、搭建數(shù)據(jù)庫AlwaysOn
1、做好第一節(jié)第6點(diǎn)的相關(guān)準(zhǔn)備(6、數(shù)據(jù)庫相關(guān))
2、建立SQL別名(32位):在每臺(tái)節(jié)點(diǎn)服務(wù)器都加上所有節(jié)點(diǎn)數(shù)據(jù)庫別名(實(shí)例名稱+IP+端口 ),確??梢酝ㄟ^別名訪問對(duì)應(yīng)數(shù)據(jù)庫。
3、啟用 AlwaysOn(SQLSERVER配置管理器)
4、創(chuàng)建數(shù)據(jù)庫證書(一定要配,否則 AlwaysOn可用性組建好了,但是副本會(huì)連接不上(顯示一把紅色的×),)
4.1、在每臺(tái)節(jié)點(diǎn)數(shù)據(jù)庫,創(chuàng)建并安裝證書:
USE master; GO --創(chuàng)建主密鑰。 CREATE MASTER KEY ENCRYPTION BY PASSWORD = '******************'; --創(chuàng)建證書。 把CERT_xxx_x1換成自己要的名字。 CREATE CERTIFICATE CERT_xxx_x1 WITH SUBJECT = 'CERT_xxx_x1', START_DATE = '2022-01-01',EXPIRY_DATE = '2099-12-30'; --把剛才創(chuàng)建的證書備份到文件。 把CERT_xxx_x1換成自己要的名字。 BACKUP CERTIFICATE CERT_xxx_x1 TO FILE = 'D:\DataBase\cert\CERT_xxx_x1.cer'; --創(chuàng)建終結(jié)點(diǎn),設(shè)為證書驗(yàn)證。 把CERT_xxx_x1換成自己要的名字。 CREATE ENDPOINT [Hadr_endpoint] AUTHORIZATION [sa] STATE=STARTED AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL) FOR DATA_MIRRORING (ROLE = ALL,AUTHENTICATION = CERTIFICATE CERT_xxx_x1, ENCRYPTION = REQUIRED ALGORITHM AES) GO
4.2、在每臺(tái)節(jié)點(diǎn)數(shù)據(jù)庫,載入群集內(nèi)其他節(jié)點(diǎn)數(shù)據(jù)庫的證書:
USE master; CREATE CERTIFICATE CERT_xxx_x1 FROM FILE = 'd:\DataBase\cert\CERT_xxx_x1.cer'; CREATE CERTIFICATE CERT_xxx_x2 FROM FILE = 'd:\DataBase\cert\CERT_xxx_x2.cer'; CREATE CERTIFICATE CERT_xxx_x3 FROM FILE = 'd:\DataBase\cert\CERT_xxx_x3.cer';
5、創(chuàng)建AlwaysOn高可用組(數(shù)據(jù)庫 >> Always On高可用性 >> 可用性組 >> 右鍵新建)
5.1、指定主副本&輔助副本
5.2、端點(diǎn)(不用配置,默認(rèn)即可)
5.3、偵聽器
5.4、只讀路由
只讀路由的使用:
同一個(gè)域AAA:可以使用AG23013,8887 或 AG23013.AAA.COM,8887 進(jìn)行訪問。
不同域BBB:可以在BBB域建立一條記錄指向偵聽器的IP進(jìn)行訪問。
連接字符串默認(rèn)訪問主副本,可讀寫。如果要只讀,就在連接字符串中添加 ApplicationIntent=ReadOnly;MultiSubnetFailover=true,指定訪問只讀副本實(shí)現(xiàn)讀寫分離。
5.5、設(shè)置數(shù)據(jù)同步方式
5.6、再下一步下一步直到完成就行了,就可以在主副本所在數(shù)據(jù)庫和輔助副本所在數(shù)據(jù)庫分別看到下圖:
5.7、數(shù)據(jù)庫里面的“AlwaysOn高可用組”創(chuàng)建成功后會(huì)有如下變化:
5.7.1、在故障轉(zhuǎn)移群集內(nèi)會(huì)自動(dòng)產(chǎn)生一個(gè)以“可用性組名”命名的角色,角色內(nèi)已包含偵聽器,如下圖:
5.7.2、域控會(huì)根據(jù)“偵聽器名稱”自動(dòng)產(chǎn)生一條計(jì)算機(jī)記錄 和一條主機(jī)(A)記錄:
四、過程中可能遇到的問題
1、如果要分離數(shù)據(jù)庫,出現(xiàn)錯(cuò)誤“無法對(duì)數(shù)據(jù)庫‘XXX‘執(zhí)行刪除,因?yàn)樗糜趶?fù)制”
解決:先 sp_removedbreplication'DBNAME';然后再分離。
2、數(shù)據(jù)庫“正在還原”
解決:如果后續(xù)還要將此數(shù)據(jù)庫加入到可用性組,就使用:RESTOREDATABASEDBNAMEWITHNORECOVERY; 反之使用 WITH RECOVERY。
PS:使用WITH RECOVERY后,還要從新添加到可用性組時(shí)可能會(huì)出現(xiàn)如下錯(cuò)誤:
解決辦法(右鍵數(shù)據(jù)庫>>所有任務(wù)>>還原>>數(shù)據(jù)庫>>選項(xiàng)菜單>>恢復(fù)狀態(tài)>>選擇”RESTORE WITH NORECOVERY”),操作完成后,再去可用性組里邊的可用性數(shù)據(jù)庫,右鍵>>聯(lián)機(jī):
3、執(zhí)行手動(dòng)故障轉(zhuǎn)移后,副本數(shù)據(jù)庫可能狀態(tài)為“未同步”,且無法連接。
解決:在“未同步”的數(shù)據(jù)庫執(zhí)行:ALTERDATABASEDBNAMESETHADR RESUME;
4、銷毀群集時(shí),沒有先逐出節(jié)點(diǎn),直接刪群集,導(dǎo)致這個(gè)節(jié)點(diǎn)加入新的群集時(shí)失敗“計(jì)算機(jī)已加入群集”。
解決:進(jìn)入注冊(cè)表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ClusSvc,Start項(xiàng)的值應(yīng)該是2,改為4。
5、在數(shù)據(jù)庫創(chuàng)建可用性組時(shí),缺少選項(xiàng)“Windows Server 故障轉(zhuǎn)移群集”,只有兩個(gè)選項(xiàng)(EXTERNAL 和 NONE)。
解決:重啟SQLSERVER服務(wù)。
6、更改數(shù)據(jù)的所有者。
解決:ALTERAUTHORIZATIONONDATABASE::DBNAMETO[賬戶]
到此這篇關(guān)于Windows故障轉(zhuǎn)移群集 和 SQLServer AlwaysOn 搭建教程的文章就介紹到這了,更多相關(guān)SQLServer AlwaysOn 搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
sqlserver數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)操作詳解(圖)
本文主要介紹的是怎么使用Microsoft SQL Server Management Studio導(dǎo)入數(shù)據(jù),大家參考使用吧2014-01-01有關(guān)sqlserver帳號(hào)被禁用的處理方法
這篇文章主要介紹了有關(guān)sqlserver帳號(hào)被禁用處理方法,需要的朋友可以參考下2017-12-12將Reporting services的RDL文件拷貝到另外一臺(tái)機(jī)器時(shí)報(bào)Data at the root level i
在本機(jī)開發(fā)了一個(gè)Reporting后拷貝到服務(wù)器,然后在Sql Server Business Intelligence Development Studio中添加再打開后會(huì)報(bào)Data at the root level is invalid.錯(cuò)誤2012-06-06世界杯猜想活動(dòng)的各類榜單的SQL語句小結(jié)
自己網(wǎng)站的世界杯猜想活動(dòng),整理了幾個(gè)排行榜。寫了半個(gè)小時(shí)的SQL,丟了多可惜,放在這里,反正是別人的地盤,不心疼。2010-07-07sqlserver數(shù)據(jù)庫危險(xiǎn)擴(kuò)展刪除和恢復(fù)代碼
今天為了實(shí)現(xiàn)sqlserver的復(fù)制功能,因?yàn)橐郧皠h除了很多的sqlserver的一些會(huì)導(dǎo)致不安全因素的擴(kuò)展,導(dǎo)致很多功能無法用,沒有辦法需要重新的恢復(fù)擴(kuò)展。2010-07-07