讀寫分離是中型規模應用的數據庫系統常見設計方案,通過將數據從主服務器同步到其他SQL Server 服務器,提供非實時的查詢功能,擴展性能并提高并發性。
數據庫的讀寫分離的優點如下:
1.通過將“讀”和“寫”分離到不同的數據庫服務器上,降低對主服務器的CPU、內存、存儲、網絡資源的爭用;
2.主數據庫的增刪改進行時,不影響查詢服務器的查詢,降低阻塞的發生,提高了并發性;
3.在應用程序提交了報表請求、不合理的查詢請求時,不會導致長時間的鎖表;
4.建立數據副本甚至實現異地容災,在發生災難時,可以減少數據的損失;
作業系統的基本要求配置
序號 | 名稱 | 要求 | 備注 |
1 | WINDOWS | Windows Server 2016 中文版 | |
2 | SQL版本 | SQL Server Enterprise 2017 中文版 | |
3 | Microsoft SQL Server Management Studio | 適用于SQL Server Enterprise 2017 中文版 | |
硬件基本配置要求
序號 | 名稱 | 要求 | 備注 |
1 | 服務器 | 配置相同,2臺或以上 | |
2 | 硬盤 | 固態硬盤 | |
3 | 陣列 | RAID5 |
備注: 硬件具體規格要求按使用場景來調整.
應用場景案例說明;
l 100+以上門店7x24小時使用ONLINE,SUNLIKE及第三方軟件系統,共4臺WEB應用服務器. 數據庫約2TB, SQL自動計劃(每天0時)自動備份到
l 由于客戶端300個用戶不斷對WEB應用服務器訪問量,造成其他應用的延遲或者超時,經常出現“宕機”.系統無法訪問等現象.
l 單表數據量過大導致數據庫執行sql慢,請求過多形成鎖表,卡頓
l 形成數據丟失問題,同時ERP系統管理員對業務系統,數據遷移等環節增加維護成本.
業務示意圖;
場景案例需求:
1. 業務系統停機時間在30分鐘內.
2. 數據不能丟失.
解決方案 :
如上述問題. 利用SQL Server的AlwaysOn 將WEB應用服務數據庫自動同步到備份數據庫服務器.
業務系統通過后臺將報表查詢設置到備份服務器. 即可將數據‘寫入’與‘讀取’權限分開,當數據庫“讀”大于“寫”,或查詢多的情況,就可以考慮主數據負責寫操作,從副數據庫負責讀操作,從而把數據達到讀寫分離效果,可以減少數據庫運維的難度,降低出現故障率.
由于主數據庫(‘寫’權限),副數據庫(‘讀取’權限)雖處于不同服務器,數據卻均實時同步,任何一方以由WEB應用服務器調用. 可避免數據延遲,丟失. 提升數據庫的并發負載能力. 實現備份的同時也實現了數據庫性能的優化,同時提升了服務器安全,減輕維護成本.