StarRocks 支持以数据库、表、或分区为粒度全量备份数据。
当表的数据量很大时,建议您按分区分别执行,以降低失败的概率。如果您需要对数据进行定期备份,建议您在建表时制定动态分区策略,从而可以在后期运维过程中,仅定期备份新增分区中的数据。
说明
存算分离的 Starrocks 暂不可用备份与恢复功能。
仓库用于在远端存储系统中存储备份文件。备份数据前,您需要基于远端存储系统路径在 StarRocks 中创建仓库。您可以在同一集群中创建多个仓库。详细使用方法参阅 CREATE REPOSITORY。
在 HDFS 集群中创建仓库。
说明
以下示例为在 Apache™ Hadoop® 集群中创建仓库 test_repo
。
CREATE REPOSITORY test_repo WITH BROKER ON LOCATION "hdfs://<hdfs_host>:<hdfs_port>/repo_dir/backup" PROPERTIES( "username" = "<hdfs_username>", "password" = "<hdfs_password>" );
在 TOS 中创建仓库。
说明
您可以使用 IAM 用户凭证(Access Key 和 Secret Key) 作为访问 TOS 的安全凭证。
示例
以 IAM 用户凭证作为安全凭证在 bucket_tos
TOS 存储桶中创建仓库 test_repo
。
CREATE REPOSITORY test_repo WITH BROKER ON LOCATION ""s3a://bucket_tos/backu" PROPERTIES( "aws.s3.region"="cn-beijing", "aws.s3.endpoint" = "tos-cn-beijing.ivolces.com", "aws.s3.access_key" = "XXXXXXXXXXXXXXXXX", "aws.s3.secret_key" = "yyyyyyyyyyyyyyyyyyyyyyyy" );
说明
火山引擎 TOS 支持的地域(Region)和访问域名(S3 Endpoint)请参考地域和访问域名。
仓库创建完成后,您可以通过 SHOW REPOSITORIES 查看已创建的仓库。完成数据备份恢复后,您可以通过 DROP REPOSITORY 语句删除 StarRocks 中的仓库。但目前无法通过 StarRocks 直接删除备份在远端存储系统中的快照数据,您需要手动删除备份在远端存储系统的快照路径。
创建数据仓库后,您可以通过 BACKUP 命令创建数据快照并将其备份至远端仓库。
示例
在数据库 sr_hub
中为表 sr_member
创建数据快照 sr_member_backup
并备份至仓库 test_repo
中。
BACKUP SNAPSHOT sr_hub.sr_member_backup TO test_repo ON (sr_member);
说明
StarRocks 支持以下粒度的备份还原操作:
ON (<table_name> PARTITION (<partition_name>, ...))
。ON (<table_name>)
。数据备份为异步操作。您可以通过 SHOW BACKUP 语句查看备份作业状态,或通过 CANCEL BACKUP 语句取消备份作业。
您可以将备份至远端仓库的数据快照恢复到当前或其他 StarRocks 集群,完成数据恢复或迁移。
开始恢复或迁移前,您可以通过 SHOW SNAPSHOT 查看特定仓库对应的数据快照信息。
示例
查看仓库 test_repo
中的数据快照信息。
mysql> SHOW SNAPSHOT ON test_repo; +------------------+-------------------------+--------+ | Snapshot | Timestamp | Status | +------------------+-------------------------+--------+ | sr_member_backup | 2023-02-07-14-45-53-143 | OK | +------------------+-------------------------+--------+ 1 row in set (1.16 sec)
通过 RESTORE 语句将远端仓库中的数据快照恢复至当前或其他 StarRocks 集群以恢复或迁移数据。
示例
将仓库 test_repo
中的数据快照 sr_member_backup
恢复为表 sr_member
,仅恢复一个数据副本。
RESTORE SNAPSHOT sr_hub.sr_member_backup FROM test_repo ON (sr_member) PROPERTIES ( "backup_timestamp"="2023-02-07-14-45-53-143", "replication_num" = "1" );
说明
StarRocks 支持以下粒度的备份还原操作:
ON (<table_name> PARTITION (<partition_name>, ...))
。ON (<table_name>)
。数据恢复为异步操作。您可以通过 SHOW RESTORE 语句查看恢复作业状态,或通过 CANCEL RESTORE 语句取消恢复作业。
您可以通过修改以下配置项加速备份或还原作业。
配置项 | 说明 |
---|---|
make_snapshot_worker_count | BE 节点快照任务的最大线程数,用于备份作业。默认值:5。增加此配置项的值可以增加快照任务并行度。 |
release_snapshot_worker_count | BE 节点释放快照任务的最大线程数,用于备份作业异常清理。默认值:5。增加此配置项的值可以增加释放快照任务并行度。 |
upload_worker_count | BE 节点上传任务的最大线程数,用于备份作业。默认值:0。0 表示设置线程数为 BE 所在机器的 CPU 核数。增加此配置项的值可以增加上传任务并行度。 |
download_worker_count | BE 节点下载任务的最大线程数,用于恢复作业。默认值:10。当生效值为0时,表示设置线程数为 BE 所在机器的 CPU 核数。增加此配置项的值可以增加下载任务并行度。 |
说明
如您实际配置参数与上述表格描述有差异,请通过 提工单 的方式,联系火山引擎技术支持人员。
在备份或还原表(Table)数据期间,StarRocks 会自动备份或还原其中的 同步物化视图。
从StarRocks 3.2.3 版本开始,在进行数据库的备份和还原操作时,可以同时对数据库中的异步物化视图进行备份和还原。
在备份和还原数据库期间,StarRocks 执行以下操作。
说明
在对物化视图进行备份和还原操作的过程中,不管出现任何错误情况,都不会使备份和还原过程停止或中断。您可以通过 SHOW BACKUP 语句查看备份作业状态,通过 SHOW RESTORE 语句查看恢复作业状态。
操作完成后,您可以使用SHOW MATERIALIZED VIEWS 检查物化视图的状态。
AS
关键字重新命名被恢复表,或者删除已有表后重新发起恢复作业。