ClickHouse Docker 容器迁移指南:从测试环境到离线正式环境

news2025/3/19 14:01:13

ClickHouse Docker 容器迁移指南:从测试环境到离线正式环境

在实际开发和运维过程中,我们经常需要将测试环境中的服务迁移到正式环境,尤其是当正式环境处于离线状态时,这种迁移会变得更加复杂。本文将详细介绍如何将运行在 Docker 中的 ClickHouse 服务从测试环境迁移到无法联网的正式环境,并确保数据和配置的一致性。

环境版本说明

项目测试环境正式环境说明
操作系统Linux x86_64Linux x86_64确保两个环境的操作系统架构一致。
Docker 版本Docker 18.06.3-ceDocker 24.0.6版本差异较大,但通常不影响镜像迁移。
ClickHouse 镜像clickhouse-server:latest
镜像 ID: 6bfc295513dd
clickhouse-server:latest
镜像 ID: 待迁移后确认
确保镜像版本一致,避免兼容性问题。
数据存储路径/home/clickhouse/data/home/clickhouse/data数据目录路径需要一致,以确保数据迁移后能够正确加载。
配置文件路径/home/clickhouse/conf/home/clickhouse/conf配置文件路径需要一致,以确保 ClickHouse 使用正确的配置启动。
端口映射8123:8123
19000:9000
8123:8123
19000:9000
确保端口映射一致,以便服务能够正常访问。

迁移步骤

1. 导出测试环境中的 ClickHouse 镜像

在测试环境中,运行以下命令将 ClickHouse 镜像保存为 .tar 文件:

docker save 6bfc295513dd > clickhouse-server-latest.tar

2. 备份测试环境中的 ClickHouse 数据和配置文件

根据你的容器配置,数据目录为 /home/clickhouse/data,配置文件目录为 /home/clickhouse/conf。运行以下命令备份这些目录:

tar -czvf clickhouse-data.tar.gz /home/clickhouse/data
tar -czvf clickhouse-config.tar.gz /home/clickhouse/conf

3. 将镜像和数据拷贝到正式环境

由于正式环境无法联网,你需要通过外部存储设备(如 U 盘、移动硬盘或网络共享存储)将以下文件拷贝到正式环境:

  1. clickhouse-server-latest.tar(镜像文件)
  2. clickhouse-data.tar.gz(数据文件)
  3. clickhouse-config.tar.gz(配置文件)

4. 在正式环境中加载 ClickHouse 镜像

在正式环境中,运行以下命令加载镜像:

docker load < clickhouse-server-latest.tar

加载完成后,运行以下命令确认镜像已正确加载:

docker images

你应该会看到类似以下的输出:

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
clickhouse-server   latest              6bfc295513dd        11 months ago       952MB

5. 在正式环境中创建数据和配置目录

在正式环境的宿主机上,创建与测试环境相同的目录结构:

mkdir -p /home/clickhouse/data
mkdir -p /home/clickhouse/conf
sudo chown -R root:root /home/clickhouse
sudo chmod -R 755 /home/clickhouse

6. 将备份的数据和配置文件恢复到正式环境

将备份的数据和配置文件解压到正式环境的宿主机目录中:

tar -xzvf clickhouse-data.tar.gz -C /home/clickhouse/data
tar -xzvf clickhouse-config.tar.gz -C /home/clickhouse/conf

7. 启动 ClickHouse 容器

根据你的测试环境容器配置,启动 ClickHouse 容器时需要挂载相同的目录和端口。运行以下命令:

docker run -d --name clickhouse-server \
    -p 8123:8123 \
    -p 19000:9000 \
    -v /home/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \
    -v /home/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \
    -v /home/clickhouse/data:/var/lib/clickhouse \
    clickhouse-server:latest

8. 验证数据和配置一致性

在正式环境中,连接到 ClickHouse 容器,检查数据和配置是否正确加载:

docker exec -it clickhouse-server clickhouse-client

执行以下命令验证数据和配置:

SHOW DATABASES;
SELECT * FROM system.tables LIMIT 10;

注意事项

