【运维】StarRocks数据迁移到新集群(针对于集群互通、不互通的情况)

文章目录

  • 一. 迁移整体思路
    • 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. 对于新旧集群不互通的情况

在这里插入图片描述
 

二、迁移过程(两个集群互通的情况)

在这里插入图片描述

准备

规划

序号组件说明
1minio用于创建桶,将库备份放到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;*************************** 1. row ***************************JobId: 129388SnapshotName: radar_test_backupDbName: radar_testState: FINISHEDBackupObjs: [radar_test.20230815_baseurl], [radar_test.20230815_baseurl.csv], [radar_test.dim_report_pro_detail], [radar_test.dim_report_pro_logs], [radar_test.dwd_qdas_monitor_donelog_test], [radar_test.dwd_thjl_d_xky], [radar_test.dwd_thjl_d_xky2], [radar_test.dwd_thjl_d_xky_20240125], [radar_test.ftp_baseurl], [radar_test.ods_pc_user_portrait_detail], [radar_test.ods_pc_user_portrait_detail2], [radar_test.ods_thjl_d], [radar_test.t], [radar_test.test2_100m_pc_user_portrait_detail], [radar_test.test2_10m_pc_user_portrait_detail], [radar_test.test2_1m_pc_user_portrait_detail], [radar_test.test2_join_id], [radar_test.test_100m_pc_user_portrait_detail], [radar_test.test_10m_pc_user_portrait_detail], [radar_test.test_1m_pc_user_portrait_detail]CreateTime: 2024-03-14 15:05:03
SnapshotFinishedTime: 2024-03-14 15:05:09UploadFinishedTime: 2024-03-14 15:16:36FinishedTime: 2024-03-14 15:16:45UnfinishedTasks:Progress:TaskErrMsg: [129534: S3: Fail to complete multipart upload for object starrocks-1/backup/__starrocks_repository_test_repo/__ss_radar_test_backup/__ss_content/__db_10228/__tbl_18770/__part_19744/__idx_18771/__19845/02000000006a04786743e0da3614f6285f61e260bcdfc887_0.dat.part, msg: The specified multipart upload does not exist. The upload ID may be invalid, or the upload may have been aborted or completed.]Status: [OK]Timeout: 86400看到State为FINISHED,Status为OK说明备份完成TaskErrMsg和Status:会显示任务过程中Task的一些错误信息,但只要State列不为CANCELLED,
就说明作业依然在继续,这些Task有可能会重试成功。当然,有些Task错误,也会直接导致作业失败。

 
在这里插入图片描述

当一次备份作业涉及到的表和数据都很多时,我们需要不时关注作业状态,若发现任务长时间没有进度或有其他问题,也可以将任务手动取消,取消语法为:

mysql> CANCEL BACKUP FROM db_name;

 

2. 迁移过程

迁移到集群B(新集群):

2.1. 通过mysqlclient与starrocks进行关联

mysql -h ${clusterB_server} -P9031 -uroot -pstar_rocks

 

2.2. 在新集群中创建仓库

注意在新集群中使用相同仓库名和地址创建仓库,否则将无法查看先前备份的数据快照。

-- 1. 创建数据库 新集群中需要建库,迁移的表不需要创建。
create database radar_test;-- 2. 创建与A集群相同的仓库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}:9019"
);-- 3. 查看仓库SHOW REPOSITORIES;-- 如果创建仓库失败,或想重新创建。使用如下命令删除仓库
DROP REPOSITORY test_repo;

 

2.3. 恢复数据到新集群

