**:
hbase自帶的export/import機制可以實現backup restore功能。而且可以實現增量備份。 下面設增量備份的python指令碼 在這個指令碼中,每天做增量備份,每個月15日做全備份.
import time
import datetime
from datetime import date
import sys
import os
tablename=sys.argv[1]
backupdst=sys.argv[2]
today=date.today()
if today.day == 15: //every month, we do a full backup
backupsubfolder=backupdst+today.isoformat()+"-full"
cmd="hbase org.apache.hadoop.hbase.mapreduce.export %s %s"%(tablename,backupsubfolder)
else:
yesterday=datetime.date.today()- datetime.timedelta(days=1)
todaytimestamp=time.mktime(today.timetuple())
yestimestamp=time.mktime(yesterday.timetuple())
backupsubfolder=backupdst+today.isoformat()
cmd="hbase org.apache.hadoop.hbase.mapreduce.export %s %s %s"%(tablename,backupsubfolder,str(int(todaytimestamp)*1000)
print cmd
os.system(cmd)
而restore機制就更加簡單
hbase org.apache.hadoop.hbase.mapreduce.import tablename restorefolder
要注意的是,做restore時候,原始的表必須是建立好的。所以如果表本身被損壞,需要重新建立乙個新的空表,再做restore。
還有,必須在hadoop-env.sh中配置好hbase和zookeeper的路徑,加上這樣的語句
export hadoop_classpath="/usr/lib/hadoop-hbase/hba***xx.jar:/usr/lib/hadoop-hbase/lib/zookeeper***.jar:/etc/hadoop-hbase/conf"
把這個加到crontab裡面,就可以實現每天定時備份了。
mysql 增量備份還原
小量的資料庫可以每天進行完整備份,因為這也用不了多少時間,但當資料庫很大時,就不太可能每天進行一次完整備份了,這時候就可以使用增量備份。增量備份的原理就是使用了mysql的binlog日誌。本次操作的mysql版本為5.5.40 for linux x86 64 增量備份要確保開啟了二進位制日誌,參...
Mysql大資料備份和增量備份及還原
目前主流的有兩個工具可以實現物理熱備 ibbackup和xtrabackup ibbackup是需要授權 昂貴,而xtrabackup功能比ibbackup強大而且是開源的xtrabackup提供了兩種命令列工具 xtrabackup 專用於備份innodb和xtradb引擎的資料 innoback...
Mysql大資料備份和增量備份及還原
目前主流的有兩個工具可以實現物理熱備 ibbackup和xtrabackup ibbackup是需要授權 昂貴,而xtrabackup功能比ibbackup強大而且是開源的xtrabackup提供了兩種命令列工具 xtrabackup 專用於備份innodb和xtradb引擎的資料 innoback...