程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> SQL Server高可用的常見問題分析

SQL Server高可用的常見問題分析

編輯:更多數據庫知識

每次談到SQL Server的高可用,很多的DBA,特別是SQL Server DBA心裡一痛:因為大家都認為SQL Server無法或者很難實現SQL Server。也有很多的DBA朋友腦袋一拍,給出答案“高可用不就是微軟的那幾個技術嗎,如Replication, Failover Clustering”…

1.難道SQL Server在高可用上面就顯得這麼的無力嗎?
回答:不是的,其實SQL Server很給力。

2.為什麼很多人總是抱怨SQL Server中高可用很難實現呢?
這裡從幾個方面來說。
首先,就所接觸到的很多的項目(歐美居多),這些項目中不乏所謂的海量數據,也有很多的高性能應用,後面采用的都是SQL Server,而且還沒有采用第三方的數據庫輔助軟件。

其次,我們說說人的問題。人都有這樣一個習慣:每次出現問題之後,第一反應就是逃避,然後找個好的理由或者替罪羊,最後搞來搞去,就開始怪技術本身不行。這就有點類似,菜鳥用寶刀的時候,殺不死人,不貴本身的能力不行,而是怪刀不好。說到這裡,就想到之前的CSDN密碼洩露問題,很多人居然大罵微軟的技術不行,這讓那些已經用微軟技術實現高安全的應用的公司看笑話。

再次,以偏概全的概念!很多人以為Replication就是高可用了,於是就一股腦的指望Replication可以解決他們的問題,殊不知:Replication只是實現高可用中的一個重要的組件而已,而不是全部。說到這裡,是我想起幾個類似誤解,“以為JQuery就是ajax技術”,殊不知,jquery只是一個框架,可以用來實現ajax而已。有人認為“架構設計就是設計模式和架構模式的使用”,其實架構設計就是一種思維,而那些模式僅僅只是一個小的手段而已,把架構設計比喻為一個大樓,那些模式充其量就是一些磚頭,而不是全部。
同理,Replication也僅僅只是實現高可用中的“一塊磚”。

最後,對於技術的掌握程度不夠,導致很多人遇到問題時候無法解決。而且也不知道找誰解決,去哪裡找等。

3.高可用是用一個軟件或者產品就搞定的嗎?
這裡很多人想到的就是Oracle的RAC,還有一些第三方的產品。不同的產品,封裝的程度不一樣,有的產品把很多的東西都封裝了,只需使用人員學習如何使用工具就OK,不用掌握細節。但是,使用這些產品的時候,在進行部署和操作的時候,實際上就是在按照產品設計人的思想在搭建高可用而已,只是我們認為這個過程是“使用手冊”而已。

而SQL Server本身沒有提供這樣的完全封裝的產品,但是高可用設計中需要的重要核心技術和組件都已經有了,“釘子,螺絲,材料”都有了,就看你如何組裝起來。
同樣的做菜材料和工具,高明的廚師做出來的是美味佳肴,而一般的廚師僅僅只是把菜搞熟而已。

4.高可用僅僅只是數據庫技術嗎?
實現高可用,不僅僅只是數據庫層面上面的內容,其實更多需要的是設計和架構能力。需要知道,軟件,硬件,操作系統,網絡,數據庫等技術。

而且高可用也不是一個具體的技術,而是概念,實現的方法就是千千萬。有人說“高可用就是讀寫分離”,“高可用就是負載均衡”,對嗎?用腳趾頭都可以回答這些問題。

5.沒有萬能的產品和萬能的方案,一切都是“看情況而定”
很多人在爭論“無共享磁盤(數據庫)”好,“水平拆分”好。這些說的直白一點:單獨的討論,沒有任何的意義。不把技術用在具體的應用中,不帶來經濟價值,技術什麼都不是。

產品,技術等本身都是有一定的使用范圍和局限性的,很多社區的朋友在討論的時候,總是喜歡一個萬能的產品特性,例如,有人說“SQL Server 2012的AlwaysOn”可以實現高可用了。殊不知:技術是人在使用,產品只是我們人在設計中使用的一個零件而已,最後的設計還是看人。早在十多年前,就有很多的公司的大型應用就是采用SQL 2000做的,那時候,SQL Server還沒有這麼多的功能和組件。

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