Docker 版本兼容性

  • 虽然 Docker 18.06.3-ce 和 Docker 24.0.6 之间存在版本差异,但 docker savedocker load 命令通常可以正常工作。如果在加载镜像时遇到问题,请检查 Docker 日志以获取更多信息。
  • 如果遇到兼容性问题,可以考虑在正式环境中升级 Docker 版本,或者在测试环境中降级 Docker 版本以匹配正式环境。

数据和配置文件的权限

  • 确保 /home/clickhouse/data/home/clickhouse/conf 目录的权限正确,ClickHouse 容器能够正常访问和写入这些目录。

  • 如果权限不足,可以使用以下命令调整权限:

    chown -R 1001:1001 /home/clickhouse/data
    chown -R 1001:1001 /home/clickhouse/conf
    

网络配置

  • 如果正式环境中有特定的网络配置需求(如自定义网络或防火墙规则),请确保 ClickHouse 容器的网络设置与测试环境一致。

通过以上步骤和环境版本说明,你可以清晰地了解测试环境和正式环境的配置差异,并确保 ClickHouse 镜像和数据能够顺利迁移到无法联网的正式环境中。

希望本文对你有所帮助!如果有任何问题,欢迎在评论区交流。


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

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

相关文章

C# WPF编程-Menu

C# WPF编程-Menu 布局&#xff1a;代码&#xff1a;效果 在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;Menu控件用于创建下拉菜单或上下文菜单&#xff0c;它提供了丰富的定制选项来满足不同的应用需求。下面将介绍如何在WPF应用程序中使用Menu…

Docker和containerd之概览(Overview of Docker and Containerd)

Docker和containerd之概览 容器本质上就是一个进程。 Namespace是一种逻辑分组机制&#xff0c;允许您将集群资源划分为独立的虚拟环境。每个 Namespace 为资源提供了一个范围&#xff0c;使得不同的团队、应用程序或环境可以在同一集群中共存&#xff0c;而不会相互干扰。 C…

【多线程】线程不安全问题

文章目录 多线程不安全的原因大的层面->多线程是随机调度的容易产生死锁 小的层面->内存不可见性引入volatile关键字 指令重排序不是原子性带来的隐患 synchronized锁的互斥性及作用可重入性——解决死锁 wait()和notify()两个突然迸发出的疑问 多线程不安全的原因 大的…

【C++】树和二叉树的实现(下)

本篇博客给大家带来的是用C语言来实现数据结构树和二叉树的实现&#xff01; &#x1f41f;&#x1f41f;文章专栏&#xff1a;数据结构 &#x1f680;&#x1f680;若有问题评论区下讨论&#xff0c;我会及时回答 ❤❤欢迎大家点赞、收藏、分享&#xff01; 今日思想&#xff…

kafka指北

为自己总结一下kafka指北&#xff0c;会持续更新。创作不易&#xff0c;转载请注明出处。 目录 集群controller选举过程broker启动流程 主题创建副本分布ISRleader副本选举机制LEO 生产数据流程同步发送和异步发送 分区策略ack应答生产者发送消息的幂等性跨分区幂等性问题&…

7、vue3做了什么

大佬认为有何优点&#xff1a; 组合式api----逻辑集中、对ts有更好的支持RFC–开放了一个讨论机制&#xff0c;可以看到每一个api的提案&#xff0c;方便源码维护&#xff0c;功能扩展&#xff0c;大家一起讨论 官方rfc响应式独立&#xff0c;new Proxy&#xff0c;天生自带来…

基于大语言模型与知识图谱的智能论文生成工具开发构想

基于大语言模型与知识图谱的智能论文生成工具开发构想 一、研究背景与意义 1.1 学术写作现状分析 #mermaid-svg-FNVHG5EiEgVSCpHK {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-FNVHG5EiEgVSCpHK .error-icon{fil…

JUC大揭秘:从ConcurrentHashMap到线程池,玩转Java并发编程!

目录 JUC实现类 ConcurrentHashMap 回顾HashMap ConcurrentHashMap CopyOnWriteArrayList 回顾ArrayList CopyOnWriteArrayList: CopyOnWriteArraySet 辅助类 CountDownLatch 线程池 线程池 线程池优点 ThreadPoolExecutor 构造器各个参数含义&#xff1a; 线程…

4.3--入门知识扫盲,IPv4的头部报文解析,数据报分片,地址分类(包你看一遍全部记住)

