nebula-br local-store 模式,快速搭建主备集群实践

news2024/11/25 3:01:48

因为线上图数据库目前为单集群,数据量比较大,有以下缺点:

  1. 单点风险,一旦集群崩溃或者因为某些查询拖垮整个集群,就会导致所有图操作受影响
  2. 很多优化类但会影响读写的操作不好执行,比如:compact、balance leader 等;
  3. 双集群在升级的时候也非常有优势,完全可以做到不影响业务运行,比如先升级备集群再升级主集群。总之为了线上数据库更加稳定和高可用需要搭建双集群。

选择 BR 工具的原因

目前,我这边了解到复制集群方案有:

  1. 新集群重新写入数据,这种情况要么就是写程序 scan 再导入新集群(太慢了),要么就基于底表数据通过 nebula-exchange 再导入新集群(必须得有历史数据)
  2. (不可靠)完整复制 nebula 数据拷贝到新集群,参考:【复制 data 方式导入】(不过,这个方式我在测试环境测试失败了)
  3. 通过 nebula-br 备份,再还原到新集群(本文就是基于这种方式)

因为我们线上很难回溯出完整的历史数据,无法基于底表重新构建,此外 scan 方式又太慢了,所以选择了 BR 的方式。

注意

  • 本文基于测试环境搭建验证,数据量比较小,线上还未做验证,仅供参考。此外附上官方的简单 BR 实践。
  • 很重要)使用 BR 工具备份一定要先去了解其限制,BR 文档

环境介绍

  • nebula 版本:3.6.0
  • nebula 安装路径:/usr/local/nebula
  • nebula-metad 服务端口:9559 (可以通过安装目录下的 scripts/nebula-metad status 查看)
  • backup 目录:/usr/local/nebula_backup

备份方式:full(全图备份,也可以指定部分 space)

  • 3 台老集群机器(已经有历史数据的):192.168.1.2、192.168.1.3、192.168.1.4
  • 3 台新集群机器(没有数据,待从老集群复制数据):192.168.2.2、192.168.2.3、192.168.2.4

备份前新集群 show hosts 情况:

备份前老集群 show hosts 情况:

大体步骤

  1. 老集群安装 agent(每台机器都要安装)和 br(选择任何其中一台机器安装)工具;
  2. 新集群安装 agent(每台机器都要安装);
  3. 在老集群安装 br 的机器上,利用 br 工具生成备份文件,备份 meta 执行老集群的 meta 地址;
  4. 复制 meta 文件,老集群中只有一台机器的备份目录有 meta,需要将 meta 复制到老集群其他机器;
  5. 在新集群机器创建和老集群一样的备份目录,比如:老集群备份目录为 /usr/local/nebula_bak/BACKUP_2023_09_14_13_57_33,新集群机器需要创建相同的目录:/usr/local/nebula_bak/BACKUP_2023_09_14_13_57_33
  6. 复制老集群备份文件到新集群中,这里需要注意因为老集群每台机器都有自己的备份文件,这里需要将所有的备份文件复制到新集群中整合到一起,因为每台机器的 data 下的目录名称都是以 IP + PORT 的形式,所以不会有重复;
  7. 在老集群安装 br 的机器上,利用 br 工具恢复备份文件,恢复时 meta 指向新机器 meta 地址;

详细步骤

在老集群所有机器安装 agent,安装方法参考:angent 安装介绍,以当前示例为例,下载 nebula-agent 之后存放在 /usr/local/nebula/bin 目录下, 使用 chmod +x nebula-agent 赋予可执行权限:

192.168.1.2

nohup ./nebula-agent -agent="192.168.1.2:9999" -debug -meta="192.168.1.2:9559" > agent.log 2>&1 &

192.168.1.3

nohup ./nebula-agent -agent="192.168.1.3:9999" -debug -meta="192.168.1.3:9559"  > agent.log 2>&1 &

192.168.1.4

nohup ./nebula-agent -agent="192.168.1.4:9999" -debug -meta="192.168.1.4:9559"  > agent.log 2>&1 &

下载 br 工具到 nebula 的 bin 目录下,并命名为 nebula-br,并使用 chmod 命令赋予可执行权限。

此时老集群机器拓扑图:

(老集群)选择安装 br 工具的 192.168.1.4 机器执行如下命令进行备份:

