本文開始咱們會介紹HBase關於Backup/Restore的方案,雖然HBase2.0的release 版本里面並不會帶有該功能,可是咱們ApsaraDB for HBase會對應的提供該功能。咱們常常會聽到「某某某DBA誤操做把整張表刪了」,「某某磁盤故障,形成數據庫的某個庫的數據所有損壞了」。這種因爲外在和內在的緣由形成的數據不可靠,最終會給用戶帶來毀滅性的災難。因此基本上全部的數據庫都會對應的提供Backup/Restore的方案,以防用戶誤操物理上刪除了一整個表或者別的問題形成的悲劇; 通常經過定時的作備份不管是全量數據作備份仍是對增量數據作備份,此外一旦遇到上面提到「悲劇」,經過一鍵命令就能夠恢復數據;sql
本文開始咱們大概的文章架構是:常見的數據庫backup/restore方案;雲HBase的Backup/Restore方案;咱們接下來的工做計劃;數據庫
1.常見的數據庫backup/resotore方案架構
單機的數據庫有Mysql,pg等,通常的話,Mysql的備份的話,能夠有備份數據文件的方式到本地磁盤,也有直接進行邏輯備份,操做的sql語句;其餘的單機數據庫使用的技術也是差很少;spa
分佈數據庫的話cassandra的話,也是對數據作快照,而後copy 文件到一個備份的地方,增量備份的話使用備份wal log的方式,可是存在問題是:恢復的話,須要恢復到對等的拓撲結構的集羣,再次增量備份wal的話會存在多倍的網卡開銷;rest
如今來大概介紹HBase的備份和恢復的機制,和單機數據庫對比的話意義不大。全量數據備份的話,HBase會對本地文件作一個snapshot,而後經過mr的方式將數據文件copy到一個特定的指定地方,增量備份的話,經過將wal log轉換爲Hfile,而後copy到遠端一個特定備份的地方。這種增量備份是主要備份wal log,且是指定時間的作備份,一天或者一週。集羣
對於恢復模塊的話,能夠是全量的數據恢復以及增量的數據恢復,基本的邏輯都是將文件copy到HDFS上,而後作一次bulkload便可將數據恢復回來。file
2.雲HBase的Backup/Restore方案sql語句
這裏分別從4個方面進行介紹,主要是:常見使用方法,全量數據備份和恢復,增量數據備份和恢復,咱們即將提供的一些特定功能。作方法
ApsaraDB for HBase提供的數據備份 能夠支持備份到不一樣地區的HDFS,也支持備份到OSS上面。大概的邏輯能夠參考下面的圖:技術