数据迁移通用笔记(Minio、Mysql、Mongo、ElasticSearch)

序号更新时间备注
12024.03.26初始化笔记
22024.03.27细化ES 集群和单节点的描述

文章目录

    • 一、Mino 数据迁移
      • 1、mc的基础操作
      • 2、镜像复制
      • 3、备份复制
    • 二、MySql数据迁移
      • 1、利用主从复制
      • 2、数据汇出汇入
    • 三、Mongo数据迁移
      • 1、利用主从复制
      • 2、数据汇出汇入
    • 四、ElasticSearch数据迁移
      • 1、基于快照
        • 1.1、旧数据快照备份
          • a、查看存储库快照
          • b、创建存储库快照
          • c、创建(数据)快照
          • d、分片配置(集群)
        • 1.2、利用快照恢复 (集群)
          • 集群挂载共享盘
          • a、检查存储库
          • b1、利用快照恢复(空数据的ES)
          • b2、利用快照恢复(已经存在数据)
        • 1.3、覆盖式恢复(单节点)
      • 2、利用 logstash 插件同步数据
      • 3、elasticdump 迁移

一、Mino 数据迁移

这里主要存在两种模式

1、直接通过minio之间mirro镜像迁移

​ 整体上通过配置别名进行区分迁移

2、通过备份迁移数据

​ 通过备份文件和恢复文件来迁移

1、mc的基础操作

myminio 是您给 Minio 实例设置的别名

https://play.min.io 是 Minio 实例的端点地址,如果有端口也填入

ACCESS_KEY 是您的访问密钥,SECRET_KEY 则是您的密钥

source-bucket 是存储桶名称

a、设置别名

mc alias remove myminio

b、删除别名

mc alias remove myminio

c、查询已配置的别名

mc alias list (如需要,可以–json 格式化)

d、查询存储桶列表

mc ls myminio

e、查看存储桶中的对象列表

mc ls myminio/source-bucket

f、删除桶内容

mc rb --force myminio/source-bucket (删除指定存储桶)

mc rb --force myminio (删除所有存储桶)

g、创建桶

mc mb myminio/mybucket

h、镜像复制

--force 参数将强制备份过程,即使目标目录已存在也会覆盖它。

--remove 参数将删除目标目录中不存在的对象和存储桶。

--watch 参数将监视源目录的更改,并在检测到更改时自动更新目标目录。

mc mirror --force --remove --watch <ALIAS_NAME> <BACKUP_DIRECTORY>

2、镜像复制

① 这里首先要保证A、B服务器节点网络互通,最起码保证api端口联通,如无变更,默认是9000

② 我们可以任意在A、B中选取一个配置别名,如果有就可以直接利用,这里A为minioA ,B为minioB,主要是利用到mirror

③ 这里假设A是输出源、B是输入源,则其实我们可以任意在A和B节点下执行如下命令,如果缺乏别名需要补充。

 ./mc mirror minioA minioB

3、备份复制

这里主要看你需要复制特定桶还是全部了,根据情况参考 基础操作 中的参数是否覆盖和删除

# ======== 备份操作 =======
# 备份特定桶 到backup 下
mc cp --recursive myminio/source-bucket backup/# 备份全部桶 到backup 下
mc cp --recursive myminio/ backup/# ======== 恢复操作 =======
# 恢复特定桶
mc cp --recursive backup/ myminio/destination-bucket# 恢复全部桶
mc cp --recursive backup/ myminio/destination-bucket

二、MySql数据迁移

这里主要是讨论8.0

① 假设为A、B两点

A:192.168.0.1

B:192.168.0.2

② 假设账户密码

username: test

password: test666?

③ 假设存储库

test

1、利用主从复制

直接利用主从复制,将内容复制过去,然后关闭主从状态。

2、数据汇出汇入

# 汇出A的test数据源内容
mysqldump -h 192.168.0.1 -u test -p --databases test > test_bak.sql
# 汇入到B 数据源内容
mysql -h 192.168.0.2 -u test -p < /tmp/test_bak.sql

三、Mongo数据迁移

① 假设为A、B两点

A:192.168.0.1

B:192.168.0.2

② 假设账户密码

username: test

password: test666?

③ 假设存储库

test

1、利用主从复制

2、数据汇出汇入

/tmp/test 为存放目录

# 汇出数据
mongodump --uri="mongodb://test:test666?@192.168.0.1/test?authSource=test" --out=/tmp/test# 汇入数据 -  记得/
mongorestore --uri="mongodb://mongodb://test:test666?@192.168.0.2/test?replicaSet=mgset-75334555/test?authSource=test" /tmp/test/

四、ElasticSearch数据迁移

① 假设为A、B两点

A:192.168.0.1

B:192.168.0.2

② 假设账户密码

username: test

password: test666?

