您好,登錄后才能下訂單哦!
sql server 2012數據庫鏡像
以下通過域帳戶來配置數據庫鏡像:
一、環境準備
1、準備計算機
AD02為域控制器/DNS服務器(sz1card1.com),IP:192.168.2.218/24,AD02安裝成為域控制器、DNS服務(這里不做演示)
W67為主體服務器,IP:192.168.2.67/24,安裝SQL SERVER 2012 企業核心版(這里不做演示)
W65為鏡像服務器,IP:192.168.2.65/24,安裝SQL SERVER 2012 企業核心版(這里不做演示)
注:測試環境關閉所有防火墻 ,準備鏡像用的數據庫為test庫
2、測試直接使用administrator域控管理員用戶和密碼(*********),建議自行在域控制器創建新的域用戶帳戶(確保該賬戶密碼永不過期)
二、部署實驗
1、在W65、W67服務器的SQL數據庫上,在“管理工具”中打開“服務”(或者用“SQL Server 配置管理器”),修改SQL Server實例的屬性,將登錄身份改為設置sz1card1\administrator。修改之后,重啟SQL Server實例。
2、W65、W67服務器的SQL數據庫,右鍵實例選擇“方面”,選擇“外圍應用配置器”―將屬性“RemoteDACEnabled”的值改為“True”
3、確認W67服務器test數據庫必須是“完整恢復模式”,備份類型選擇”完整“,點擊”確定“ ;選擇備份類型為”事務日志“,點擊”確定“完成對事務日志的備份,完整備份和日志備份完后,拷貝至W65服務器準備做還原
4、W65服務器創建test庫(此數據庫名稱必須與W67中創建的數據庫名稱保持一致) ,并且修改為“完整恢復模式”,右鍵新創建的數據庫“test”--選擇“任務”―“還原”―“數據庫”,選擇設備-->添加,選擇剛才從W67復制的備份文件(含備份數據庫和日志),點擊”確定” , 在“選項”頁面勾選“覆蓋現有數據庫”,恢復狀態選擇“RESTORE WITH NORECOVERY”,取消勾選“還原前進行結尾日志備份”,點擊“確定”,這時W65上的test數據庫處于還原的狀態
5、數據庫鏡像配置,在主體服務器W67右鍵“test”選擇“任務”―“鏡像” ,點擊“配置安全性”,跟進向導配置主體服務器配置,默認鏡像為同步(鏡像模式類型優缺點可參照微軟官網文檔)
6、W67鏡像配置成功后,啟動開始鏡像,這時W67服務器上test數據庫處于“主體,已同步”,W65服務器上鏡像數據庫test數據庫處于“鏡像,已同步\正在還原”
注:鏡像數據庫test處于正在還原狀態,是不可讀寫的,作為故障轉移切換用,不能分擔讀或寫!
7、可在W67服務器選擇test數據庫右鍵--任務--啟動鏡像監視器,查看同步狀態
8、測試:主體數據庫在test庫,users表,增加一條記錄,
INSERT users VALUES(11,'TEST')
注:由于鏡像同步方式,并且當前同步狀態正常,測試數據不多,數據很快同步至鏡像庫,但由于鏡像庫當前不可讀寫,看不到剛剛添加的數據,只能以下模擬故障切換鏡像庫為主庫,驗證數據。
9、手動切換故障,W67服務器test數據庫,右鍵--任務--鏡像--“故障轉移”,轉移成功后,當前W67服務器test數據庫狀態為“鏡像,已同步\正在還原”,W65服務器test數據庫,則為主體數據庫,狀態為“主體,已同步”
注:切換成功,并且數據驗證正常
若:出現主體服務器,宕機情況呢!如這時的主體W65出現宕機了,W67鏡像庫狀態為“正在恢復”,同樣不可訪問。這時只能手工執行命令切換,在鏡像庫master系統執行以下命令:
--This script does a failover of all the databases in a database mirroring session --to the Mirror server. This will be used in cases where the PRINCIPAL server is no longer available --and the mirrored databases have to be brought online. --NOTE: Run this script in the MIRRORED server instance SET NOCOUNT OFF DECLARE @strSQL NVARCHAR(200) --variable for dynamic SQL statement - variable size should change depending on the DECLARE @strDatabasename NVARCHAR(50) --variable for destination directory DECLARE MyCursor CURSOR FOR --used for cursor allocation SELECT name FROM master.sys.databases a INNER JOIN master.sys.database_mirroring b ON a.database_id=b.database_id WHERE NOT mirroring_guid IS NULL AND mirroring_role_desc='MIRROR' OPEN MyCursor FETCH Next FROM MyCursor INTO @strDatabasename WHILE @@Fetch_Status = 0 BEGIN ---Run the ALTER DATABASE databaseName SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS SET @strSQL = 'ALTER DATABASE ' + @strDatabaseName + ' SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS' EXEC sp_executesql @strSQL PRINT 'Bringing ' + @strDatabaseName + ' ONLINE' PRINT '========================================' FETCH Next FROM MyCursor INTO @strDatabasename END CLOSE MyCursor DEALLOCATE MyCursor
執行成功后,W67又變為主體,當前的狀態為“主體,已斷開連接”(由于W65還未恢復)
恢復啟動W65這時,test庫狀態為“鏡像,掛起”,W67為“主體,掛起”,,需要手動在“任務”--鏡像--點擊“繼續”,這時同步恢復到最初鏡像同步狀態!!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。