SQL Server高可用的常見問題分析
發(fā)布日期:2022-01-09 13:42 | 文章來源:源碼之家
1.難道SQL Server在高可用上面就顯得這么的無力嗎?
回答:不是的,其實SQL Server很給力。 2.為什么很多人總是抱怨SQL Server中高可用很難實現(xiàn)呢?
這里從幾個方面來說。
首先,就所接觸到的很多的項目(歐美居多),這些項目中不乏所謂的海量數(shù)據(jù),也有很多的高性能應(yīng)用,后面采用的都是SQL Server,而且還沒有采用第三方的數(shù)據(jù)庫輔助軟件。 其次,我們說說人的問題。人都有這樣一個習慣:每次出現(xiàn)問題之后,第一反應(yīng)就是逃避,然后找個好的理由或者替罪羊,最后搞來搞去,就開始怪技術(shù)本身不行。這就有點類似,菜鳥用寶刀的時候,殺不死人,不貴本身的能力不行,而是怪刀不好。說到這里,就想到之前的CSDN密碼泄露問題,很多人居然大罵微軟的技術(shù)不行,這讓那些已經(jīng)用微軟技術(shù)實現(xiàn)高安全的應(yīng)用的公司看笑話。 再次,以偏概全的概念!很多人以為Replication就是高可用了,于是就一股腦的指望Replication可以解決他們的問題,殊不知:Replication只是實現(xiàn)高可用中的一個重要的組件而已,而不是全部。說到這里,是我想起幾個類似誤解,“以為JQuery就是ajax技術(shù)”,殊不知,jquery只是一個框架,可以用來實現(xiàn)ajax而已。有人認為“架構(gòu)設(shè)計就是設(shè)計模式和架構(gòu)模式的使用”,其實架構(gòu)設(shè)計就是一種思維,而那些模式僅僅只是一個小的手段而已,把架構(gòu)設(shè)計比喻為一個大樓,那些模式充其量就是一些磚頭,而不是全部。
同理,Replication也僅僅只是實現(xiàn)高可用中的“一塊磚”。 最后,對于技術(shù)的掌握程度不夠,導(dǎo)致很多人遇到問題時候無法解決。而且也不知道找誰解決,去哪里找等。 3.高可用是用一個軟件或者產(chǎn)品就搞定的嗎?
這里很多人想到的就是Oracle的RAC,還有一些第三方的產(chǎn)品。不同的產(chǎn)品,封裝的程度不一樣,有的產(chǎn)品把很多的東西都封裝了,只需使用人員學習如何使用工具就OK,不用掌握細節(jié)。但是,使用這些產(chǎn)品的時候,在進行部署和操作的時候,實際上就是在按照產(chǎn)品設(shè)計人的思想在搭建高可用而已,只是我們認為這個過程是“使用手冊”而已。 而SQL Server本身沒有提供這樣的完全封裝的產(chǎn)品,但是高可用設(shè)計中需要的重要核心技術(shù)和組件都已經(jīng)有了,“釘子,螺絲,材料”都有了,就看你如何組裝起來。
同樣的做菜材料和工具,高明的廚師做出來的是美味佳肴,而一般的廚師僅僅只是把菜搞熟而已。 4.高可用僅僅只是數(shù)據(jù)庫技術(shù)嗎?
實現(xiàn)高可用,不僅僅只是數(shù)據(jù)庫層面上面的內(nèi)容,其實更多需要的是設(shè)計和架構(gòu)能力。需要知道,軟件,硬件,操作系統(tǒng),網(wǎng)絡(luò),數(shù)據(jù)庫等技術(shù)。 而且高可用也不是一個具體的技術(shù),而是概念,實現(xiàn)的方法就是千千萬。有人說“高可用就是讀寫分離”,“高可用就是負載均衡”,對嗎?用腳趾頭都可以回答這些問題。 5.沒有萬能的產(chǎn)品和萬能的方案,一切都是“看情況而定”
很多人在爭論“無共享磁盤(數(shù)據(jù)庫)”好,“水平拆分”好。這些說的直白一點:單獨的討論,沒有任何的意義。不把技術(shù)用在具體的應(yīng)用中,不帶來經(jīng)濟價值,技術(shù)什么都不是。 產(chǎn)品,技術(shù)等本身都是有一定的使用范圍和局限性的,很多社區(qū)的朋友在討論的時候,總是喜歡一個萬能的產(chǎn)品特性,例如,有人說“SQL Server 2012的AlwaysOn”可以實現(xiàn)高可用了。殊不知:技術(shù)是人在使用,產(chǎn)品只是我們?nèi)嗽谠O(shè)計中使用的一個零件而已,最后的設(shè)計還是看人。早在十多年前,就有很多的公司的大型應(yīng)用就是采用SQL 2000做的,那時候,SQL Server還沒有這么多的功能和組件。
回答:不是的,其實SQL Server很給力。 2.為什么很多人總是抱怨SQL Server中高可用很難實現(xiàn)呢?
這里從幾個方面來說。
首先,就所接觸到的很多的項目(歐美居多),這些項目中不乏所謂的海量數(shù)據(jù),也有很多的高性能應(yīng)用,后面采用的都是SQL Server,而且還沒有采用第三方的數(shù)據(jù)庫輔助軟件。 其次,我們說說人的問題。人都有這樣一個習慣:每次出現(xiàn)問題之后,第一反應(yīng)就是逃避,然后找個好的理由或者替罪羊,最后搞來搞去,就開始怪技術(shù)本身不行。這就有點類似,菜鳥用寶刀的時候,殺不死人,不貴本身的能力不行,而是怪刀不好。說到這里,就想到之前的CSDN密碼泄露問題,很多人居然大罵微軟的技術(shù)不行,這讓那些已經(jīng)用微軟技術(shù)實現(xiàn)高安全的應(yīng)用的公司看笑話。 再次,以偏概全的概念!很多人以為Replication就是高可用了,于是就一股腦的指望Replication可以解決他們的問題,殊不知:Replication只是實現(xiàn)高可用中的一個重要的組件而已,而不是全部。說到這里,是我想起幾個類似誤解,“以為JQuery就是ajax技術(shù)”,殊不知,jquery只是一個框架,可以用來實現(xiàn)ajax而已。有人認為“架構(gòu)設(shè)計就是設(shè)計模式和架構(gòu)模式的使用”,其實架構(gòu)設(shè)計就是一種思維,而那些模式僅僅只是一個小的手段而已,把架構(gòu)設(shè)計比喻為一個大樓,那些模式充其量就是一些磚頭,而不是全部。
同理,Replication也僅僅只是實現(xiàn)高可用中的“一塊磚”。 最后,對于技術(shù)的掌握程度不夠,導(dǎo)致很多人遇到問題時候無法解決。而且也不知道找誰解決,去哪里找等。 3.高可用是用一個軟件或者產(chǎn)品就搞定的嗎?
這里很多人想到的就是Oracle的RAC,還有一些第三方的產(chǎn)品。不同的產(chǎn)品,封裝的程度不一樣,有的產(chǎn)品把很多的東西都封裝了,只需使用人員學習如何使用工具就OK,不用掌握細節(jié)。但是,使用這些產(chǎn)品的時候,在進行部署和操作的時候,實際上就是在按照產(chǎn)品設(shè)計人的思想在搭建高可用而已,只是我們認為這個過程是“使用手冊”而已。 而SQL Server本身沒有提供這樣的完全封裝的產(chǎn)品,但是高可用設(shè)計中需要的重要核心技術(shù)和組件都已經(jīng)有了,“釘子,螺絲,材料”都有了,就看你如何組裝起來。
同樣的做菜材料和工具,高明的廚師做出來的是美味佳肴,而一般的廚師僅僅只是把菜搞熟而已。 4.高可用僅僅只是數(shù)據(jù)庫技術(shù)嗎?
實現(xiàn)高可用,不僅僅只是數(shù)據(jù)庫層面上面的內(nèi)容,其實更多需要的是設(shè)計和架構(gòu)能力。需要知道,軟件,硬件,操作系統(tǒng),網(wǎng)絡(luò),數(shù)據(jù)庫等技術(shù)。 而且高可用也不是一個具體的技術(shù),而是概念,實現(xiàn)的方法就是千千萬。有人說“高可用就是讀寫分離”,“高可用就是負載均衡”,對嗎?用腳趾頭都可以回答這些問題。 5.沒有萬能的產(chǎn)品和萬能的方案,一切都是“看情況而定”
很多人在爭論“無共享磁盤(數(shù)據(jù)庫)”好,“水平拆分”好。這些說的直白一點:單獨的討論,沒有任何的意義。不把技術(shù)用在具體的應(yīng)用中,不帶來經(jīng)濟價值,技術(shù)什么都不是。 產(chǎn)品,技術(shù)等本身都是有一定的使用范圍和局限性的,很多社區(qū)的朋友在討論的時候,總是喜歡一個萬能的產(chǎn)品特性,例如,有人說“SQL Server 2012的AlwaysOn”可以實現(xiàn)高可用了。殊不知:技術(shù)是人在使用,產(chǎn)品只是我們?nèi)嗽谠O(shè)計中使用的一個零件而已,最后的設(shè)計還是看人。早在十多年前,就有很多的公司的大型應(yīng)用就是采用SQL 2000做的,那時候,SQL Server還沒有這么多的功能和組件。
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章