StarRocks中备份恢复操作详解
备份与恢复的文档说明地址:https://docs.starrocks.com/zhcn/main/administration/Backup_and_restore
总体流程:先创建云端仓库用于备份与恢复(新老集群都要创建云端仓库,
REPOSITORY名字要相同,BROKER Name要查看集群的broker名称);
在老集群准备好需要进行迁移备份的表,Backup到云端仓库;
再从云端仓库Restore到新集群。
新集群当中不用事先创建好需要备份恢复的表,因为在进行Restore操作会自动创建。
- 创建REPOSITORY远端仓库
通过CREATE REPOSITORY 创建远端仓库,具体使用方式见 help 信息。
help CREATE REPOSITORY;
根据情况可以创建不同类型的云端数据仓库,用于备份或恢复,更多信息参考help broker load的 description 一列的中信息。
因为我们会选择不同的第三方云端来进行创建所需的备份仓库,所以需要第三方库的连接认证,这里需要我们修改PROPERTIES里的配置参数来进行连接,参见其中 broker_properties 的部分。
以下举例是cos的方式和oss的方式来创建的云端仓库:
(BROKER名称可以通过show broker 来进行查看集群的Broker名称)
- cos形式建库语句:
CREATE REPOSITORY `RepositoryName `
WITH BROKER `brokerName`
ON LOCATION "cosn://*****************"
PROPERTIES
(
"fs.cosn.userinfo.secretId" = "*************************",
"fs.cosn.userinfo.secretKey" = "******************************",
"fs.cosn.bucket.endpoint_suffix" = "cos.ap-beijing.myqcloud.com"
);
- oss形式建库语句:
CREATE REPOSITORY `RepositoryName `
WITH BROKER `brokerName`
ON LOCATION "oss://**************"
PROPERTIES
(
"fs.oss.accessKeyId" = "xxxxxxxxxxxxxxxxxxxxxxxxxx",
"fs.oss.accessKeySecret" = "yyyyyyyyyyyyyyyyyyyy",
"fs.oss.endpoint" = "oss-cn-shenzhen-internal.aliyuncs.com"
);
如上SQL语,填写完ID和key信息后,endpoint信息按照云端地址填写,不同的建库语句需要修改PROPERTIES中的连接信息即可。
- 备份数据到云端仓库
-
help BACKUP;来查看怎么进行备份操作
-
全量导入选择第一种方式进行快照到云端, 举例格式为:
BACKUP SNAPSHOT 数据库名.`自定义快照名`
TO `云端仓库名`
ON (`需备份表名`)
PROPERTIES ("type" = "full");
-
然后,可以通过help SHOW BACKUP; 查看正在备份的任务 (只能同时进行一个)
-
检查完成后,可以通过SHOW SNAPSHOT ON 云端仓库名;查看云端仓库中已有的备份 。
- 恢复云端数据到集群
确认完快照信息后到新集群进行恢复操作。
- HELP SHOW RESTORE; 查看RESTORE的语句
RESTORE SNAPSHOT 数据库名.`自定义快照名`
FROM `云端仓库名`
ON ( `需恢复表名`)
PROPERTIES
(
"backup_timestamp"="yyyy-mm-dd-hh-mm-ss",
"replication_num" = "3"
);
- 查看backup_timestamp语句为:
SHOW SNAPSHOT ON 云端仓库名;
replication_num 按照该表设置的几副本来填写,执行即可。
- 查看最近恢复的job
- SHOW RESTORE FROM 数据库名; 到此备份恢复完成。
- 可简单执行count语句进行新老集群表数据条数对比,或者运用sum函数相加下后面的值看是否相等,来进行校验恢复是否成功。