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

clickhouse-backup配置及使用(Linux)

一、下载地址

Releases · Altinity/clickhouse-backup · GitHub

二、上传到服务器解压安装

        自行上传至服务器,解压命令:

        tar xvf clickhouse-backup-linux-amd64.tar.gz

三、创建软连接

        sudo ln -sv build/linux/amd64/clickhouse-backup /usr/local/bin/

        sudo ln -sv build/linux/amd64/clickhouse-backup /usr/bin/

四、验证

         clickhouse-backup -v

五、创建配置文件

        查看clickhouse的数据存储路径

        sudo vi /etc/clickhouse-server/config.xml

        找到path标签,记录这个地址“/icc/tools/clickhouse/data”

        创建clickhouse-backup的配置文件

        sudo mkdir -p /etc/clickhouse-backup

        sudo vi /etc/clickhouse-backup/config.xml

general:remote_storage: nonebackups_to_keep_local: 7 # 本地备份保留个数,默认0表示不自动做备份清理backups_to_keep_remote: 31 # 远程备份保留个数
clickhouse:username: defaultpassword: ""host: localhostport: 9000 # 这个与jdbc链接里的端口没关系,就是9000data_path: "/icc/tools/clickhouse/data" #clickhouse的数据的实际存储位置

        注:

        1、password配置项,我之前是设置了default的密码的,然后就在这里使用了那个密码,但是一直报错,所以就把default账号的密码文件删掉了 

        2、data_path配置项,这里就是clickhouse的数据存储路径

 六、常用命令

        sudo clickhouse-backup tables                  //查看可备份的表有哪些

        sudo clickhouse-backup list                       //查看备份清单

        sudo clickhouse-backup create -t 表名 备份名        //备份指定表

        sudo clickhouse-backup create 备份名        //备份全库

        sudo clickhouse-backup delete local 备份名        //删除本地备份

        sudo clickhouse-backup restore 备份名        //还原本地备份

        还原备份有可选参数:-table 只还原指定表 例:-table=数据库名.*(还原指定库)

        还原时如果遇到类似问题:code: 57, message: Directory for table data store/e8c/e8c3a343-758d-4e9a-a8c3-a343758dce9a/ already exists after 1 times,需要找到备份文件夹中的/metadata/数据库名/表名.json文件,然后把UUID删掉(下图选中部分),再重新执行即可

七、配置定时备份脚本

        编写脚本

        vi ck_backup.sh

#!/bin/bash
clickhouse-backup create all_`date +%Y%m%d`
clickhouse-backup delete local all_`date -d "2 day ago" "+%Y%m%d"`

        编辑定时任务

        crontab -e

0 1 * * * sudo sh /icc/tools/crontab/ck_backup.sh &>>/icc/logs/ck_backup.log

        如果sudo不成功的,可以添加如下配置

        sudo vi /etc/sudoers

        在末尾加上这一行

        user01       ALL=(ALL)       NOPASSWD:ALL

        把user01替换成你的用户名即可

http://www.lryc.cn/news/513328.html

相关文章:

  • 【YashanDB知识库】启动yasom时报错:sqlite connection error
  • JAVA学习笔记_Redis进阶
  • LabVIEW手部运动机能实验系统
  • SpringBoot的注解@SpringBootApplication及自动装配
  • STM32学习之EXTI外部中断(以对外式红外传感器 / 旋转编码器为例)
  • 数字赋能:制造企业如何靠“数字能力”实现可持续“超车”?
  • .NET在中国的就业前景:开源与跨平台带来的新机遇
  • 【基础篇】一、MySQL数据库基础知识
  • 预训练深度双向 Transformers 做语言理解
  • 理解js闭包,原型,原型链
  • linux tar 文件解压压缩
  • 【SQL server】教材数据库(5)
  • Oracle 11G还有新BUG?ORACLE 表空间迷案!
  • java实现预览服务器文件,不进行下载,并增加水印效果
  • SAP月结、年结前重点检查事项(后勤与财务模块)
  • MYSQL 高阶语句
  • VS Code中怎样查看某分支的提交历史记录
  • 知识库搭建实战一、(基于 Qianwen 大模型的知识库搭建)
  • ctr方法下载的镜像能用docker save进行保存吗?
  • win32汇编环境下,窗口程序中生成listview列表控件及显示
  • 运维之网络安全抓包—— WireShark 和 tcpdump
  • 【复刻】数字化转型是否赋能企业新质生产力发展?(2015-2023年)
  • 【数据仓库】spark大数据处理框架
  • 2 秒杀系统架构
  • UNI-APP_i18n国际化引入
  • 【详解】AndroidWebView的加载超时处理
  • RedisDesktopManager新版本不再支持SSH连接远程redis后
  • 开源 SOAP over UDP
  • Levenshtein 距离的原理与应用
  • 解决json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)