③ 假设存储库

esSnap

④快照名称

snapshot_20240325

1、基于快照

这种方式建议版本一致,否则可能出现不知名问题。

【适应离线方案】

1.1、旧数据快照备份

ES的快照是需要一个存储库来存放的,所以我们需要先创建存储库快照才能创建快照存放其中。

a、查看存储库快照
# 全部快照存储库
curl -XGET "http://192.168.0.1:9200/_snapshot/_all"#特定快照存储库 ———— test
curl -XGET "http://192.168.0.1:9200/_snapshot/test"#查看存储库快照列表
curl -XGET "http://192.168.0.1:9200/_snapshot/test/_all?pretty"#删除存储库快照 - 全部
curl -XDELETE "http://192.168.0.1:9200/_snapshot/test/_all"#删除存储库 
curl -XDELETE "http://192.168.0.1:9200/_snapshot/test"
b、创建存储库快照
  • type 字段指定了存储库类型为 “fs”,表示使用本地文件系统作为快照的存储位置。

  • settings
    

    字段包含了存储库的设置信息,其中:

    • location 指定了快照文件存储的路径,这里是 “/tmp/esSnap”。(通过打开elasticsearch.yml的 path.repo属性查看)
    • max_snapshot_bytes_per_sec 指定了快照过程中允许的最大写入速率,这里设置为 “50mb”,表示每秒最大写入速率为 50MB。
    • max_restore_bytes_per_sec 指定了恢复过程中允许的最大读取速率,这里也设置为 “50mb”,表示每秒最大读取速率为 50MB。
    • compress 指定了是否压缩快照文件,这里设置为 “true”,表示压缩快照文件。
curl -XPOST -H "Content-Type: application/json" "http://192.168.0.1:9200/_snapshot/test" -d '{"type":"fs", "settings": {"location": "/opt/test", "max_snapshot_bytes_per_sec":"50mb",   "max_restore_bytes_per_sec":"50mb", "compress": "true"}}' 
c、创建(数据)快照

wait_for_completion=true :指定等待快照过程完成后返回响应

  • ignore_unavailable 字段指定了是否忽略不可用的索引,这里设置为 “true”,表示如果有不可用的索引也继续创建快照。
  • include_global_state 字段指定了是否包含全局状态信息,这里设置为 “false”,表示不包含全局状态信息。
 curl -XPOST -H "Content-Type: application/json" "http:// 192.168.4.162:9200/_snapshot/test/snapshot_20240325?wait_for_completion=true" -d '{"ignore_unavailable":"true",   "include_global_state":"false"}'
d、分片配置(集群)
# 关闭分片配置
curl -XPUT "http://192.168.0.1:9200/_cluster/settings" -H 'Content-Type: application/json' -d '{"persistent": {"cluster.routing.allocation.enable": "none"}
}'# 重启分片配置
curl -XPUT "http://192.168.0.1:9200/_cluster/settings" -H 'Content-Type: application/json' -d '{"persistent": {"cluster.routing.allocation.enable": "all"}
}'
1.2、利用快照恢复 (集群)

这里需要提醒一下,存储的快照目录需要预先配置.

如果是集群节点,需要每个配置,需要配置 共享挂载盘

通常:elasticsearch.yml内设置 path.repo ,可以赋值例如 [“/opt/test”]

集群挂载共享盘

(1)安装配置

# 通用linux
yum install nfs-utils rpcbind -y
#设置开机自启动
systemctl enable rpcbind.servicesystemctl enable nfs-server.service
#启动服务
systemctl start rpcbind.servicesystemctl start nfs-server.service# Ubuntu
# nfs 服务端
sudo apt-get install nfs-kernel-server
# nfs 客户端
sudo apt-get install nfs-common   
# 启动内容
sudo systemctl start nfs-kernel-server
# 自启动配置
sudo systemctl enable nfs-kernel-server

(2)挂载配置

# 编辑NFS内容
sudo vim /etc/exports# 挂载
# /opt/test 挂载目录
# 1、读写(rw)模式共享给所有客户端
# 2、同步(sync)更新
# 3、no_root_squash 表示客户端以 root 用户身份连接时不会转换为匿名用户
/opt/test *(rw,sync,no_root_squash,no_subtree_check)#使其生效
exportfs -a

(3)查看可挂载目录、挂载

# 查看可挂载目录
showmount -e 192.168.0.1
# 挂载操作
//将 NFS 服务器 192.168.0.1 上的共享目录 /opt/test 挂载到本地 /opt/test
sudo mount -t nfs 192.168.0.1:/opt/test /opt/test
# 查看已经挂载的内容
mount | grep nfs
a、检查存储库

如果不存在存储库,建议新建存储库用于恢复

用共享盘来存储文件,来达成同一个存储库,并从存储库内容恢复的操作

