SQL Server高可用的常見問題
1.難道SQL Server在高可用上面就顯得這么的無力嗎?
回答:不是的,其實(shí)SQL Server很給力。
2.為什么很多人總是抱怨SQL Server中高可用很難實(shí)現(xiàn)呢?
這里從幾個(gè)方面來說。
首先,就所接觸到的很多的項(xiàng)目(歐美居多),這些項(xiàng)目中不乏所謂的海量數(shù)據(jù),也有很多的高性能應(yīng)用,后面采用的都是SQL Server,而且還沒有采用第三方的數(shù)據(jù)庫輔助軟件。
其次,我們說說人的問題。人都有這樣一個(gè)習(xí)慣:每次出現(xiàn)問題之后,第一反應(yīng)就是逃避,然后找個(gè)好的理由或者替罪羊,最后搞來搞去,就開始怪技術(shù)本身不行。這就有點(diǎn)類似,菜鳥用寶刀的時(shí)候,殺不死人,不貴本身的能力不行,而是怪刀不好。說到這里,就想到之前的CSDN密碼泄露問題,很多人居然大罵微軟的技術(shù)不行,這讓那些已經(jīng)用微軟技術(shù)實(shí)現(xiàn)高安全的應(yīng)用的公司看笑話。
再次,以偏概全的概念!很多人以為Replication就是高可用了,于是就一股腦的指望Replication可以解決他們的問題,殊不知:Replication只是實(shí)現(xiàn)高可用中的一個(gè)重要的組件而已,而不是全部。說到這里,是我想起幾個(gè)類似誤解,“以為JQuery就是ajax技術(shù)”,殊不知,jquery只是一個(gè)框架,可以用來實(shí)現(xiàn)ajax而已。有人認(rèn)為“架構(gòu)設(shè)計(jì)就是設(shè)計(jì)模式和架構(gòu)模式的使用”,其實(shí)架構(gòu)設(shè)計(jì)就是一種思維,而那些模式僅僅只是一個(gè)小的手段而已,把架構(gòu)設(shè)計(jì)比喻為一個(gè)大樓,那些模式充其量就是一些磚頭,而不是全部。
同理,Replication也僅僅只是實(shí)現(xiàn)高可用中的“一塊磚”。
最后,對(duì)于技術(shù)的掌握程度不夠,導(dǎo)致很多人遇到問題時(shí)候無法解決。而且也不知道找誰解決,去哪里找等。
3.高可用是用一個(gè)軟件或者產(chǎn)品就搞定的嗎?
這里很多人想到的就是Oracle的RAC,還有一些第三方的產(chǎn)品。不同的產(chǎn)品,封裝的程度不一樣,有的產(chǎn)品把很多的東西都封裝了,只需使用人員學(xué)習(xí)如何使用工具就OK,不用掌握細(xì)節(jié)。但是,使用這些產(chǎn)品的時(shí)候,在進(jìn)行部署和操作的時(shí)候,實(shí)際上就是在按照產(chǎn)品設(shè)計(jì)人的思想在搭建高可用而已,只是我們認(rèn)為這個(gè)過程是“使用手冊(cè)”而已。
而SQL Server本身沒有提供這樣的完全封裝的產(chǎn)品,但是高可用設(shè)計(jì)中需要的重要核心技術(shù)和組件都已經(jīng)有了,“釘子,螺絲,材料”都有了,就看你如何組裝起來。
同樣的做菜材料和工具,高明的廚師做出來的是美味佳肴,而一般的廚師僅僅只是把菜搞熟而已。
4.高可用僅僅只是數(shù)據(jù)庫技術(shù)嗎?
實(shí)現(xiàn)高可用,不僅僅只是數(shù)據(jù)庫層面上面的內(nèi)容,其實(shí)更多需要的是設(shè)計(jì)和架構(gòu)能力。需要知道,軟件,硬件,操作系統(tǒng),網(wǎng)絡(luò),數(shù)據(jù)庫等技術(shù)。
而且高可用也不是一個(gè)具體的技術(shù),而是概念,實(shí)現(xiàn)的方法就是千千萬。有人說“高可用就是讀寫分離”,“高可用就是負(fù)載均衡”,對(duì)嗎?用腳趾頭都可以回答這些問題。
5.沒有萬能的產(chǎn)品和萬能的方案,一切都是“看情況而定”。
很多人在爭論“無共享磁盤(數(shù)據(jù)庫)”好,“水平拆分”好。這些說的直白一點(diǎn):單獨(dú)的討論,沒有任何的意義。不把技術(shù)用在具體的應(yīng)用中,不帶來經(jīng)濟(jì)價(jià)值,技術(shù)什么都不是。
產(chǎn)品,技術(shù)等本身都是有一定的使用范圍和局限性的,很多社區(qū)的朋友在討論的時(shí)候,總是喜歡一個(gè)萬能的產(chǎn)品特性,例如,有人說“SQL Server 2012的AlwaysOn”可以實(shí)現(xiàn)高可用了。殊不知:技術(shù)是人在使用,產(chǎn)品只是我們?nèi)嗽谠O(shè)計(jì)中使用的一個(gè)零件而已,最后的設(shè)計(jì)還是看人。早在十多年前,就有很多的公司的大型應(yīng)用就是采用SQL 2000做的,那時(shí)候,SQL Server還沒有這么多的功能和組件。
原文鏈接:http://www.cnblogs.com/yanyangtian/archive/2012/11/29/2793945.html
【編輯推薦】