SQL Server高可用的常見(jiàn)問(wèn)題分析
1.難道SQL Server在高可用上面就顯得這么的無(wú)力嗎?
回答:不是的,其實(shí)SQL Server很給力。
2.為什么很多人總是抱怨SQL Server中高可用很難實(shí)現(xiàn)呢?
這里從幾個(gè)方面來(lái)說(shuō)。
首先,就所接觸到的很多的項(xiàng)目(歐美居多),這些項(xiàng)目中不乏所謂的海量數(shù)據(jù),也有很多的高性能應(yīng)用,后面采用的都是SQL Server,而且還沒(méi)有采用第三方的數(shù)據(jù)庫(kù)輔助軟件。
其次,我們說(shuō)說(shuō)人的問(wèn)題。人都有這樣一個(gè)習(xí)慣:每次出現(xiàn)問(wèn)題之后,第一反應(yīng)就是逃避,然后找個(gè)好的理由或者替罪羊,最后搞來(lái)搞去,就開(kāi)始怪技術(shù)本身不行。這就有點(diǎn)類(lèi)似,菜鳥(niǎo)用寶刀的時(shí)候,殺不死人,不貴本身的能力不行,而是怪刀不好。說(shuō)到這里,就想到之前的CSDN密碼泄露問(wèn)題,很多人居然大罵微軟的技術(shù)不行,這讓那些已經(jīng)用微軟技術(shù)實(shí)現(xiàn)高安全的應(yīng)用的公司看笑話(huà)。
再次,以偏概全的概念!很多人以為Replication就是高可用了,于是就一股腦的指望Replication可以解決他們的問(wèn)題,殊不知:Replication只是實(shí)現(xiàn)高可用中的一個(gè)重要的組件而已,而不是全部。說(shuō)到這里,是我想起幾個(gè)類(lèi)似誤解,“以為JQuery就是ajax技術(shù)”,殊不知,jquery只是一個(gè)框架,可以用來(lái)實(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)致很多人遇到問(wèn)題時(shí)候無(wú)法解決。而且也不知道找誰(shuí)解決,去哪里找等。
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è)過(guò)程是“使用手冊(cè)”而已。
而SQL Server本身沒(méi)有提供這樣的完全封裝的產(chǎn)品,但是高可用設(shè)計(jì)中需要的重要核心技術(shù)和組件都已經(jīng)有了,“釘子,螺絲,材料”都有了,就看你如何組裝起來(lái)。
同樣的做菜材料和工具,高明的廚師做出來(lái)的是美味佳肴,而一般的廚師僅僅只是把菜搞熟而已。
4.高可用僅僅只是數(shù)據(jù)庫(kù)技術(shù)嗎?
實(shí)現(xiàn)高可用,不僅僅只是數(shù)據(jù)庫(kù)層面上面的內(nèi)容,其實(shí)更多需要的是設(shè)計(jì)和架構(gòu)能力。需要知道,軟件,硬件,操作系統(tǒng),網(wǎng)絡(luò),數(shù)據(jù)庫(kù)等技術(shù)。
而且高可用也不是一個(gè)具體的技術(shù),而是概念,實(shí)現(xiàn)的方法就是千千萬(wàn)。有人說(shuō)“高可用就是讀寫(xiě)分離”,“高可用就是負(fù)載均衡”,對(duì)嗎?用腳趾頭都可以回答這些問(wèn)題。
5.沒(méi)有萬(wàn)能的產(chǎn)品和萬(wàn)能的方案,一切都是“看情況而定”
很多人在爭(zhēng)論“無(wú)共享磁盤(pán)(數(shù)據(jù)庫(kù))”好,“水平拆分”好。這些說(shuō)的直白一點(diǎn):?jiǎn)为?dú)的討論,沒(méi)有任何的意義。不把技術(shù)用在具體的應(yīng)用中,不帶來(lái)經(jīng)濟(jì)價(jià)值,技術(shù)什么都不是。
產(chǎn)品,技術(shù)等本身都是有一定的使用范圍和局限性的,很多社區(qū)的朋友在討論的時(shí)候,總是喜歡一個(gè)萬(wàn)能的產(chǎn)品特性,例如,有人說(shuō)“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還沒(méi)有這么多的功能和組件。
相關(guān)文章
多列復(fù)合索引的使用 繞過(guò)微軟sql server的一個(gè)缺陷
多列復(fù)合索引是指由多個(gè)字段組成的索引。這種情況相當(dāng)常用的,并且,在查詢(xún)中,用多列復(fù)合索引來(lái)指定搜索范圍邊界也相當(dāng)常用2012-07-07sql server動(dòng)態(tài)存儲(chǔ)過(guò)程按日期保存數(shù)據(jù)示例
,在sql server存儲(chǔ)過(guò)程中進(jìn)行日期計(jì)算,按日期建表效率最高,下面就公司項(xiàng)目的部分動(dòng)態(tài)存儲(chǔ)過(guò)程粘貼出來(lái)2014-08-08SQL?Server啟用sa賬戶(hù)的簡(jiǎn)單圖文教程
這篇文章主要給大家介紹了關(guān)于SQL?Server啟用sa賬戶(hù)的簡(jiǎn)單圖文教程,因?yàn)榘惭b數(shù)據(jù)的時(shí)候沒(méi)有啟用sa賬戶(hù),這里記錄一下如何啟用,需要的朋友可以參考下2023-09-09一些文件未注冊(cè)導(dǎo)致mssql表文件無(wú)法找開(kāi)的解決方法
只需要按下面的步驟注冊(cè)一些文件,即可。2009-09-09sqlserver 存儲(chǔ)過(guò)程分頁(yè)(按多條件排序)
sqlserver 存儲(chǔ)過(guò)程分頁(yè),并支持條件排序,需要的朋友可以參考下。2010-06-06SQLite之Autoincrement關(guān)鍵字(自動(dòng)遞增)
SQLite 的 AUTOINCREMENT 是一個(gè)關(guān)鍵字,用于表中的字段值自動(dòng)遞增,關(guān)鍵字 AUTOINCREMENT 只能用于整型(INTEGER)字段。2015-10-10MS SQL Server2014鏈接到MS SQL Server 2000的解決方案及問(wèn)題處理
在大數(shù)據(jù)中,我們經(jīng)常需要用到分布式數(shù)據(jù),那么在SqlServer中,我們?nèi)绾蝸?lái)實(shí)現(xiàn)呢,答案就是創(chuàng)建鏈接服務(wù)器!同版本的SqlServer之間的操作網(wǎng)上有很多,今天我們來(lái)探討下不同版本SqlServer之間的鏈接問(wèn)題。2014-07-07