IPv4协议&#xff1a;网络世界的快递包裹指南&#xff08;附拆箱说明书&#xff09; “IPv4就像一张明信片&#xff0c;既要写清楚地址&#xff0c;又要控制大小别超重” —— 某网络工程师的桌面铭牌 一、IPv4报头&#xff1a;快递面单的终极艺术 1.1 报头结构图&#xff08;…

苍穹外卖-阿里云OSS使用

第一步&#xff1a; package com.sky.properties;import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component;Component ConfigurationProperties(prefix "sky.alioss") …

Vue生命周期_Vue生命周期钩子

一、生命周期介绍 每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤&#xff0c;比如设置好数据侦听&#xff0c;编译模板&#xff0c;挂载实例到 DOM&#xff0c;以及在数据改变时更新 DOM。 在此过程中&#xff0c;它也会运行被称为生命周期钩子的函数&#xff0c;让…

数据库设计实验(4)—— 数据更新实验

一、目的与要求 掌握用SQL语句实现数据的插入、修改和删除。 二、实验准备 1. 建立一个商店的数据库store&#xff0c;记录顾客及其购物情况&#xff0c;由下面三个表组成&#xff1a; 商品&#xff08;商品号&#xff0c;商品名&#xff0c;单价&#xff0c;商品类别&#x…

Apache DolphinScheduler:一个可视化大数据工作流调度平台

Apache DolphinScheduler&#xff08;海豚调度&#xff09;是一个分布式易扩展的可视化工作流任务调度开源系统&#xff0c;适用于企业级场景&#xff0c;提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。 Apache DolphinScheduler 旨在解决复杂的大数据…

再学:call与delegatecall、call转账 Bank合约

目录 1.call与delegatecall 2.transfer && call 3.若想内部传递abi编码 4.Bank合约 1.call与delegatecall call&#xff1a;切换上下文 delegatecall&#xff1a;不切换上下文 delegatecall可以理解为 A在调用B这个集成在A的方法 可升级合约&#xff0c;常用del…

关于解决新版本spring项目请求测试接口返回406的问题

目录 一、问题产生 二、问题排查 &#xff08;1&#xff09;首先是打断点debug进行排查 &#xff08;2&#xff09;网上查找相关资料排查 &#xff08;3&#xff09;老项目测试 三、问题解决 一、问题产生 使用Apifox对后端发送请求进行接口测试时返回状态码406&#xff0…

linux入侵排查_应急响应

1.实验目标 掌握linux系统中信息收集的方法 掌握linux系统中持久化操作方法及排查方式 掌握linux系统入侵排查思路 2.实验步骤 1.统计攻击者爆破次数 2.排查攻击者第一次使用恶意用户登录的时间 3.检查sudoer文件 4.排查计划任务 5.排查计划任务 6.排查恶意服务 7.排查…

AI视频生成产品体验分享(第2趴):Vidu、Hailuo、Runway、Pika谁更胜一筹?

hi&#xff0c;大家&#xff0c;继上次体验完可灵、即梦和pixverse&#xff0c;今天打算从产品经理的角度再研究下Vidu、Hailuo、Runway、Pika这几款产品&#xff01;欢迎加入讨论&#xff01; 一、产品简介 1. Vidu&#xff1a;国产自研的「一致性标杆」 &#x1f4cc;官网…

R语言高效数据处理-自定义格式EXCEL数据输出

注&#xff1a;以下代码均为实际数据处理中的笔记摘录&#xff0c;所以很零散&#xff0c; 将就看吧&#xff0c;这一篇只是代表着我还在&#xff0c;所以可能用处不大&#xff0c;这一段时间都很煎熬&#xff01; 在实际数据处理中为了提升效率&#xff0c;将Excel报表交付给…

基于srpingboot高校智慧校园教学管理服务平台的设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

【小白向】Word|Word怎么给公式标号、调整公式字体和花括号对齐

【小白向】Word&#xff5c;Word怎么给公式标号、调整公式字体和花括号对齐 我的版本&#xff1a;Word 2021 如需快速查看关键步骤&#xff0c;请直接阅读标红部分。 如果遇到无法调整的情况&#xff0c;可以直接下载我的示例文档进行参考&#xff1a;花括号和其他的示例公式.…