./nebula-br backup full --meta="192.168.1.4:9559" --storage="local:///usr/local/nebula_backup"

(老集群)备份后每台机器的备份目录详情如图:

(老集群)复制 meta 到其他机器的备份目录下:

这里是从 192.169.1.2(只有这台机器生成了 meta,这玩意只有在 meta 的 leader 节点生成)机器复制到 192.168.1.3 和 192.168.1.4 机器目录下:

新集群安装 agent:

192.168.2.2

nohup ./nebula-agent -agent="192.168.2.2:9999" -debug -meta="192.168.2.2:9559" > agent.log 2>&1 &

192.168.2.3

nohup ./nebula-agent -agent="192.168.2.3:9999" -debug -meta="192.168.2.3:9559"  > agent.log 2>&1 &

192.168.2.4

nohup ./nebula-agent -agent="192.168.2.4:9999" -debug -meta="192.168.2.4:9559"  > agent.log 2>&1 &

新集群服务拓扑图:

复制老集群的备份文件到新集群机器下,完成后的拓扑图:

从老集群机器 /usr/local/nebula_backup 拷贝数据到新集群机器 /usr/local/nebula_backup 目录下

(老集群) 选择安装 br 工具的 192.168.1.4 机器执行如下命令进行还原到新集群,这里的 meta 指向新集群机器其中一台 meta 地址,storage 地址为上一步新集群创建的备份地址:

./nebula-br restore full --meta="192.168.2.4:9559" --storage="local:///usr/local/nebula_backup" --name="BACKUP_2023_09_14_13_57_33"

观察日志,不报错的情况下完成了从老集群机器还原到了新集群,可使用 nebula-console 连接新集群查看 space 情况。

新集群 show hosts 情况:

小结

官方其实不推荐 local 模式去做备份还原,操作太过复杂,很容易出错,建议使用 S3 或者 NTF 进行挂载,这样就没必要做老集群拷贝到新集群的工作。

本文正在参加 NebulaGraph 技术社区年度征文活动,征文详情:https://discuss.nebula-graph.com.cn/t/topic/13970

如果你觉得本文对你有所启发,记得给我点个 ❤️ ,谢谢你的鼓励

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

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

相关文章

HANA:计算视图-图形化视图-“参数“-引用表数据(性能优化)

1.前言 最近项目HANA部分的开发用的比较多,之前很少用图形化计算视图,最近研究了下,发现有些小功能对于图形化视图的性能提升,还有建模便利性都有很大帮助,今天发现了一个小功能,就是视图中的参数&#xf…

两种办法实现进制转换:将十进制数N转换成为r进制数

两种办法实现进制转换:将十进制数N转换成为r进制数 法一:递归 //进制转换 void change1(int N,int r) {if (N / r 0) {printf("%d", N%r);}else {change1(N/r, r);printf("%d", N%r);} }int main() {int N 0;int r 0;printf(&q…

grid布局中grid-row和grid-column

目录 一、grid-row 二、grid-column 三、实例 一、grid-row grid-row属性定义了网格元素行的开始和结束位置。结合了grid-row-start和grid-row-end grid-row: 1 / 3;//表示行线从第一行线到第三行线为止 二、grid-column grid-column属性定义了网格元素列的开始和结束位置…

企业税收违法查询API:提升财务监控和风险管理的关键利器

引言 随着企业税务环境的不断演变和政府对税收合规性的日益关注,企业面临着更多的税务合规挑战。为了降低税务风险,提高财务监控水平,许多企业已经开始采用先进的工具和技术。其中之一,便是企业税收违法查询API,这一强…

大神总结:做数据可视化,谨记三要、两不要

直观灵活分析数据,让数据更易懂的数据可视化报表是由大量不同类型的数据可视化图表组成的,那数据可视化图表又是怎么制作出来的?在制作数据可视化报表的过程中需要注意哪些事项? BI数据可视化工具里预设大量的数据可视图表&#…

魔术般的速度,焕然一新的磁盘空间 - Magic Disk Cleaner for Mac 2023

在当今这个信息时代,我们的磁盘空间无时无刻不在被各种文件和数据所填满。无论是工作文件,还是日常生活的照片、视频,亦或是下载的各种应用程序,都在不断地蚕食着我们的磁盘空间。面对这种情况,一款高效、便捷的磁盘垃…

