一 數據庫鏡像部署准備
1.1 數據庫鏡像支持
有關對 SQL Server 2012 中的數據庫鏡像的支持的信息,請參考:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/cc645993%28v%3dsql.110%29
1.2 其他前置條件
- 若要建立鏡像會話,伙伴雙方和見證服務器(如果有)必須在相同版本的 SQL Server 上運行。
- 確保兩個伙伴(即主體服務器和鏡像服務器)必須運行相同版本的 SQL Server。 見證服務器(如果有)在任意支持數據庫鏡像的 SQL Server 版本上運行。
- 數據庫必須使用完整恢復模式。 簡單恢復模式和大容量日志恢復模式不支持數據庫鏡像。 因此,鏡像數據庫的大容量操作始終被完整地記入日志。
- 驗證鏡像服務器是否能為鏡像數據庫提供足夠的磁盤空間。
- 在鏡像服務器上創建鏡像數據庫時,請確保指定相同數據庫名稱 WITH NORECOVERY 來還原主體數據庫備份。 另外,還必須通過 WITH NORECOVERY 應用在該備份執行后創建的所有日志備份。
注意:如果數據庫鏡像已經停止,則必須將對主體數據庫執行的所有后續日志備份應用到鏡像數據庫中,然后才可以重新啟動鏡像。
1.3 其他限制
- 只能鏡像用戶數據庫。 不能鏡像 master、 msdb、tempdb 或 model 數據庫。
- 鏡像的數據庫在數據庫鏡像會話過程中不能重命名。
- 數據庫鏡像不支持 FILESTREAM。 不能在主體服務器上創建 FILESTREAM 文件組。 不能為包含 FILESTREAM 文件組的數據庫配置數據庫鏡像。
- 在 32 位系統上,由於受每個數據庫鏡像會話所占用的工作線程數限制,對於每個服務器實例,數據庫鏡像最多支持 10 個數據庫。
- 跨數據庫事務和分布式事務均不支持數據庫鏡像。
二 部署規划准備
2.1 服務器規划
按照如下規划配置主機名(domain前綴)及IP。
提示:為便於測試,本環境將所有節點的專用、公用、域網絡的防火牆均關閉。
三 DNS服務器安裝
dsserver相關IP設置如下。
開始菜單 -> 管理工具 -> 服務器管理器 -> 角色 -> 添加角色,選擇DNS 服務器,下一步:
等待安裝完成。
如下相關服務已安裝完成。
四 安裝 Active Directory 域服務
開始菜單 -> 管理工具 -> 服務器管理器 -> 角色 -> 添加角色,選擇Active Directory 域服務。
等待安裝完成。
如下相關服務已安裝完成。
開始菜單 -> 運行 -> 輸入命令 "dcpromo" ,進入域控制器服務向導。
提示:dcpromo 命令是一個 "開關" 命令。如果 Windows Server 2008 計算機是成員服務器,則 運行 dcpromo 命令會安裝 AD 活動目錄,將其升級為域控制器;如果Windows Server 2008 計算機已經是域控制器,則運行 dcpromo 命令會卸載 AD 活動目錄,將其降級為成員服務器。
彈出 Active Direcotry 域服務安裝向導,點擊 "下一步" 按鈕:
進入兼容性提醒頁面,忽視即可,點擊 "下一步" 按鈕:
選擇 "在新林中新建域”並點擊",點擊 "下一步" 按鈕:
注意:如果是第一次搭建也是你整個內網中的第一台域控制器,那么需要選擇第二項 "在新林中新建域",第一項是內網中已經存在 AD 環境再想搭建額外域控制器的時候使用的。
輸入域名imxhy.com,這個需慎重,FQDN配置完畢之后修改相對麻煩且有風險,並點擊 "下一步" 按鈕:
進入林功能級別設置界面,選擇 "Windows Server 2008 R2",然后點擊 "下一步":
提示:如果你的 AD 中以后可能會出現 Windows Server 2003 系統的域控制器,請務必選擇 Windows Server 2003 的域功能級別,否則之后 Windows Server 2003 的服務器做不了域控制器了,所以安裝第一台 DC 的時候,可是選擇的低級別的林功能,以后要升到 Windows Server 2008 的域功能級別是沒問題的,若是選了 Windows Server 2008 的功能級別,降級比較困難。
其他域選項,若已安裝,則會為灰色。
彈出 DNS 提示框,可忽視,點擊 "是" 按鈕,繼續安裝:
進入AD 域的數據庫文件、日志文件和共享文件位置設置頁面,此處保持默認設置,點擊 "下一步" 按鈕:
進入 "域還原密碼" 設置界面,此密碼相當的重要,后續做數據庫遷移、備份、整理、恢復的時候都可能用到,需要謹記:
進入 "摘要" 界面,顯示之前設置的摘要信息,點擊 "下一步" 按鈕:
提示:此處可以點擊 "導出設置" 到一個位置保持起來,以便后續排錯時查閱,也可以作為 DC 安裝時的無人值守安裝的腳本。
安裝向導進入配置過程
此時,AD 域服務已經安裝完成。ADDS域控制器已經安裝完成,在完成域控制器的安裝后,系統會自動的將該服務器的用戶賬號轉移到 AD 數據庫中。
提示:安裝完成后,建議重啟服務器。
域控制器 DC 會將自己扮演的角色注冊到 DNS 服務器內,以便讓其他計算機能夠通過 DNS 服務器來找到這台域控制器,因此先檢查 DNS 服務器內是否已經存在這些記錄。
首先檢查域控制器是否已經將其主機名與 IP 地址注冊到 DNS 服務器內,本域控制器也扮演DNS服務器,則進入DNS中查看,此處應該會有一個名稱為 imxhy.com 的區域,主機(A)記錄表示域控制器 dsserver.imxhy.com 已經正確地將其主機名與 IP 地址注冊到 DNS 服務器內。DNS 客戶端所提出的請求大多是正向解析,即通過 hostname 來解析 IP 地址對應與此處的正向查找區域;通過 IP 來查找 hostname 即為反向解析,對應於此處的反向查找區域。
如果域控制器已經正確地將其扮演的角色注冊到 DNS 服務器,則還應該有對應的 _tcp、_udp 等文件夾。在單擊 _tcp 文件夾后可以看到如下所示的界面,其中數據類型為服務位置(SRV)的 _ldap 記錄,表示 dsserver.imxhy.com 已經正確地注冊為域控制器。其中的 _gc 記錄還可以看出全局編錄服務器的角色也是由 dsserver.imxhy.com 扮演的。
DNS 區域內包含這些數據后,其他要加入域的計算機就可以通過通過此區域來得知域控制器為 dsserver.imxhy.com。這些加入域的成員(域控制器、成員服務器、Windows 8、Windows 7、Windows Vista、Windows XP Professional 等)也會將其主機與 IP 地址數據注冊到此區域內。
五 域用戶創建及加入
5.1 域用戶創建
開始菜單 -> 管理工具 -> Active Directory 用戶和計算機
設置相關sqluser賬號及密碼。
設置符合一定密碼復雜度要求的密碼。
將sqluser加入到administrators管理組中。
5.2 加入域控
master相關IP設置如下。
高級 -> DNS -> 此連接的 dns 后綴,添加域控的完整名稱。
計算機右鍵 -> 屬性 -> 高級系統設置 -> 計算機名 -> 更改
修改計算機名master,修改隸屬於域:imxhy.com
點確定之后彈出一個輸入在域控中建立的用戶的用戶名和密碼。
提示加入成功,加入成功后建議重啟計算機。
注意:master.imxhy.com、slave.imxhy.com、arbit.imxhy.com都需要配置相關DNS為172.24.8.31,然后加入域“imxhy.com”,具體方法參考如上即可。
5.3 服務器配置域帳戶管理員
在master.imxhy.com、slave.imxhy.com計算機繼續使用本地管理員administrator登錄,分別將“imxhy\sqluser”帳戶添加為本機管理員,如圖所示:
注銷本地administrator,使用sqluser@imxhy.com用戶登錄,確認已具有管理員權限。
六 安裝SQLServer 2012
6.1 使用向導安裝
系統會自動檢查安裝環境,點擊確認到下一步。
正版自帶產品密鑰,直接點擊下一步。
勾選我接受許可條款,然后一直繼續下一步。
進行產品更新。
勾選我接受許可條款,然后一直繼續下一步。
檢查安裝程序支持規則。
采用默認SQL Server功能安裝。
本實驗安裝主要功能,自行選擇,安裝路徑采用默認,可根據需要自行選擇。
提示:具體SQLServer功能模塊介紹可參考:https://blog.csdn.net/m0_37154839/article/details/80233446。
默認實列即可。
檢查磁盤空間要求。
服務器配置,將相關賬戶配置為域用戶及密碼,相關服務設置為自動啟動。
其他相關組件如下即可。
建議使用混合模式,並添加當前域用戶。
錯誤報告配置。
安裝配置規則。
准備安裝,可確認所有相關信息。
等待安裝完成。
安裝完成。
6.2 配置SQLServer以域帳戶運行
分別在master.imxhy.com、slave.imxhy.com的“管理工具”中打開“服務”(或者用“SQL Server 配置管理器”),修改SQL Server實例的屬性,將登錄身份改為“imxhy\sqluser”。修改之后,重啟SQL Server實例。
提示:安裝過程中服務器配置已添加域賬戶可跳過此6.2步驟。
說明:如果SQL Server實例是通過不同的本地帳戶啟動的,那么在創建鏡像時主體數據庫會嘗試用本機帳戶去連接鏡像數據庫,最終會報錯;
slave.imxhy.com、arbit.imxhy.com參考以上進行安裝及配置。
6.3 啟用TCP/IP協議和RemoteDAC
打開SQL Server Management Studio,連接本地數據庫,
選擇對應服務器, 如MASTER -> 方面。
選擇“外圍應用配置器” -> 將屬性“RemoteDACEnabled”的值改為“True”。
注意:slave.imxhy.com、arbit.imxhy.com參考以上進行安裝及配置。
七 測試數據庫准備工作
7.1 master節點新建用戶同步的數據庫
在master.imxhy.com(主體服務器)打開SQL Server Management Studio,右鍵”數據庫” -> “新建數據庫”。
在”常規“頁面輸入數據庫名稱,本實驗為MDB。
在”選項”頁面確保恢復模式為”完整“。
7.2 備份master節點數據庫MDB
右鍵”MDB”選擇”任務“ -> ”備份“。
備份類型選擇”完整“,點擊”確定“。
完整的備份完畢后,再次選擇備份類型為”事務日志“,點擊”確定“完成對事務日志的備份。
提示:默認備份路徑為:C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup。
7.3 slave節點新建用戶同步的數據庫
在slave.imxhy.com(鏡像服務器)打開SQL Server Management Studio,右鍵”數據庫” -> “新建數據庫”。
輸入數據庫名稱,點擊“確定”(此數據庫名稱必須與master中創建的數據庫名稱保持一致)
7.4 slave節點還原備份文件
將7.2所備份的文件MDB.bak復制至slave節點備份存放默認路徑:C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup。
右鍵新創建的數據庫“MDB” -> “任務” -> “還原” -> “數據庫”。
依次添加需要還原的相關文件。
勾選要還原的備份集。
在“選項”頁面勾選“覆蓋現有數據庫”,恢復狀態選擇“RESTORE WITH NORECOVERY”,取消勾選“還原前進行結尾日志備份”,點擊“確定”。
等待還原成功。
確認slave.imxhy.com(鏡像服務器)處於正在還原。
提示:提示成功還原后slave節點MDB會一直處於正在還原狀態,此狀態為正常狀態,表示等待master節點發起鏡像同步。
八 配置數據庫鏡像
8.1 master節點配置鏡像
在主體服務器SQL01.huangjh.com右鍵 -> “DB01” -> “任務” -> “鏡像”。
點擊“配置安全性”。
本實驗規划見證服務器。
勾選“見證服務器實例”,下一步。
配置主題服務器實例及相應端口。
配置鏡像服務器,可通過瀏覽或手動輸入鏡像服務器名稱SLAVE,點擊”連接”。
配置鏡像服務器,可通過瀏覽或手動輸入見證服務器名稱ARBIT,點擊”連接”。
確認見證服務器及相關端口信息。
輸入實例服務賬戶IMXHY\sqluser,下一步。
確認相關信息。
等待配置端點完成。
點擊“開始鏡像”。
提示:若出現鏡像失敗可在hosts中手動添加相應解析,保證網絡連通性正常。
九 檢查與驗證
9.1 狀態檢查
主體服務器相關數據庫狀態應該為(主體,已同步)
鏡像服務器相關數據庫狀態應該為(客體,已同步 / 正在還原..)
提示:對於鏡像數據庫,是不允許刪除和操作。
十 功能驗證
10.1 狀態驗證
在主體服務器MASTER右鍵數據庫“MDB”選擇“任務”—“啟動數據庫鏡像監視器”。
在此頁面可看到數據庫鏡像的同步狀態等。
10.2 故障遷移測試
在主體服務器MASTER右鍵數據庫“MDB”選擇“屬性”,在主體服務器SQL01右鍵數據庫“DB01”選擇“屬性”,選擇頁“鏡像”點擊“故障轉移”。
是。
在SLAVE上確認MDB狀態是否變為(主體,已同步),可查看相關主體和鏡像服務器已成功切換。
10.3 關機高可用測試
關閉此時的主體服務器,即SLAVE,然后回到MASTER,觀察可知此時自動將主體故障轉移到MASTER中,且鏡像服務器SLAVE,狀態為”沒有連接:無法連接鏡像服務器實例或見證服務器實例”。
將SLAVE開機后恢復正常后,狀態為”已同步:數據庫已完全同步”,說明自動故障轉移成功。
參考官方文檔:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/ms189852(v%3dsql.110)
https://blog.csdn.net/kelyon/article/details/79207585
http://www.php.cn/mysql-tutorials-116073.html