1. 程式人生 > 其它 >高可用的恢復點目標(RPO)和恢復時間目標(RTO)

高可用的恢復點目標(RPO)和恢復時間目標(RTO)

設計一個高可用的資料庫系統,首先需要明確的就是RPO和RTO

關於RPO

RPO是業務連續性中的一個常用術語,稱為恢復點目標。

在資料庫系統中,它描述的是資料庫在一次故障停機恢復後可能丟失的資料量。

在資料庫系統架構設計中,這是需要優先考慮的,假定資料庫每天會做1次全量資料備份,那麼在最壞情況下,使用者可能會丟失24小時資料。對於某些應用來講,這是可以接受的。當然,較多應用是不能接受資料丟失的風險的,比如金融業務,資料丟失帶來的損失可能會相當的大,所以,RPO為0是才我們的目標。

使用者對於RPO的要求決定了資料庫架構的技術選型,包括叢集節點數量、資料同步方案以及備份技術等等。

關於RTO

與RPO一樣,RTO是指一個通用的業務連續性術語,稱為恢復

時間目標。

如果系統一直能不間斷提供服務,我們可以說系統的可用性是100%;

如果系統在時間單位內有1%的時間不能提供服務,我們可以說系統的可用性是99%。

如何量化RTO

業內通常使用MTTF和MTTR來量化一個模組的可用性。

  • 平均無故障時間(MTTF)

MTTF(mean time to failure),指模組處在正常服務狀態的平均時間。

  • 平均修復時間(MTTR)

MTTR(mean time to repair),指模組處在服務中斷狀態的平均時間。

系統可用性的定義是MTTF/(MTTF + MTTR),一個大於等於0,小於等於1的數值。且該數值越大,系統可用性越高。業界最常用的方法是用9的個數來描述系統可用性,比如3個9的可用性,指系統在99.9%的時間裡可用,而5個9的可用性意味著系統在99.999%的時間裡都是可用的。下表展示了基於9的個數描述系統可用性而計算得出的,不同可用性的情況下,服務的不可用時間。

叢集設計之初如何量化RTO,

平均修復時間通常包括以下場景:

  • 小型升級--Minor Upgrade

  • 重大升級--Major Upgrade

  • 重新啟動--Reboot

  • 切換--Switchover

  • 故障轉移--Failover

  • 作業系統升級--OS Upgrade

構造如下表格進行統計即可

但行好事,莫問前程