b1、利用快照恢复(空数据的ES)

共享盘联通的情况下,建立同一个存储库,会自动加载存储库里面的快照 snapshot_20240325 ,这时候我们可选择指定 index1index1 恢复,也可以什么都不加,全部恢复

curl -XPOST -H "Content-Type: application/json" "http://192.168.0.1:9200/_snapshot/test/snapshot_20240325/_restore?wait_for_completion=true" -d '{"indices": "index1,index2"}'
b2、利用快照恢复(已经存在数据)
#1、停止全部节点#2、删除data数据通常是 `/opt/xiaoi_app/elasticsearch/data`#3、重启节点#4、检测集群状态
curl -XGET 'http://localhost:9200/_cat/health?v'#5、这时候需要继续走下1.2-a 重建设存储库
curl -XPOST -H "Content-Type: application/json" "http://192.168.0.1:9200/_snapshot/test" -d '{"type":"fs", "settings": {"location": "/opt/test", "max_snapshot_bytes_per_sec":"50mb",   "max_restore_bytes_per_sec":"50mb", "compress": "true"}}' #6、这时候
# 共享盘联通的情况下,建立同一个存储库,会自动加载存储库里面的快照 snapshot_20240325,直接恢复即可
curl -XPOST -H "Content-Type: application/json" "http://192.168.0.1:9200/_snapshot/test/snapshot_20240325/_restore?wait_for_completion=true" #7、检查索引是否完好
curl -XGET 'http://localhost:9200/_cat/indices?v'
1.3、覆盖式恢复(单节点)

data/node/ 分片的内容保存,复制源数据内容,重启ES 应用

2、利用 logstash 插件同步数据

【适应网络联通方案】

3、elasticdump 迁移

暂时遇到滑动窗口的问题

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

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

相关文章

图像最低三位的可能情况

要求 函数f,函数g,分别针对三个比特位bit1,bit2,bit3进行运算,得到结果为A和B。具体为: A=f(bit1,bit2,bit3) B=g(bit1,bit2,bit3) 能否让函数f和函数g满足让A和B的结果出现四种可能“00”、“01”、“10”、“11”。 实现 可以设计这样的函数f和g,使得它们对于三个比特…

设计模式(8):组合模式

一.组合模式场景 把部分和整体的关系用树形结构来表示&#xff0c;从而使客户端可以使用统一的方式处理部分对象和整体对象。 二.组合模式核心 抽象组件(Component)角色&#xff1a;定义了叶子和容器组件的共同点&#xff1b;叶子组件(Leaf)角色&#xff1a;无子节点&#x…

嵌入式中逻辑分析仪的基本操作与实现

作为一名嵌入式软件/硬件工程师,要会使用各种仪表仪器,尤其示波器、逻辑分析仪, 这两个仪器可以监测各种数据线、信号线波形, 可以帮我们快速定位产品问题,缩短开发周期。 今天一口君安利一款非常不错的逻辑分析仪:kingst LA5016 这款仪器非常容易上手, 尤其在一些…

【滑动窗口】Leetcode 水果成篮

题目解析 904. 水果成篮 算法讲解 这道题的本质就是&#xff1a;寻找一段连续的区域&#xff08;子数组&#xff09;&#xff0c;这一段连续的区域里面最多包含两种水果&#xff0c;因为有可能这一段连续的区域里面全是一种水果&#xff0c;比如&#xff1a;f(x) {1,1,1,1,…

Linux中安装JDK17.X

1、总体概述&#xff1f; 该操作方式适合centos或red hat环境 2.1、在线下载JDK安装包&#xff1f; 通过wget命令下载JDK17.X包 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 如果提示&#xff1a;没有wget命令就安装wget yum install w…

G35-2单螺杆泵

在现代工业流程中&#xff0c;流体输送是至关重要的一环。无论是石油化工、能源开采还是精细化工领域&#xff0c;高效率和可靠的泵送设备都是确保生产过程平稳运行的关键。在这样的背景下&#xff0c;G35-2单螺杆泵凭借其卓越的性能和广泛的应用性&#xff0c;成为了众多工业企…

答题小程序功能细节揭秘:如何提升用户体验和满足用户需求?

答题小程序功能细节体现 随着移动互联网的快速发展&#xff0c;答题小程序成为了用户获取知识、娱乐休闲的重要平台。一款优秀的答题小程序不仅应该具备简洁易用的界面设计&#xff0c;更应该在功能细节上做到极致&#xff0c;以提升用户体验和满足用户需求。本文将从题库随机…

SCI论文发表多长时间才可以被检索?

sci检索&#xff0c;是指发表的sci论文可以在web of science上查询到&#xff0c;是sci论文发表的最后一个步骤&#xff0c;建立在见刊的基础之上。那么&#xff0c;sci发表后多久可检索?没有统一标准&#xff0c;刊物不同&#xff0c;检索时间有差异。 一、SCI文章检索的注意…

