談談SQL Server高可用的常見問題

2021-09-05 08:12:04 字數 2664 閱讀 1735

談談

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

還沒有這麼多的功能和元件。

【免費試讀】可擴充套件sql server架構設計與實戰系列(1)

【免費試讀】可擴充套件sql server架構設計與實戰系列(2)-為什麼要擴充套件資料庫

SQL server的高可用

sql server 2012實現資料庫中的表同步到區域網中的另外乙個伺服器上的資料庫的方法 1 發布 訂閱功能 2 alwayon功能 最穩定 最優的方案 3 修改程式,寫兩份資料,或者用觸發器 alwayon可用性組是sqlserver中提供的全新功能,確保了應用程式資料的可用性,實現零資料丟失...

sql server 高可用日誌傳送

原文 sql server 高可用日誌傳送 sql server使用日誌傳送,可以自動將主伺服器的事務日誌備份傳送到乙個或多個輔助資料庫上。可選的監視伺服器,記錄備份和還原操作的歷史記錄及狀態。優點 提供災難恢復解決方案 支援對輔助資料庫的受限的唯讀訪問許可權 允許使用者定義日誌傳送的延遲時間 如果...

SQL SERVER 中常見的高可用方案

資料庫環境 sql server 2005 1 replication,我們常用的是transactional replication。可以支援單向和雙向的資料同步。工作在table level。由於基於transaction,內部使用了類似snapshot鏈出改變頁的方法 他的同步單位較小,在實踐...