SqlServer雙機熱備技術實踐筆記


原文:https://www.cnblogs.com/bluedoctor/p/5197586.html

SqlServer雙機熱備,大體上可以通過發布訂閱,日志傳送,數據庫鏡像來實現。

1,發布--訂閱

是最早最簡單的方案,但需要注意發布的時候,發布進程必須對快照目錄有訪問權限,這個問題可以從“查看快照代理狀態”看到相關提示。

在查看代理日志的時候,有可能發現代理未運行,錯誤提示:進程無法在“WIN-XXX”上執行“sp_replcmds”。

此時應該執行下面的命令:

USE [發布的數據庫]
EXEC sp_changedbowner 'sa';

這里要求在配置代理安全性的時候,日志讀取器代理--安全設置--連接到發布服務器,使用 sa 賬號登陸

2,日志傳送

可以參考下面的資料:   SQL Server 雙機熱備1(based on log shipping)   http://blog.csdn.net/isoftk/article/details/1914175   采用日志傳送的方式實現

3,數據庫鏡像

使用數據庫鏡像,可以做到數據庫高可用,具體參考下面幾篇文章:

1),windows_server2008+SQL_server2008雙機熱備實例   http://www.doc88.com/p-2052060058186.html   采用故障轉移群集實現

2),數據庫鏡像概述   https://msdn.microsoft.com/zh-cn/library/ms189852(v=SQL.90).aspx   采用鏡像實現備份

3),數據庫鏡像部署   http://www.doc88.com/p-690922020761.html   http://liulike.blog.51cto.com/1355103/339183

注意:如果不使用Windows域賬號,在開始鏡像的時候,絕大多數情況下都會出現 1418號錯誤,按照網上有關方法操作,也難以成功。

4,使用SqlServer 2012的 AlwaysOn 功能

AlwaysOn功能是最新的SQLSERVER高可用技術(HA),它實際上還是依賴於數據庫鏡像,詳細請參考下面資料:   http://wenku.baidu.com/link?url=BX-Io-x-3n-SGmQELT14iTuJoW_6sv9VveGvUE4yu2cHvSdhmU8lGVTki2_F2xIGmO-Dt7QWYaWBS8sokscOEhDVkQienmhrLMEkzuAsQMK&qq-pf-to=pcqq.group

5,雙機熱備的數據訪問

如果成功實現了雙機熱備,做到了HA,當主數據庫服務器宕機后,有人會說,兩個數據庫,IP地址都不一樣,怎么寫連接代碼呢?難道出現故障后要手動更改代碼嗎?

有2種方案:

1)用zookeeper監測,主機掛掉,自動會切換到備用機上。應用程序訪問zookeeper提供的虛擬地址。

2)其實使用ADO.NET或者SQL Native Client能夠自動連接到故障轉移后的伙伴,連接字符串如下所示: ConnectionString="DataSource= A;Failover Partner=B;Initial Catalog=AdventureWorks;Integrated Security=true;" DataSource= A; 這樣設置之后,客戶端就可以自動切換數據庫了

方案 2)請詳細參考 http://www.cnblogs.com/lhws/p/3772110.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM