1. 关于Minio Client

MinIO Client是一个命令行工具,用于与Minio或云存储服务进行交互。它支持文件系统和Amazon S3兼容的云存储服务(AWS Signature v2和v4)。

MinIO Client mc 命令行工具提供了lscatcpmirrordiff等UNIX命令的现代替代方案,支持文件系统和Amazon s3兼容的云存储服务。

mc 命令行工具是为与AWS S3 API兼容而构建的,并在MinIO和AWS S3上测试了预期的功能和行为。

MinIO不为其他S3兼容服务提供保证,因为它们的S3 API实现是未知的,因此不受支持。虽然mc命令可以按照文档的方式工作,但任何此类用法都要由您自己承担风险。

2. 迁移示例

2.1 部署两个版本的Minio实例

  • 旧版本2019:minio/minio:RELEASE.2019-12-19T22:52:26Z
  • 新版本2023:minio/minio:RELEASE.2023-03-24T21-41-23Z
version: '3'
services:
# 旧版本2019
minio2019:
image: minio/minio:RELEASE.2019-12-19T22:52:26Z
ports:
- 19000:9000
- 19001:9001
environment:
MINIO_ACCESS_KEY: admin
MINIO_SECRET_KEY: admin123
volumes:
- /usr/local/minio2019/data:/data
- /usr/local/minio2019/config:/root/.minio/
command: server /data
privileged: true
restart: always # 新版本2023
minio2023:
image: minio/minio:RELEASE.2023-03-24T21-41-23Z
ports:
- 29000:9000
- 29001:9001
environment:
MINIO_ACCESS_KEY: admin
MINIO_SECRET_KEY: admin123
volumes:
- /usr/local/minio2023/data:/data
- /usr/local/minio2023/config:/root/.minio/
command: server --console-address ':9001' /data
privileged: true
restart: always

2.2 在2019版本Minio上创建一个名称为"test2019"的bucket,并上传一些测试文件,通过查看挂载目录可以看到:

[root@master minio2019]# tree /usr/local/minio2019/
/usr/local/minio2019/
├── config
│ └── certs
│ └── CAs
├── data
│ └── test2019
│ ├── image-01.png
│ ├── image-02.png
│ ├── image-03.png
│ └── image-04.png

2.3 部署一个 mc 容器,做数据迁移

启动一个mc容器,并进入容器中

docker run -it --entrypoint=/bin/sh minio/mc

分别设置 minio2019minio2023 的alias

# mc alias set 别名 minio后端链接端口 管理员账号 管理员密码

# 设置minio2019的alias
mc alias set minio2019 http://ip:19000 admin admin123
# 设置minio2023的alias
mc alias set minio2023 http://ip:29000 admin admin123

2.4 迁移数据

mc迁移数据通常有下面三种场景:

#1. 全量迁移,重名文件不覆盖,如bucket不存在,会自动创建
mc mirror minio2021 minio2023 #2. 只迁移某个bucket,以test为例,迁移的目标bucket需要提前创建
mc mirror minio2021/test minio2023/test #test要提前在minio2023中创建 #3. 加上--overwrite参数,覆盖重名文件
mc mirror --overwrite minio2021 minio2023
mc mirror --overwrite minio2021/test minio2023/te

这里使用第一种方式,全量迁移,重名文件不覆盖,如bucket不存在,会自动创建

[root@master minio2019]# mc mirror  minio2019 minio2023

2.5 查看迁移结果

[root@master minio2019]# tree /usr/local/minio2023
/usr/local/minio2023
├── config
│ └── certs
│ └── CAs
├── data
│ └── test2019
│ ├── image-01.png
│ ├── image-02.png
│ ├── image-03.png
│ └── image-04.png

