程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 淺談SQL Server中的高可用性(1) 高可用性概覽

淺談SQL Server中的高可用性(1) 高可用性概覽

編輯:關於SqlServer

自從SQL Server 2005以來,微軟已經提供了多種高可用性技術來減少宕機時間和增加對業務數據的保護,而隨著SQL Server 2008,SQL Server 2008 R2,SQL Server 2012的不斷發布,SQL Server中已經存在了滿足不同場景的多種高可用性技術。

在文章開始之前,我首先簡單概述一下以什麼來決定使用哪一種高可用性技術。

依靠什麼來決定使用哪一種高可用性技術?

很多企業都需要他們的全部或部分數據高可用,比如說在線購物網站,在線商品數據庫必7*24小時在線,否則在競爭激烈的市場環境下,宕機時間就意味著流失客戶和收入。再比如說,一個依賴於SQL Server的呼叫中心,如果數據庫宕機,則所有的呼叫員都只能坐在那裡回復客戶“對不起,系統故障”,這也是很難接受的。

當然,在一個理想的世界中,所有的關鍵數據都會時刻在線,但在現實世界中,會存在各種各樣的原因導致數據庫不可用,由於無法預估災難出現的時間和形式,需要提前采取措施來預防各種突發情況,因此SQL Server提供了多種高可用性技術,這些技術主要包括:集群、復制、鏡像、日志傳送、AlwaysOn可用性組以及其它諸如文件組備份還原、在線重建索引等單實例的高可用性技術。使用何種高可用性技術並不是隨意挑一個熟悉技術直接使用,而是要基於業務和技術綜合考慮。因為沒有一項單獨的技術可以實現所有的功能。如何根據具體的業務和預算采用這些技術,就是所謂的高可用性策略。

在設計高可用性策略時應該首先考慮下述因素:

RTO(Recovery Time Objective)-也就是恢復時間目標,意味著允許多少宕機時間,通常用幾個9表示,比如說99.999%的可用性意味著每年的宕機時間不超過5分鐘、99.99%的可用性意味著每年的宕機時間不超過52.5分鐘、99.9%的可用性意味著每年的宕機時間不超過8.75小時。值得注意的是,RTO的計算方法要考慮系統是24*365,還是僅僅是上午6點到下午9點等。您還需要注意是否維護窗口的時間在算在宕機時間之內,如果允許在維護窗口時間進行數據庫維護和打補丁,則更容易實現更高的可用性。

RPO(Recovery Point Objective)-也就是恢復點目標,意味著允許多少數據損失。通常只要做好備份,可以比較容易的實現零數據損失。但當災難發生時,取決於數據庫損壞的程度,從備份恢復數據所需要的時間會導致數據庫不可用,這會影響RTO的實現。一個早期比較著名的例子是某歐美的銀行系統,只考慮的RPO,系統裡只存在了完整備份和日志備份,每3個月一次完整備份,每15分鐘一次日志備份,當災難發生時,只能夠通過完整備份和日志備份來恢復數據,因此雖然沒有數據丟失,但由於恢復數據花了整整兩天時間,造成銀行系統2天時間不可用,因此流失了大量客戶。另外一個相反的例子是國內某在線視頻網站,使用SQL Server作為後端關系數據庫,前端使用了No-SQL,定期將No-SQL的數據導入關系數據庫作為備份,當災難發生時最多允許丟失一天的數據,但是要保證高可用性。

預算 –RTO和RPO統稱為SLA(服務水平協議),設計高可用性策略時,要根據業務來衡量滿足何種程度的SLA,這要取決於預算以及衡量不同SLA在故障時所造成的損失。SLA並不是越高越好,而是要基於業務需求,通常來說,在有限的預算之下很難實現很高的SLA,並且即使通過復雜的架構實現較高的SLA,復雜的架構也意味著高運維成本,因此需要在預算范圍之內選擇合適的技術來滿足SLA。

因此,綜合來說,可以通過幾個接單的問題確定高可用性的大框架:

股東能夠接受的宕機時間是多少?

管理人員能夠接受的宕機時間是多少?

為高可用性方案提供的預算是多少?

宕機導致的損失是每小時是多少錢?

冷備份、暖備份和熱備份

根據主機和備機之間同步數據的程度,備份可以分為三種情況,分別為冷備份、暖備份和熱備份。

冷備份:也就是所謂的備份,備用服務器被配置用於接受主服務器的數據,當出故障時,手動將數據還原到主數據庫,或是重新配置程序的連接字符串或權限來使得備份數據庫上線。

暖備份:主服務器數據會不停的將日志傳送到備用服務器(間隔不定,可以是15分鐘,30分鐘,1分鐘等等),在這方式下,主服務器到備份服務器通常是異步更新,所以不能保證主服務器和備份服務器數據一致。此外,該方案通常不會實現自動故障監測和故障轉移。

熱備份:主服務器的數據自動在備份服務器上進行同步,大多數情況下都會包含自動的故障監測和故障轉移,並且能夠保證主服務器和備份服務器的數據一致性。

隨著冷備份到暖備份到熱備份,成本會直線上升。

SQL Server中所支持的高可用特性

SQL Server中所支持的高可用性功能與版本息息相關,企業版支持所有的高可用性功能,這些功能包括:

l 故障轉移集群

l 數據庫鏡像

l 事務日志傳送

l 數據庫快照

l 高可用性升級

l 熱加載內存

l 在線索引操作

l 數據庫部分在線(只還原了主文件組或主文件組和額外的NDF文件)

具體何種版本支持哪些高可用特性,請參閱:http://msdn.microsoft.com/zh-cn/library/cc645993.aspx,值得注意的是免費的Express版本可以作為數據庫鏡像的見證服務器,從而節省了成本。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved