目錄
資料庫伺服器可以協同工作,以便在主伺服器發生故障時,第二個伺服器可以快速接管(高可用性),或者允許多台電腦服務相同的資料(負載平衡)。理想情況下,資料庫伺服器可以無縫協同工作。服務靜態網頁的 Web 伺服器可以通過簡單地將 Web 請求負載平衡到多台機器上來輕鬆組合。事實上,唯讀資料庫伺服器也可以相對容易地組合。不幸的是,大多數資料庫伺服器都有讀/寫混合的請求,而讀/寫伺服器更難組合。這是因為雖然唯讀資料只需要放在每台伺服器上一次,但對任何伺服器的寫入都必須傳播到所有伺服器,以便將來對這些伺服器的讀取請求返回一致的結果。
這種同步問題是伺服器協同工作的根本困難。由於沒有單一解決方案可以消除所有用例的同步問題的影響,因此存在多種解決方案。每個解決方案都以不同的方式解決此問題,並最大限度地減少其對特定工作負載的影響。
某些解決方案通過僅允許一個伺服器修改資料來處理同步。可以修改資料的伺服器稱為讀/寫、主伺服器或 主要伺服器。追蹤主要伺服器中變更的伺服器稱為備援伺服器或次要伺服器。在升級為主伺服器之前無法連接的備援伺服器稱為暖備援伺服器,而可以接受連接並服務唯讀查詢的伺服器稱為熱備援伺服器。
某些解決方案是同步的,這意味著在所有伺服器都提交交易之前,不認為修改資料的交易已提交。這保證了故障轉移不會遺失任何資料,並且無論查詢哪個伺服器,所有負載平衡的伺服器都將返回一致的結果。相反,非同步解決方案允許在提交時間及其傳播到其他伺服器之間存在一些延遲,從而可能在切換到備份伺服器時遺失某些交易,並且負載平衡的伺服器可能會返回稍微過時的結果。當同步速度太慢時,將使用非同步通信。
解決方案也可以按其粒度進行分類。某些解決方案只能處理整個資料庫伺服器,而其他解決方案允許在每個表或每個資料庫級別進行控制。
在任何選擇中都必須考慮效能。功能和效能之間通常需要權衡。例如,在慢速網路上的完全同步解決方案可能會將效能降低一半以上,而非同步解決方案可能對效能的影響最小。
本節的其餘部分概述了各種故障轉移、複製和負載平衡解決方案。
如果您在文件中看到任何不正確、與特定功能的使用體驗不符或需要進一步澄清的地方,請使用此表單報告文件問題。