使用Minio Clinet将老版本Minio的数据迁移到新版本的Minio的更多相关文章

  1. cenos下安装MySQL最新版(5.7.18)记录。附卸载老版本过程

    首先说明:老版本数据库没有数据,所以无数据备份过程.如果你在升级数据库过程里,需要备份数据,请另外自行处理. 1.下载最新版MySQL.解压待用 wget https://dev.mysql.com/ ...

  2. 一种解决新版本API完全兼容老版本API的方法

    原文:http://android.eoe.cn/topic/android_sdk 这节课程我们讨论如何创建一个实现类,即能对应新版本的API,又能够保持对老版本API的支持. * 寻找一个替代的解 ...

  3. 使用老版本的java api提交hadoop作业

    还是使用之前的单词计数的例子 自定义Mapper类 import java.io.IOException; import org.apache.hadoop.io.LongWritable; impo ...

  4. CoreData 从入门到精通(六)模型版本和数据迁移

    前面几篇文章中讲的所有内容,都是在同一个模型版本上进行操作的.但在真实开发中,基本上不会一直停留在一个版本上,因为需求是不断变化的,说不定什么时候就需要往模型里添加新的字段,添加新的模型,甚至是大规模 ...

  5. 如何给不支持新特性的浏览器打补丁(让老版本IE兼容新特性)

    一个非常棒的 JavaScript 框架叫做 Modernizr(http://www.modernizr. com),用于向缺少 HTML5/CSS3特性支持的浏览器打补丁.由 Alexander ...

  6. 较老版本的AFNetworking使用心得

    较老版本的 AFNetworking 下载链接 ( http://pan.baidu.com/s/14Cxga ) 将压缩包中的文件夹拖入xcode工程项目中并引入如下的框架 简单的 JOSN 解析例 ...

  7. 快速入门系列--WebAPI--04在老版本MVC4下的调整

    WebAPI是建立在MVC和WCF的基础上的,原来微软老是喜欢封装的很多,这次终于愿意将http编程模型的相关细节暴露给我们了.在之前的介绍中,基本上都基于.NET 4.5之后版本,其System.N ...

  8. 微软Hololens学院教程-Hologram 220-空间声音(Spatial sound )【本文是老版本,与最新的微软教程有出入】

    这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦! 原文链接https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...

  9. 微软Hololens学院教程-Hologram 230-空间场景建模(Spatial mapping )【微软教程已经更新,本文是老版本】

    这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...

  10. 微软Hololens学院教程- Holograms 100: Getting Started with Unity【微软教程已经更新,本文是老版本】

    这是老版本的教程,为了不耽误大家的时间,请直接看原文,本文仅供参考哦!原文链接:https://developer.microsoft.com/EN-US/WINDOWS/HOLOGRAPHIC/ho ...

随机推荐

  1. vscode element-plus/lib/theme-chalk/index.css报错路径找不到

    vscode  element-plus/lib/theme-chalk/index.css报错路径找不到 import { createApp } from 'vue' import './styl ...

  2. Doris failed to initialize storage reader. tablet=106408, res=[NOT_IMPLEMENTED_ERROR]to be implemented

    Apache Doris 2.3 以下的版本会存在一个 bug,导致数据在合并时存在异常,在后续查询该字段数据时会提示 [1105] [HY000]: errCode = 2, detailMessa ...

  3. linux服务器webdriver启动Chrome浏览器失败

    碰到一个linux启动Chrome浏览器失败的奇怪问题,查了很久资料,问题终于解决了,特此记录一下 我的情况是,一开始运维给了一个deploy的账号去部署项目UI自动化测试项目,项目是运行没有问题的, ...

  4. nginx灰度发布、网站限速和防盗链

    一.灰度发布(金丝雀发布) 灰度发布时使用比较平稳的过渡方式升级或者替换产品项目的方法统称 主要作用 及时发现项目问题 尽早获取用户反馈的信息,以改进产品 如果项目产生问题,可以将问题影响控制到最小范 ...

  5. RPC和 HTTP协议

    RPC 和HTTP 的区别 服务发现 HTTP,知道服务域名,可以通过 DNS 解析 得到 服务的IP地址,从而进行访问 RPC 需要一个专门的中间服务去保存服务名和IP信息(注册中心,nacos.c ...

  6. 【H5】02 <head>头标签介绍

    摘自: https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Introduction_to_HTML/The_head_metadata_in_HT ...

  7. 【郝斌C ST】02

    自学视频<郝斌C语言自学教程> 10: https://www.bilibili.com/video/BV1os411h77o C语言大纲 - 1.简介 - 2.基本编译知识 - 3.数据 ...

  8. 【JavaWeb】HttpClient

    需要的依赖: <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> <de ...

  9. UBUNTU18.04 SERVER 多显卡 服务器,为防止显卡计算任务出现不意外报错,设置显卡工作状态为:设定持久模式

    参考: https://www.cnblogs.com/devilmaycry812839668/p/14799016.html https://www.cnblogs.com/devilmaycry ...

  10. baselines算法库baselines/common/input.py模块分析

    baselines算法库baselines/common/input.py模块代码: import numpy as np import tensorflow as tf from gym.space ...