概述

使用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

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: