資料庫高可靠,輕鬆解決事務丟失問題

天翼雲開發者社群發表於2022-09-14

資料庫的發展始終與使用者需求變遷緊密相關。近年來,資料上雲的趨勢愈演愈烈,越來越多的企業選擇把資料庫遷移上雲,這對雲上資料庫的產品效能,尤其在可靠性和安全性方面,提出了更高的要求。


而現實情況是,企業在雲上使用自建資料庫的過程中,由於原生開源 MySQL的事務能力並不完善,事務可能面臨丟失的風險,難以保證事務執行前後資料的可靠性和一致性。事務丟失給企業造成的損失,也加大了部分企業對資料上雲的擔憂。

 


什麼是 “事務”?事務是指資料庫中對資料進行一個或者多個複雜操作的基本單元,它承載著業務持續發展的使命,不容有失。


以購物場景為例,一個完整的購物過程通常包括買家付錢、賣家交付商品並在庫存中減掉本次出售商品的數量、賣家收款三個操作。這三個操作是獨立的,但是這三個操作需要都完成後,整個購物操作才算完成。這樣的三個操作,就可以看作是一個事務,即一個事務中包含很多操作,要麼都完成,要麼都不完成。資料庫中事務的丟失,可能會導致很多複雜資料的丟失。


天翼雲關係型資料庫 MySQL具有高可靠特性,基於主備架構,能夠在最大程度兼顧主庫效率的同時保證主庫崩潰時服務不中斷,做到事務零丟失,進而保證企業業務穩定連續,將故障影響降至最小,為企業排憂解難。

 

精準判斷主庫崩潰時的複製狀態
天翼雲關係型資料庫 MySQL半同步複製,是基於狀態通道和時間戳的高可靠特性來實現的,其總體工作流程為:
資料庫管控平臺高可用模組( HA)儲存主庫末位的複製狀態和時間戳,備例項儲存主庫末位的複製狀態和時間戳,然後透過比較二者的狀態與時間戳值來精準判斷主庫崩潰時的複製狀態。
從原理上來看是相對簡單的,但在落地時並不容易,天翼雲團隊透過大量實踐驗證做到了精準判斷。

 

 

根據主庫崩潰狀態自行恢復服務
此前,天翼雲關係型資料庫 MySQL半同步複製狀態下絕大多數情況是同步複製狀態,極少數情況下(如執行大事務時)會轉換到非同步複製狀態,然後自動轉換回同步複製狀態。


現在,天翼雲關係型資料庫 MySQL半同步複製憑藉高可靠特效能夠精準判斷主庫崩潰時的複製狀態,並依此按照以下四種情況準確恢復服務:

1在同步複製狀態下主庫發生崩潰。此時先嚐試拉起主庫,拉起主庫成功,保證事務不丟失,在這個過程中可實現秒級恢復服務。

 

2在同步複製狀態下主庫發生崩潰,且拉起主庫失敗。此時主備資料一致,會將服務平滑切換到備庫,保證事務不丟失,並且秒級恢復服務。

 

3在非同步複製狀態下主庫發生崩潰,不能切換到備庫,拉起主庫成功,保證事務不丟失,在這個過程中可以實現秒級恢復服務。

 

4在非同步複製狀態下主庫崩潰後,不能切換到備庫,且不能拉起主庫,會在原來的資料上恢復主庫,保證事務不丟失,在這個過程中可以實現分鐘級恢復服務。


天翼雲關係型資料庫 MySQL半同步複製高可靠特性,能最大程度保證主庫效率,是因為主庫的事務提交完全依賴於備庫的訊號,而備庫把事務寫入中繼日誌後也會立即返回一個ACK(即確認字元),沒有強同步複製備庫回放事務帶來的主從時延。

 

場景應用
機房故障斷電
使用者使用天翼雲關係型資料庫 MySQL,主備機跨AZ(可用區)部署,如果主庫所在的AZ(可用區)機房故障斷電不可用,主庫因此發生故障,使用者服務發生中斷,此時天翼雲關係型資料庫MySQL憑藉高可靠特性可以使服務在秒級完成主備切換,並且做到服務與中斷前的資料檢視完全一致,不會有任何事務丟失。


大事務執行期間資料庫當機
使用者使用天翼雲關係型資料庫 MySQL半同步複製模式時,當主庫正在執行大事務,並且複製狀態從同步複製轉換到非同步複製時,主庫突然當機,服務因此被迫中斷,天翼雲關係型資料庫MySQL主庫會在數秒內被拉起並對外提供服務,並且與中斷前的資料檢視完全一致,不會有任何事務丟失。

 

天翼雲關係型資料庫 MySQL的高可靠特性在保障事務不丟失的前提下,能夠同時做到秒級恢復(極端情況下,分鐘級恢復),從而確保主備例項的資料一致性,極大提高了資料可靠性。這是天翼云為企業資料保駕護航,踐行“致力於打造企業級資料底座”的有力體現。

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2914631/,如需轉載,請註明出處,否則將追究法律責任。

相關文章