深入解析AI大模型:原理、挑战与前景

前言 在现今技术飞速发展的时代&#xff0c;AI大模型学习已成为科技领域的研究热点。要想在这一领域取得突破&#xff0c;研究者需掌握扎实的数学基础、编程能力以及特定领域的业务知识。本文将深入剖析AI大模型的原理、挑战与前景&#xff0c;为读者提供有益的建议。 一、AI…

Ubuntu22.04安装 wordpress

第一步安装 mysql 这个必须是第一步 sudo apt install mysql-server第二步修改mysql密码 ubuntu 首次登录mysql8 未设置密码或忘记密码解决方法 亲测可用 第三步安装 nginx sudo apt update && sudo apt upgrade -y sudo apt install nginx sudo systemctl enable …

Mysql连接报错:1130-host ... is not allowed to connect to this MySql server如何处理

我用navicat连接我的阿里云服务器的mysql服务器的时候,出现了1130的报错。&#xff08;mysql Server version: 5.7.42-0ubuntu0.18.04.1 (Ubuntu)&#xff09; 我来记录一下这个原因&#xff0c;以及修改过程&#xff01; 1.首先进入mysql -u root -p&#xff0c; mysql客户端…

FoFa 查询工具

FoFaX是一款使用Go编写的命令行FoFa查询工具、在支持FoFa查询规则上增加了Fx语法来方便使用者编写自己的规则、并且内置了一些常用的规则&#xff0c;除此之外还有联动其他安全产品在内的其他多个实用功能 ****fofax工具获取 https://github.com/xiecat/fofax 为了帮助大家更…

【微服务】配置Nacos管理SpringBoot配置文件(附解压包)

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 一、什么是Nacos Nacos可以帮助我们配置和管理微服务&#xff0c;是阿里的一个开源产品&#xff0c;是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案。Nacos可以用来实现配置中心和服务注册中心。 …

2024年道路运输安全员考试真题题库

2024年道路运输安全员考试真题题库 一、单选题 18.进行超限运输需要对道路进行加固、改造时&#xff0c;所需费用由谁承担&#xff1f;&#xff08;&#xff09; A.公路管理机构 B.托运人 C.承运人 答案&#xff1a;C 19.大件运输车辆通行公路桥梁时&#xff0c;哪种做…

Kafka 面试题及参考答案

目录 1. Kafka 的核心特性是什么? 2. Kafka 为什么能够实现高吞吐量? 3. Kafka 的消息丢失是

FPGA高端图像处理开发板:鲲叔4EV,寄托了未来的一块开发板

目录 前言鲲叔4EV----高端FPGA图像处理开发板核心板描述底板描述配套例程源码描述配套服务描述开发板获取 前言 在CSDN写博客传播FPGA开发经验已经一年多了&#xff0c;帮助了不少人&#xff0c;也得罪了不少人&#xff0c;有的人用我的代码赢得了某些比赛、得到了心仪的offer…

力扣 520.检测大写字母

我们定义&#xff0c;在以下情况时&#xff0c;单词的大写用法是正确的&#xff1a; 全部字母都是大写&#xff0c;比如 "USA" 。单词中所有字母都不是大写&#xff0c;比如 "leetcode" 。如果单词不只含有一个字母&#xff0c;只有首字母大写&#xff0c…

Java面试必问题22:如何创建线程池(偏重点)创建线程池的注意事项

企业最佳实践&#xff1a;不要使用Executors直接创建线程池&#xff0c;会出现OOM问题&#xff0c;要使用ThreadPoolExecutor构造方法创建&#xff0c;引用自《阿里巴巴开发手册》 【强制】线程池不允许使用 Executors 去创建&#xff0c;而是通过 ThreadPoolExecutor 的方式&a…

基于视觉的机器人抓取——从物体定位、物体姿态估计到平行抓取器抓取估计——综述

综述 本文对基于视觉的机器人抓取进行了全面的综述。我们总结了基于视觉的机器人抓取过程中的三个关键任务&#xff0c;即物体定位、物体姿态估计和抓取估计。详细地说&#xff0c;对象定位任务包括无分类的对象定位、对象检测和对象实例分割。此任务提供输入数据中目标对象的…

腾讯也来电商掺一脚了?视频号小店或成2024年最大黑马!

大家好&#xff0c;我是电商小布。 当前的互联网时代下&#xff0c;电商无疑是最炙手可热的行业。 各种各样电商项目的出现&#xff0c;给了我们大家更多的机会选择&#xff0c;并从中来享受到流量至上的魅力。 腾讯旗下的视频号小店就是其中之一。 这个项目是依靠于视频号…