HBase 增量備份和還原工具

2021-05-28 17:01:44 字數 1407 閱讀 5546

**:

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...