概述
使用hdfs快照 + shell导出的hive DDL
两个脚本同变量值保持一样
支持从a库($db_name)备份 然后还原到b库($db_new_name) 实现hive整库备份或者迁移
注意 仅限hive内部表.
备份还原 不改变表结构 分区表的分区信息都在.
可以简化: 实际上直接hadoop fs cp olddb newdb 然后在导出的hive ddl文本 顶上添加一行use 新库,执行ddl(db_yy_new_1.ddl)在新库建表后msck(db_yy_new_1.repair)即可.
如果分区表存在多层分区情况 请添加: set hive.msck.path.validation=ignore;
执行流程
bash bak.sh
bash restore.sh
备份数据库的脚本 bak.sh
# 1 备份数据库
# 你需要备份的hive的hdfs路径
hive_db_path=/user/hive/warehouse/db_yy.db
# 你需要备份的hive数据库名
db_name=db_yy
# 还原后的数据库名 可以和$db_name同名
db_new_name=db_yy_new
# step 备份数据库数据 快照名: ${db_name}.db
hadoop dfsadmin -allowSnapshot ${hive_db_path}
# hadoop fs -deleteSnapshot ${hive_db_path} ${db_na
精彩链接
发表评论