竞赛选题 深度学习实现行人重识别 - python opencv yolo Reid

文章目录 0 前言1 课题背景2 效果展示3 行人检测4 行人重识别5 其他工具6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的行人重识别算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向&#xff0c…

用友U8+ CRM任意文件上传漏洞

用友U8 CRM任意文件上传漏洞 免责声明漏洞描述漏洞影响漏洞危害网络测绘Fofa: body"用友U8CRM" 漏洞复现1. 构造poc2. 复现3. 访问webshell 免责声明 仅用于技术交流,目的是向相关安全人员展示漏洞利用方式,以便更好地提高网络安全意识和技术水平。 任何人不得利用该…

I/O性能优化——这一篇就足够啦

背景 继上一篇CPU性能优化文章 ,本次向大家分享关于I/O性能优化的分析套路以及常见措施。后续还有关于内存及网络优化的篇章。 基本概念 对于I/O我们先了解几个概念,文件系统,磁盘,文件。 磁盘 磁盘为系统提供了最基本的持久化存…

香港高端人才通行证计划入围高校/全球百强大学综合名单公布!

香港高端人才通行证计划入围高校/全球百强大学综合名单公布! 香港高才通计划希望吸引世界各地具备丰富工作经验及高学历的人才到香港探索机遇,这些高端人才包括高收入人士和在世界顶尖大学毕业的学生。 此计划并不适用于阿富汗、古巴、老挝、朝鲜、尼泊尔…

低功耗WiFi模块的技术发展

随着物联网的迅速发展,对于低功耗设备和技术的需求日益增加。低功耗WiFi模块应运而生,为连接大量设备提供了更长的电池寿命和更可持续的能源解决方案。本文将深入研究低功耗WiFi模块的技术发展,探讨其在物联网和移动设备领域的关键作用。 1.…

LEEDCODE 2235两整数相加

class Solution { public:int sum(int num1, int num2) {return (num1 num2);} };

AD9361 数据数字接口说明

一、简要 AD9361和BBP之间的数据接口以两种模式之一工作:标准CMOS兼容模式或低压差分信号(LVDS)兼容模式。本篇文章将简要介绍一下CMOS和LVDS工作模式下的数据具体的传输样式。 二、CMOS 工作模式 P0_D[11:0] and P1_D[11:0]: 端口0&#xf…

Firefox修改缓存目录的方法

打开Firefox,在地址栏输入“about:config” 查找是否有 browser.cache.disk.parent_directory,如果没有就新建一个同名的字符串,然后修改值为你要存放Firefox浏览器缓存的目录地址(E:\FirefoxCacheFiles) 然后重新…

继承访问限定

C施雷老师课堂笔记

鸿蒙问题记录

1、Variables decorated by Prop link, "Consume, and Obiectlink cannot be initialized locally 原因:被装饰器修饰的数据,不能初始化。这个应该是后续版本做了优化。当前使用 DevEco Studio 3.1.1 Release

java入门,JSONObject实现源码解析

一、前言 现在写java程序,很少需要写一些底层的数据结构和算法,因为这些轮子早已造好,拿来用就行。比如在代码中我们经常用到的这个类JSONObject ,还有我们经常使用的String类型,它都是有底层实现的,我们直…

IDEA如何显示左右侧的工具栏和选项栏固定位置折叠隐藏

项目场景 最近使用idea的时候,发现右边框和下边框的选项栏没掉了,直接影响到了开发效率。 原因分析: 应该是 键盘误触,触发隐藏边框的快捷键。 解决方案: 如下图操作,选项栏就出来了:

CN考研真题知识点二轮归纳(4)

持续更新,上期目录: CN考研真题知识点二轮归纳(4)https://blog.csdn.net/jsl123x/article/details/134135134?spm1001.2014.3001.5501 1.既可以扩展网段又是二层的设备 网段一般指一个计算机网络中使用同一物理层设备&#xff…

QT5.15.2 for Android 真机调试

一、准备就绪 1、一台安卓手机 1)手机需要进入开发者选项 2)准备一根USB线,需要用usb线连接电脑 2、QT5需要 Android搭建好环境(教程可以访问我另一篇文章) 二、调试 1、用usb线连接好电脑并进入开发者选项&…