-- 在(旧集群)A集群中执行
-- 1. 连接A集群
mysql -h${star_rocks_cluster_fe_leader} -P9030 -uroot  -pstar_rocks;-- 查看备份快照信息,用于恢复使用
mysql> SHOW SNAPSHOT ON test_repo;
+-------------------+-------------------------+--------+
| Snapshot          | Timestamp               | Status |
+-------------------+-------------------------+--------+
| radar_test_backup | 2024-03-14-15-05-03-957 | OK     |
+-------------------+-------------------------+--------+-- 在(新集群)B集群中执行
-- 2. 将仓库 test_repo 中的数据快照 radar_test_backup恢复到数据库中radar_test,恢复三个数据副本。
-- 语法
RESTORE SNAPSHOT ${clusterB_database}.${clusterA_Snapshot_name}
FROM test_repo
PROPERTIES ("backup_timestamp"="${clusterA_Snapshot_Timestamp}","replication_num" = "3"
);-- 执行实例
RESTORE SNAPSHOT radar_test_1.radar_test_backup
FROM test_repo
PROPERTIES ("backup_timestamp"="2024-03-14-15-05-03-957","replication_num" = "3"
);Query OK, 0 rows affected (1.77 sec)-- 3. 查看备份进度SHOW RESTORE from radar_test \G;*************************** 1. row ***************************JobId: 10078Label: radar_test_backupTimestamp: 2024-03-14-15-05-03-957DbName: radar_testState: FINISHEDAllowLoad: falseReplicationNum: 1RestoreObjs: ... 会展示所有表和分区CreateTime: 2024-03-15 11:28:04MetaPreparedTime: 2024-03-15 11:28:07
SnapshotFinishedTime: 2024-03-15 11:28:10
DownloadFinishedTime: 2024-03-15 11:28:43FinishedTime: 2024-03-15 11:30:03UnfinishedTasks:Progress:TaskErrMsg:Status: [OK]Timeout: 86400如果StateFINISHEDStatus[OK],则迁移数据到新集群完成。

 

二、迁移过程(两个集群不互通的情况)

在这里插入图片描述

规划

序号组件说明
1minioA用于创建桶,将库备份放到minioA的桶中
2集群A旧集群,用于将库迁移到minioA中
3minioBminioA的数据迁移到minioB中
4集群B新集群,从minioB迁移数据到集群B

minioA操作

. minioA操作
# 1. 创建minioA集群别名:用于后续操作;在任意minio节点
语法
/usr/local/minio/mc alias set ${minio_alias} ${minio_server} ${minio_user} ${minio_password}# 2. minioA集群创建桶star11:用于存储数据备份
语法:
/usr/local/minio/mc mb ${minio_alias}/${bucket_name}
实例:
/usr/local/minio/mc mb minio_data_starrocks/star11

 

1. 集群A数据迁移到minioA

集群A(旧集群)数据迁移到minio:3个FE( poc1、2、3), 3个BE(poc4、5、6)的 StarRocks。

 

1.1. 通过mysqlclient与starrocks进行关联

1.2. 创建仓库与minioA建立联系

1.3. 备份数据到minioA

如上过程参考:集群互通时的操作

 

2. minioA数据迁移到minioB

现在我们将minioA的文件下载到本地,然后从本地上传到minioB

 

2.1. 下载minioA中的文件到本地

# 将minioA中的桶star11的数据备份到/home/taiyi/minio-data目录
# 创建目录
mkdir -p /home/taiyi/minio-data/
# 备份到本地
语法
# /usr/local/minio/mc cp --recursive ${minioA_alias}/${bucket_name}/ ${local_dir}
实例
/usr/local/minio/mc cp --recursive minio_data_starrocks/star11/ /home/taiyi/minio-data/

 

2.2. 将文件上传到minioB

因为网络不互通,需要将文件从上述位置拷贝到minioB的客户端机器中,具体方法不再描述,用户自行操作。

现在

# 1. 设用户已将数据上传到minioB的客户机目录/home/taiyi/minio-data/下# 2. 创建minioB集群别名:用于后续操作;在任意minioB的客户端节点
语法
/usr/local/minio/mc alias set ${minioB_alias} ${minioB_server} ${minioB_user} ${minioB_password}# 3. minioB集群创建桶star11:用于上传数据备份
语法:
/usr/local/minio/mc mb ${minioB_alias}/${bucket_name}
实例:
/usr/local/minio/mc mb minio_data_starrocks_restore/star11# 4. 将文件夹下/home/taiyi/minio-data/所有数据上传到minioB中star11的桶中/usr/local/minio/mc cp --recursive  /home/taiyi/minio-data/ minio_data_starrocks_restore/star11/

 

