前面其实介绍过《doris的数据备份》和《doris的数据备份》。但是这里的备份和还原都是早期的版本了,目前企业内部使用对象存储会更多一点,所以我们这里再编写一片doris使用minio来完成数据的备份和还原。
前置条件:
1、这里首先需要安装和部署一套doris环境和minio环境。
演示数据备份
这里假设我们已经有一个doris的环境了,并且在doris中也有相关的数据了,如下图:
现在doris里面有数据,那么我们把数据进线备份存储到minio中。首先进入minio的web界面
创建一套授权信息
接下来再创建一个桶
到此为止我们所有的前置工作都做完了。接下来使用navicat进入到doris中,创建minio仓库
CREATE REPOSITORY `minio_repo` WITH S3 ON LOCATION "s3://doris" PROPERTIES ( "s3.endpoint" = "http://192.168.1.22:9000", "s3.access_key" = "D1NKNbCN0aJ66g8toBCX", "s3.secret_key" = "oVE2GbY7jKgAfUp7zsOur0OhP1ykSJfIGp2QCjDK", "s3.region"="us-east-1", "use_path_style"="true" );
开始备份
1)备份test这个整库
备份整库需要使用的命令是:
backup snapshot ${库名}.${自定义label} to ${仓库名称} properties("type" = "full")
例如test库
backup snapshot test.snapshot_label1 to minio_repo properties("type" = "full")
如果要备份的库比较大的话,可以通过如下的命令查看备份进度:
show backup from test;
备份完了我们查看下minio上的bucket
数据已经进来了。
2)如果想要备份某个库下面的表的话,使用的语法是:
backup snapshot ${库名}.${自定义label} to ${仓库名称} on (${表名}) properties("type" = "full")
例如:
backup snapshot test.snapshot_label2 to minio_repo on (user) properties("type" = "full")
最后minio上就有2个备份了
备注:
1、可以重复下面的sql添加演示数据
#创建库 create database test; #使用库 use test; #创建表 CREATE TABLE `user` ( `id` int(10) COMMENT "唯一id", `name` varchar(20) COMMENT "", `idcard` varchar(18) COMMENT "身份证", `age` TINYINT(3) NULL COMMENT "年龄") ENGINE=OLAP DUPLICATE KEY(`id`, `name`,`idcard`,`age`)DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ("replication_num" = "1","in_memory" = "false","storage_format" = "V2") #添加数据 insert into user values(1,'张三','1234567890',15); insert into user values(2,'李四','0987654321',15);
2、在创建minio仓库的时候,这里的region随便写就可以了,主要保证endpoint和access_key和secret_key,还有location的信息要填写对即可。
3、注意,这里的minio的端口问题,可能会出现如下的错误:
5064 - errCode = 2, detailMessage = Failed to create repository: errors while get file status getFileStatus on s3://doris/__palo_repository_minio_repo/__repo_info: com.amazonaws.services.s3.model.AmazonS3Exception: Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: null; S3 Extended Request ID: null; Proxy: null), S3 Extended Request ID: null:400 Bad Request: Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: null; S3 Extended Reque
minio一共有两个端口,一个是9000,一个是9001,如果创建仓库的时候填写的是9001,那么把他修改为9000即可。
演示数据还原
上面咱们进行了数据备份,这里演示下使用上面的备份对数据进行还原。
1)首先直接使用命令查看当前仓库有哪些备份
show snapshot on ${仓库名}
例如:
show snapshot on minio_repo
查询查是询
执行之后可看到当前仓库有哪些数据备份
然后选择一个备份进行还原即可。
restore snapshot ${恢复到哪个库的库名}.${快照名称} from ${仓库名} properties( "backup_timestamp"= ${查询到的时间}, "replication_num"= ${副本数} )
例如:
restore snapshot test.snapshot_label2 from `minio_repo` properties( "backup_timestamp"="2025-03-07-16-46-38", "replication_num"="1" )
最后看看表是否数据回来了
以上就是doris使用minio备份和恢复数据的情况。
还没有评论,来说两句吧...