MySQL邏輯數(shù)據(jù)恢復體系的設計
對于數(shù)據(jù)恢復來說,現(xiàn)在其實缺少一些有效的使用場景來更好的體現(xiàn)業(yè)務價值,于是我們就重新考慮了下現(xiàn)有的備份支持能力。
備份體系的支持能力
|
粒度 |
備份類型 |
備份模式 |
|
實例 |
全量備份 |
物理備份 |
|
實例 |
增量備份 |
物理備份 |
|
實例 |
日志備份 |
獨立服務 |
|
數(shù)據(jù)庫 |
對象備份 |
物理備份 |
其實對象層面的數(shù)據(jù)恢復能力是很重要的,而且對于業(yè)務側(cè)有很多種使用方式。整體的數(shù)據(jù)恢復流程如下:
如何規(guī)劃和設計邏輯備份恢復體系,經(jīng)過部分討論,我做了如下的初版設計。
1.數(shù)據(jù)備份
其中邏輯備份恢復主要面向兩個維度:
實例級別:實現(xiàn)表結(jié)構(gòu),表結(jié)構(gòu)+數(shù)據(jù) 備份
庫/表級別:實現(xiàn)表結(jié)構(gòu),表結(jié)構(gòu)+數(shù)據(jù) 備份
目前的邏輯備份恢復的支持范圍:
1)數(shù)據(jù)庫主從拓撲關(guān)系的實例,邏輯備份操作根據(jù)拓撲關(guān)系需要在相應的從庫端執(zhí)行
2)單實例節(jié)點,邏輯備份操作在單實例節(jié)點執(zhí)行,需要評估備份容量和負載等信息
目前不支持基于中間件MyCAT的節(jié)點
對于輸入為域名或者Master IP的信息,需要通過拓撲關(guān)系轉(zhuǎn)化為相應的從庫或者單實例的IP信息
對于庫表文件的備份,可以設定如下的規(guī)則:
1)單表數(shù)據(jù)量小于5000萬或者表容量在10G以內(nèi)的表,可以支持邏輯備份,此外需要相應的提示,盡可能避免此類操作
2)選擇備份的數(shù)據(jù)庫容量在30G以內(nèi),此外需要相應的提示避免此類操作
需要后端提供相應的庫,表 存儲容量/數(shù)據(jù)量相關(guān)的元數(shù)據(jù)信息(估算容量即可,不需要精確值),目前可以通過生命周期管理中的數(shù)據(jù)庫基線和數(shù)據(jù)表基線元數(shù)據(jù)支持
對于備份時長的評估,目前可以提供如下的遞增區(qū)間:
1)備份容量在500M以內(nèi),顯示預計完成時間在5分鐘以內(nèi)
2)備份容量在2G以內(nèi),顯示完成時間在10分鐘以內(nèi)
3)備份容量在10G以內(nèi),顯示完成時間在20分鐘以內(nèi)
4)備份容量在30G以內(nèi),顯示完成時間在30分鐘以內(nèi)
在備份完成后,可以提供相應的即時通訊提示告知業(yè)務側(cè)備份操作已完成
備份生成的文件需要在指定的備份機存儲,按照如下的目錄規(guī)則進行存放
備份機BASE目錄:/data/logical_backup/
備份機中實例的備份目錄:
- [Slave_IP]_[port]/[YYYYmmdd]/
相應的備份文件命名規(guī)則:
- [Slave_IP]_[port]_[db_name]_[YYYYmmdd]_[hhmiss]_[username].sql
數(shù)據(jù)備份后需要生成相應的配置文件,數(shù)據(jù)格式為JSON,在數(shù)據(jù)恢復時可以進行相應數(shù)據(jù)格式的解析和顯示。
備份文件的保留周期目前暫定為7天,需要在備份時有相應的提示。
2.數(shù)據(jù)恢復
數(shù)據(jù)恢復是業(yè)務自助發(fā)起,而且相關(guān)的數(shù)據(jù)恢復資源具有使用時限,目前暫定為2天,2天后相應的數(shù)據(jù)和權(quán)限會進行相應的回收,會有相應的資源回收提示,同時需要在使用中進行相關(guān)提示。
數(shù)據(jù)恢復粒度基于備份數(shù)據(jù)文件中指定的對象(數(shù)據(jù)庫,表)粒度,如業(yè)務同學A備份了表db1.table1,db1.table2,則不能僅恢復db1.table1,恢復工作會直接恢復db1.table1,db1.table2
數(shù)據(jù)恢復文件的選擇需要考慮相關(guān)的權(quán)限,如業(yè)務同學A備份了表db1.table1,db1.table2,業(yè)務同學B備份了表db2.table3,db2.table4,則在選擇備份文件中,應該彼此不可見。
如果對于同一個數(shù)據(jù)庫需要進行多次數(shù)據(jù)恢復,則可以根據(jù)服務器的資源配比進行動態(tài)的調(diào)配,比如一個數(shù)據(jù)恢復服務器中有4個實例,端口分別是4306-4309,業(yè)務同學在使用中可以相應的恢復4次,在實際使用中需要根據(jù)使用的頻率和情況進行資源的擴展,后續(xù)應該為一個數(shù)據(jù)恢復服務器組
在數(shù)據(jù)恢復中,需要恢復到哪一個實例,由后端提供相應的調(diào)度邏輯進分配
對于數(shù)據(jù)恢復后的使用,可以提供一體化服務,由業(yè)務側(cè)使用客戶端工具如workbench進行連接和使用,權(quán)限開通的部分,需要根據(jù)用戶的域名信息得到辦公機的IP地址,進行相關(guān)數(shù)據(jù)庫權(quán)限的開通,開通后有對應的即時通訊提示。
數(shù)據(jù)庫層的權(quán)限開通,如果數(shù)據(jù)庫用戶已經(jīng)存在,則進行相應的權(quán)限補充,如果數(shù)據(jù)庫用戶不存在,則需要在指定的實例中創(chuàng)建用戶,并分配相應的權(quán)限
整個備份數(shù)據(jù)的使用,需要考慮到便利性和安全性,可以和安全部進行對接,進行部分工作的評估和考量。
備份和恢復的相關(guān)操作和歷史記錄,需要統(tǒng)一存儲和管理
對于數(shù)據(jù)恢復的相關(guān)日志,為了便于后續(xù)管理和跟蹤,需要在恢復記錄中記錄備份文件的路徑
本文轉(zhuǎn)載自微信公眾號「楊建榮的學習筆記」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系楊建榮的學習筆記公眾號。
































