北京優(yōu)炫軟件股份有限公司
今天是世界備份日,最初是由網絡社區(qū)Reddit的用戶發(fā)起的,口號是:Don’t Be An April Fool. Backup Your Data ! 以此來號召人們做好數據備份,重視數據保護。
數據備份是數據安全的基礎,完整的備份和有效的恢復手段是應對突發(fā)狀況的重要保障,保證數據在被人為失誤、操作不當、蓄意等情況下刪除或損壞后,能及時、有效地進行恢復并不會很大程度上影響到業(yè)務運行。
在世界備份日的今天,我們分享下優(yōu)炫數據庫備份與恢復。
數據庫備份有多種
按照備份后的文件類型可以分為物理備份(文件系統(tǒng)級別的備份)和邏輯備份(備份文件是SQL文件或特定格式的導出文件);
按照備份時是否停止數據庫服務分為冷備份(備份時停止數據庫服務)和熱備份(備份時數據庫服務開啟并可訪問);
按照備份數據庫是否完整可分為全量備份(備份是完整的數據庫)和增量備份(備份是全量備份后數據庫改變的內容)。
文件系統(tǒng)級別備份需停止數據庫服務,復制數據文件的完整目錄到它處,恢復數據庫時,將它處的數據目錄復制回原來的位置即可,實際工作中應用較少。
直接復制UXDB用于存儲數據庫中數據的文件:
• 本地集群
tar -jcv -f backup.tar.bz2 clusterdir(本地集群所在路徑)
恢復:
tarjxvfbackup.tar.bz2C/home/uxdb/uxdbinstall/dbsql/bin
• 分布式集群
mkdir /mnt/volume
mount.uxfs dirhost:port/volume(分布式集群所在volume名稱) /mnt/volume
tar-jcv-fbackup01.tar.bz2 /mnt/volume/uxdbuxfs(分布式集群掛載路徑)
恢復:
tar-jxv-fbackup01.tar.bz2-C /mnt/volume/
這種方法有兩個限制:
1. 為了得到一個可用的備份,數據庫服務器必須被關閉。禁止所有連接等不的措施是無用的(不僅因為tar和類似的工具在備份時并不對文件系統(tǒng)的狀態(tài)做原子快照,而且服務器內部存在緩沖數據)。同樣,恢復數據之前也需要關閉服務器。
2. 文件級別冷備份的策略不適用于希望通過表和數據庫相應的文件或目錄來備份或恢復特定的表和數據庫。因為包含在這些文件中的信息只有配合提交日志文件(ux_xact/*)才有用,提交日志文件包含了所有事務的提交狀態(tài)。表文件只有和這些信息一起才有用。當然也不可能只恢復一個表及相關的ux_xact數據,因為這會導致數據庫集群中所有其他表變得無用。因此文件級別冷備份只適合于完整地備份或恢復整個數據庫集群。
SQL轉儲為邏輯熱備,備份工作通常由數據庫超級用戶在任何可以訪問該數據庫的遠端主機上完成。備份時,無需停止數據庫服務。備份會產生一個腳本文件,包含備份開始時已創(chuàng)建的各種數據庫對象的SQL語句和各表中的數據。ux_dump只備份數據庫中的某數據庫的數據,不會導出角色和表空間等相關信息。ux_dumpall對集簇中的每個數據庫執(zhí)行ux_dump來完成該工作,還轉儲所有數據庫公用全局對象,包括數據庫用戶和組、表空間以及適合所有數據庫的訪問權限等屬性。此外,在離線集群中可使用ux_checksums啟停頁校驗。
恢復工作通過執(zhí)行備份文件中的SQL命令對數據庫進行恢復。ux_dump生成的文本文件可以由uxsql程序讀取。為保證您的備份保持更新,您可以通過往cron table中加入ux_dump或者是ux_dumpall命令定期執(zhí)行備份工作。
恢復完成后,建議在每個數據庫上運行vacuumdb分析數據庫,保證優(yōu)化器的統(tǒng)計數據。備份的文件較大時,您可以通過操作系統(tǒng)對備份文件進行壓縮、分割或合并。
連續(xù)歸檔策略是把文件系統(tǒng)級別的全量備份和WAL級別的增量備份結合起來,當需要恢復時,先恢復文件系統(tǒng)級別的備份,然后重放備份的WAL文件。系統(tǒng)支持全量、增量、熱備、冷備等多種形式,支持數據并行備份與并行恢復,恢復系統(tǒng)到之前的某個狀態(tài)。
連續(xù)歸檔的優(yōu)點是不需要一致的文件系統(tǒng)備份作為開始點,備份中的任何內部不一致性將通過日志重放來修正。連續(xù)歸檔可在任何點停止重放,使數據庫恢復到當時狀態(tài)。可連續(xù)地將一系列WAL文件輸送給另一臺已載入相同基礎備份文件的機器,從而得到一個實時的熱備份系統(tǒng)。
*區(qū)別于為應對意外事件造成的數據丟失問題的備份,容災是為了在遭遇災害時能保證信息數據庫系統(tǒng)仍能正常運行,幫助企業(yè)實現(xiàn)業(yè)務連續(xù)性目標。
UXDB支持基于應用程序、數據庫、存儲設備的遠程復制和操作系統(tǒng)級鏡像的遠程鏡像等多種方法。支持同城雙中心災備、二地三中心或三地六中心的異地災備方案。
UXDB支持豐富的數據恢復操作,操作分為多個層面
個層面是數據庫,用戶可以根據需要進行恢復所有數據庫,恢復單個數據庫。
第二個層面是表,用戶可以進行對單個表的數據恢復。
第三個層面是操作層面,用戶可以連續(xù)歸檔的熱備份方式來達到恢復數據庫到某個時間點,即Point-in-time Recovery(PITR)來恢復誤操作。支持塊修復功能。支持閃回功能開關功能、支持時間點或時間段的閃回查詢功能,支持恢復回收站里的表功能、支持清空回收站里的表功能。
數據備份和恢復,是所有DBA和系統(tǒng)運維人的必修課。為了避免因為數據丟失或者誤差而產生無法挽回的損失,要制定完善的數據安全管理方案,在數據庫正常運行時進行備份,發(fā)生故障以后當機立斷建重建數據庫進行恢復, 是對數據庫行之有效的保護措施,從而真正的提高數據的安全性與可靠性。