在前面我们介绍了《doris如何安装apache_hdfs_broker》。之前我们提到过,hdfs_broker可以很方便的用于导入导出文件数据及备份还原,这篇文章我们介绍下如何依靠broker对doris进行库表数据备份。
一、首先保证我们有一个hadoop的系统
1、部署一个可以访问的hadoop系统。
2、在部署hadoop的话,如果使用的是2.x版本,那么需要在core-site.xml里面配置如下信息
<property> <name>fs.defaultFS</name> <value>hdfs://node1:8020</value> </property>
3、保证hadoop能正常上传下载文件。
4、保证hadoop的50070端口能访问到。
二、在doris中创建示例库表数据
create database test1; use test1; CREATE TABLE IF NOT EXISTS test1.student ( `stu_id` int COMMENT "学生id", `stu_name` VARCHAR(20) COMMENT "姓名", `class` VARCHAR(20) COMMENT "班级", `stu_score` INT default '0' COMMENT "错误详细信息", `subject` VARCHAR(20) COMMENT "科目", `timestamp` DATETIME NOT NULL COMMENT "记录时间" ) DUPLICATE KEY(`stu_id`, `stu_name`,`class`,`stu_score`,`subject`,`timestamp`) DISTRIBUTED BY HASH(stu_id) PROPERTIES ("replication_num"="1"); insert into student(`stu_id`,`stu_name`,`class`,`stu_score`,`subject`,`timestamp`) values(1,'张三','2.1班',95,'语文','2022-09-23 10:45:00'); insert into student(`stu_id`,`stu_name`,`class`,`stu_score`,`subject`,`timestamp`) values(2,'李四','2.2班',93,'语文','2022-09-23 10:45:00'); insert into student(`stu_id`,`stu_name`,`class`,`stu_score`,`subject`,`timestamp`) values(1,'张三','2.1班',100,'数学','2022-09-23 10:45:00');
上面我们创建了一个test1的库,同时也创建了一张student的表,并且向student表插入了3条数据。
3、开始进行备份
3.1、创建一个远端的备份仓库
这里我们备份是需要把数据备份到hdfs上的,因此我们需要在doris的命令行里面创建一个hdfs的远程连接,同时指定备份仓库路径,这个路径也是hdfs的路径。
CREATE REPOSITORY `doris_backup` -- 仓库名 WITH BROKER `apache_hdfs_broker` -- broker名 ON LOCATION "hdfs://10.206.0.12:8020/doris-backup" -- 指定仓库路径 PROPERTIES ( "username" = "", "password" = "" );
等待执行
执行成功之后,我们去hdfs的路径下进行访问下。
可以看到在hdfs上自动创建了doris-backup的目录。
3.2、备份student表
这里我们还是在doris的命令行里面执行下下面的语句
BACKUP SNAPSHOT test1.student_snapshot -- 库名和备份任务名 TO `doris_backup` -- 远端仓库名 ON ( `student` -- 表名,可以指定分区(数据量太大建议通过分区进行备份) );
然后等待执行
成功之后,就代表库表数据备份成功了。
四、验证备份
4.1、在hdfs上进行验证
此时我们去hdfs的doris-backup目录里面看看。
可以看到关于student的快照被保存进来了。
4.2、通过doris的命令进行验证
我们执行下下面的命令
show snapshot on doris_backup
可以看到我们所有的备份信息
在此我们的doris备份就完成了。
备注:
1、doris如果表数据较多,则备份时间较长,可以通过
SHOW BACKUP
来查看备份的情况
2、如果我们部分备份时间太长,不想备份了怎么办呢?执行下面的命令即可
CANCEL BACKUP FROM Database_name
还没有评论,来说两句吧...