当前位置: 首页 > news >正文

使用clickhouse-backup工具备份clickhouse数据库

工具官网:https://github.com/AlexAkulov/clickhouse-backup/

dockerhub工具官网:https://hub.docker.com/r/alexakulov/clickhouse-backup

注意:这个工具只支持MergeTree 系列表引擎

一、clickhouse在容器外的备份和恢复

若clickhouse装在容器外,如宿主机里

下载

wget https://github.com/AlexAkulov/clickhouse-backup/releases/download/v2.1.3/clickhouse-backup-linux-amd64.tar.gz
mkdir tmp
tar -zxvf clickhouse-backup-linux-amd64.tar.gz -C ./tmp
cd tmp/build/linux/amd64
cp clickhouse-backup /usr/local/bin
clickhouse-backup -v

创建配置文件

mkdir -p /etc/clickhouse-backup/
cd /etc/clickhouse-backup/

创建config.yml内容如下

general:remote_storage: none
clickhouse:username: defaultpassword: ""host: localhostport: 9000

创建备份

clickhouse-backup create

默认备份目录在/var/lib/clickhouse/backup/目录下,默认创建的备份是以时间戳形式的,每个备份包含两个目录,分别是

metadata目录: 包含重新创建所需的DDL SQL

shadow目录: 包含作为ALTER TABLE ... FREEZE操作结果的数据

若缺少shadow目录,看你的程序是否能访问clickhouse数据库的/var/lib/clickhouse/目录。

查看备份列表

clickhouse-backup list

恢复备份

clickhouse-backup restore 2020-07-06T20-13-02

二、clickhouse在容器内的备份和恢复

1.方式一、映射容器目录直接拷贝

需要映射的目录如下

     volumes:- "${PWD}/clickhouse/data:/var/lib/clickhouse"- "${PWD}/clickhouse/log:/var/log/clickhouse-server"- "${PWD}/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml"- "${PWD}/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml"

直接拷贝对于目录即可

2.方式二、备份到clickhouse的容器目录

备份命令

docker run -u $(id -u root) --rm -it --network docker-compose_default --volumes-from clickhouse \-e CLICKHOUSE_HOST="clickhouse" \-e CLICKHOUSE_USERNAME="default" \-e CLICKHOUSE_PASSWORD="" \alexakulov/clickhouse-backup create

默认备份到clickhouse容器里的/var/lib/clickhouse/backup/目录下

其中network 可以使用docker inspect [容器名] 查看所使用的网络名,CLICKHOUSE_HOST 使用容器名或者外部ip,

恢复命令如下

docker run -u $(id -u root) --rm -it --network docker-compose_default --volumes-from clickhouse \-e CLICKHOUSE_HOST="clickhouse" \-e CLICKHOUSE_USERNAME="default" \-e CLICKHOUSE_PASSWORD="" \alexakulov/clickhouse-backup restore 2020-07-06T20-13-02

3.方式三、备份到clickhouse到远程sftp服务器

这个比较灵活,远程服务器开了ssh就行

备份命令

docker run -u $(id -u root) --rm -it --network docker-compose_default --volumes-from clickhouse \-e CLICKHOUSE_HOST="clickhouse" \-e CLICKHOUSE_USERNAME="default" \-e CLICKHOUSE_PASSWORD="" \-e REMOTE_STORAGE="sftp" \-e SFTP_ADDRESS="192.168.3.51" \-e SFTP_USERNAME="root" \-e SFTP_PASSWORD="root" \-e SFTP_PATH="/root/clickhouse/backup" \alexakulov/clickhouse-backup create_remote

远程服务器需要创建/root/clickhouse/backup目录

恢复命令如下

docker run -u $(id -u root) --rm -it --network docker-compose_default --volumes-from clickhouse \-e CLICKHOUSE_HOST="clickhouse" \-e CLICKHOUSE_USERNAME="default" \-e CLICKHOUSE_PASSWORD="" \-e REMOTE_STORAGE="sftp" \-e SFTP_ADDRESS="192.168.3.51" \-e SFTP_USERNAME="root" \-e SFTP_PASSWORD="root" \-e SFTP_PATH="/root/clickhouse/backup" \alexakulov/clickhouse-backup restore_remote 2020-07-06T20-13-02
http://www.lryc.cn/news/9113.html

相关文章:

  • python cartopy绘制扇形区域图/cartopy绘制北极部分区域
  • 如何设置股票接口版交易软件的指标涨跌家数?
  • C++之lambda函数(匿名函数)
  • WGCNA | 值得你深入学习的生信分析方法!~(网状分析-第四步-模块的功能注释)
  • 如何看待年轻人躺平式生活观?
  • JS 设计模式 - 怎么让你的代码提示一个档次
  • 遮挡贴图(Occlusion Map)和微表面贴图(Microsurface Map)
  • 【Vue】基本交互指令
  • MySQL 中的 distinct 和 group by 哪个效率更高?
  • Spring 框架源码(六) Bean的生命周期全流程源码解析
  • 运维服务商低成本提升服务质量解决方案
  • Raft 一致性算法
  • 驱动程序开发:基于EC20 4G模块自动拨号联网的两种方式(GobiNet工具拨号和PPP工具拨号)
  • Web自动化测试——常见问题篇
  • 快速实现Modbus TCP转BACnet IP协议的方案
  • Unity CircleLayoutGroup 如何实现一个圆形自动布局组件
  • springcloud+nacos+gateway案例
  • 实习这么久,你知道Maven是如何从代码仓库中找到需要的依赖吗?
  • 低代码/零代码的快速开发框架
  • C# 中常见的设计模式
  • promethues/servicemonitor
  • postman使用简介
  • @DS注解在事务中实现数据源的切换@DS在事务中失效【已解决】
  • Java I/O之文件系统
  • Mysql元数据获取方法(information_schema绕过方法)
  • Eclipse快捷键
  • java ssm自习室选座预约系统开发springmvc
  • 分享我从功能测试转型到测试开发的真实故事
  • TypeScript快速入门———(二)TypeScript常用类型
  • Mac M1 使用Centos8➕VMware Fusion进行静态网络配置