3.minioB数据迁移到集群B

迁移到集群B(新集群):

3.1. 通过mysqlclient与starrocks进行关联

3.2. 在新集群中创建仓库

3.3. 恢复数据到新集群

如上过程参考:集群互通时的操作

 
参考:
https://blog.csdn.net/ult_me/article/details/123235041

https://blog.csdn.net/gongxiucheng/article/details/132675927

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/750072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YOLOv9改进策略:注意力机制 | 极化自注意力Polarized Self-Attention,效果秒杀CBAM、SE

💡💡💡本文改进内容:本文针对Pixel-wise regression的任务,提出了一种更加精细的双重注意力机制——极化自注意力(Polarized Self-Attention),效果优于CBAM、SE等经典注意力。 yolo…

R语言实现中介分析(1)

中介分析,也称为介导分析,是统计学中的一种方法,它用于评估一个或多个中介变量(也称为中间变量)在自变量和因变量之间关系中所起的作用。换句话说,中介分析用于探索自变量如何通过中介变量影响因变量的机制…

docker login 阿里云失败??

docker login 阿里云失败?? 首先参考 阿里云官方文档《Docker登录、推送和拉取失败常见问题》 看看是否是下面提到的情况: 我遇到的情况是超时: [rootk8snode1 software]# sudo docker login --usernametyleryun registry.cn-hangzhou.ali…

【leetcode热题】比较版本号

难度&#xff1a; 中等通过率&#xff1a; 22.1%题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述 比较两个版本号 version1 和 version2。 如果 version1 > version2 返回 1&#xff0c;如果 version1 < version2 返回 -1&#xff0c; 除此之外…

StarRocks 易用性全面提升:数据导入可以如此简单

作为新一代分析型数据库&#xff0c;StarRocks 一直因性能卓越、功能全面而深受广大用户喜爱。在追求功能和性能的同时&#xff0c;易用性方面&#xff0c;StarRocks 也在一直围绕一线运维人员的作业细节持续提升&#xff0c;尤其从 V3.0 起&#xff0c;社区投入大量开发资源全…

数据仓库的设计开发应用(三)

目录 五、数据仓库的实施&#xff08;一&#xff09;数据仓库的创建&#xff08;二&#xff09;数据抽取转换加载 六、数据仓库系统的开发&#xff08;一&#xff09;开发任务&#xff08;二&#xff09;开发方法&#xff08;三&#xff09;系统测试 七、数据仓库系统的应用&am…

Jenkins: 配置自动化发布脚本

Jenkins 配置自动化发布脚本 在Jenkins的 一个工程项目任务中, 点击左侧 配置 栏在下面的 Build Steps 中&#xff0c;点击上面的 可用的环境变量列表 找到里面有一个 WORKSPACE 的变量这个变量指向我们的jenkins下工程项目源码的目录需要把这个变量利用起来 在 Build Steps 下…

Spring Web MVC入门(2)

学习Spring MVC Postman介绍 在软件工程中, 我们需要具有前后端分离的思想, 以降低耦合性. 但是在测试后端代码时,我们还得写前端代码测试,这是个令人头疼的问题. 那么我们如何测试自己的后端程序呢, 这就用到了一个工具: Postman. 界面介绍: 传参的介绍 1.普通传参, 也就…

0基础 三个月掌握C语言(11)

字符函数和字符串函数 为了方便操作字符和字符串 C语言标准库中提供了一系列库函数 接下来我们学习一下这些函数 字符分类函数 C语言提供了一系列用于字符分类的函数&#xff0c;这些函数定义在ctype.h头文件中。这些函数通常用于检查字符是否属于特定的类别&#xff0c;例如…

阿里EMO模型:AI生成表情丰富的视频

引言 在数字多媒体的时代&#xff0c;人们对于互动性和个性化视频内容的需求不断增长。阿里巴巴的EMO&#xff08;Emote Portrait Alive&#xff09;模型&#xff0c;作为一项前沿的人工智能技术&#xff0c;正引领着这一领域的革新之路。 EMO模型概述 EMO模型是阿里巴巴智能计…

