文章目录
- 一. 迁移整体思路
-
- 1. 对于新旧集群互通的情况
- 2. 对于新旧集群不互通的情况
- 二、迁移过程(两个集群互通的情况)
-
- 1. 备份过程
-
- 1.1. 通过mysqlclient与starrocks进行关联
- 1.2. 创建仓库与minio建立联系
- 1.3. 备份数据到minio
- 2. 迁移过程
-
- 2.1. 通过mysqlclient与starrocks进行关联
- 2.2. 在新集群中创建仓库
- 2.3. 恢复数据到新集群
- 二、迁移过程(两个集群不互通的情况)
-
- 1. 集群A数据迁移到minioA
-
- 1.1. 通过mysqlclient与starrocks进行关联
- 1.2. 创建仓库与minioA建立联系
- 1.3. 备份数据到minioA
- 2. minioA数据迁移到minioB
-
- 2.1. 下载minioA中的文件到本地
- 2.2. 将文件上传到minioB
- 3.minioB数据迁移到集群B
-
- 3.1. 通过mysqlclient与starrocks进行关联
- 3.2. 在新集群中创建仓库
- 3.3. 恢复数据到新集群
一. 迁移整体思路
SR官网提供了分区、表和数据库级别的数据迁移策略,此方案通过数据库级别将数据迁移到新集群。
1. 对于新旧集群互通的情况
2. 对于新旧集群不互通的情况
二、迁移过程(两个集群互通的情况)
准备
规划
序号 | 组件 | 说明 |
---|---|---|
1 | minio | 用于创建桶,将库备份放到minio的桶中 |
2 | 集群A | 旧集群,用于将库迁移到minio中 |
3 | 集群B | 新集群,从minio迁移数据到集群B |
minio操作
# 1. 创建minio集群别名:用于后续操作;在任意minio节点
语法
/usr/local/minio/mc alias set ${minio_alias} ${minio_server} ${minio_user} ${minio_password}
实例
/usr/local/minio/mc alias set minio_data_starrocks http://server_minio:9019 admin Administrator123
# 2. minio集群创建桶star11:用于存储数据备份
语法:
/usr/local/minio/mc mb ${minio_alias}/${bucket_name}
实例:
/usr/local/minio/mc mb minio_data_starrocks/star11
1. 备份过程
集群A(旧集群)数据迁移到minio:3个FE( poc1、2、3), 3个BE(poc4、5、6)的 StarRocks。
1.1. 通过mysqlclient与starrocks进行关联
mysql -h${
starrocks_leader_host} -P9030 -uroot -pstar_rocks;
1.2. 创建仓库与minio建立联系
-- 1. 创建仓库
语法:
CREATE REPOSITORY `${
repo_name}`
WITH BROKER
ON LOCATION "s3a://${bucket_name}/backup"
PROPERTIES
(
"aws.s3.enable_ssl" = "false",
"aws.s3.access_key" = "${minio_username}",
"aws.s3.enable_path_style_access" = "true",
"aws.s3.secret_key" = "${minio_password}",
"aws.s3.endpoint" = "${minio_server}"
);
实例:
CREATE REPOSITORY `test_repo`
WITH BROKER
ON LOCATION "s3a://star11/backup"
PROPERTIES
(
"aws.s3.enable_ssl" = "false",
"aws.s3.access_key" = "admin",
"aws.s3.enable_path_style_access" = "true",
"aws.s3.secret_key" = "Administrator123",
"aws.s3.endpoint" = "minio_server:9009"
);
-- 2. 展示仓库
show REPOSITORY `test_repo`;
如果仓库创建失败,或重新创建同名仓库,则删除仓库命令如下
DROP REPOSITORY `test_repo`;
删除仓库时后记得手动在minio上的文件。
1.3. 备份数据到minio
备份语法:https://docs.starrocks.io/zh/docs/2.5/sql-reference/sql-statements/data-definition/BACKUP/
-- 1.备份命令
-- 以下示例在数据库 radar_test 中创建数据快照 sr_member_backup(命名随意) 并备份至仓库 test_repo 中。
BACKUP SNAPSHOT radar_test.radar_test_backup
TO test_repo
PROPERTIES ("type" = "full");
-- 2. 查看数据库radar_test备份过程:
show backup from radar_test \G;
*************************