纽约时报起诉OpenAI和微软将决定未来LLM的发展

《纽约时报》诉OpenAI和微软案对未来LLM发展的重大影响 案件背景 《纽约时报》(NYT)近期对OpenAI和微软提起诉讼&#xff0c;指控OpenAI未经授权使用其受版权保护的内容来训练其AI模型&#xff0c;包括ChatGPT。NYT声称&#xff0c;OpenAI使用了数百万篇其文章&#xff0c;这…

linux下重启ORACLE

切换到oracle用户 su - oracle 登录oracle sqlplus / as sysdba 启动数据库 startup 退出数据库 exit 启动监听 lsnrctl start FINISH

论文阅读——Rein

Stronger, Fewer, & Superior: Harnessing Vision Foundation Models for Domain Generalized Semantic Segmentation 一、引言 是一个对Domain Generalized Semantic Segmentation (DGSS)任务的视觉大模型的微调方法&#xff0c;即Rein。 Rein 专为 DGSS 任务量身定制&a…

matlab 眼球图像处理血管提取

1、内容简介 略 69-可以交流、咨询、答疑 2、内容说明 眼球图像处理血管提取 lab颜色空间提取眼球边缘、形态学操作 八邻域搜索算法 pUnImage&#xff0c;任意一点的坐标记为p(x,y),该点周围八邻域点的坐标记为p0(x,y)&#xff0c;p1(x,y)&#xff0c;p2(x,y)&#xff0c;…

利用express从0到1搭建后端服务

目录 步骤一&#xff1a;安装开发工具步骤二&#xff1a;安装插件步骤三&#xff1a;安装nodejs步骤四&#xff1a;搭建启动入口文件步骤五&#xff1a;启动服务器总结 在日常工作中&#xff0c;有很多重复和繁琐的事务是可以利用软件进行提效的。但每个行业又有自己的特点&…

【AI】实现在本地Mac,Windows和Mobile上运行Llama2模型

【AI】实现在本地Mac,Windows和Mobile上运行Llama2模型 目录 【AI】实现在本地Mac,Windows和Mobile上运行Llama2模型**Llama 2模型是什么?****技术规格和能力****Llama 2中的专门模型****在人工智能开发中的意义****如何在本地使用Llama 2运行Llama.cpp****Llama.cpp的设置*…

【Redis】基于Redis实现查询缓存

1.缓存更新策略 主动更新用的最多。  主动更新一般是由缓存的调用者&#xff0c;在更新数据库的同时&#xff0c;更新缓存。 操作缓存和数据库时有三个问题需要考虑&#xff1a; 删除缓存还是更新缓存&#xff1f; 更新缓存&#xff1a;每次更新数据库都更新缓存&#xff0…

mac电脑修改终端zsh显示的用户名

电脑名称一直没有修改&#xff0c;所以电脑名称都是Apple的MacBook Pro&#xff0c;如下图所示&#xff1a; mac电脑终端显示用户名太长一点也不美观&#xff0c;而且占用很长的行&#xff0c;浪费空间&#xff0c;可以通过修改来调整要显示什么内容&#xff1a; 方式一 要想换…

有向图的DFS(c++题解)

题目描述 给定一个有向图(不一定连通)&#xff0c;有N个顶点&#xff0c;M条边&#xff0c;顶点从1..N依次编号&#xff0c;求出字典序最小的深度优先搜索顺序。 输入格式 第1行&#xff1a;2个整数&#xff0c;N&#xff08;1≤N≤200&#xff09;和M&#xff08;2≤M≤500…

2核4g服务器够用吗?

2核4G服务器够用吗&#xff1f;够用。阿腾云以2核4G5M服务器搭建网站为例&#xff0c;5M带宽下载速度峰值可达640KB/秒&#xff0c;阿腾云以搭建网站为例&#xff0c;假设优化后平均大小为60KB&#xff0c;则5M带宽可支撑10个用户同时在1秒内打开网站&#xff0c;并发数为10&am…