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

Clickhouse学习笔记(15)—— Clickhouse备份

手动备份

参考官网:Backup and Restore | ClickHouse Docs

简单来说,就是我们可以通过ALTER TABLE ... FREEZE PARTITION ...命令为表分区创建一个本地副本,然后这个副本硬链接到/var/lib/clickhouse/shadow/文件夹,因此其不会耗费额外的硬盘空间

而且为了防止硬件问题,最好将该副本拷贝到其他的位置并且删除该本次副本;

接下来依照此思路进行试验:

本次备份

首先按创建用于存放备份数据的目录 shadow:

sudo mkdir -p /var/lib/clickhouse/shadow/

执行备份命令:(对表t_order_mt进行备份)

echo -n 'alter table t_order_mt freeze' | clickhouse-client

有关表t_order_mt可以参考

Clickhouse学习笔记(3)—— Clickhouse表引擎-CSDN博客

中MergeTree(合并树)部分

完成数据本地副本的备份之后查看其中的内容:

与原数据文件对比:

发现该副本是从/var/lib/clickhouse/store文件夹下直接拷贝的数据;


存储到其他路径

接下来将备份数据保存到其他路径:

创建backup文件夹:sudo mkdir -p /var/lib/clickhouse/backup/

拷贝数据:sudo cp -r /var/lib/clickhouse/shadow/ /var/lib/clickhouse/backup/t_order_mt

为下次备份准备,删除 shadow 下的数据:sudo rm -rf /var/lib/clickhouse/shadow/*


数据恢复

  • 删除备份过的表:echo ' drop table t_order_mt ' | clickhouse-client
  • 重新创建表;
  • 然后备份复制到 detached 目录:sudo cp -rl /var/lib/clickhouse/backup/t_order_mt/1/store/092/092cf360-d509-4379-892c-f360d509d379/* /var/lib/clickhouse/data/default/t_order_mt/detached/
  • 执行attach:echo 'alter table t_order_mt attach partition 20200601' | clickhouse-client
  • 查看数据:

clickhouse-backup

clickhouse的自动化备份工具,下载地址:https://github.com/AlexAkulov/clickhouse-backup/

首先上传并安装(rpm):sudo rpm -ivh clickhouse-backup-1.0.0-1.x86_64.rpm

该工具由两部分组成:

①配置文件,路径:/etc/clickhouse-backup/config.yml

注意:1.0.0不支持hdfs

②命令:/usr/bin/clickhouse-backup

常用操作

查看可用命令:clickhouse-backup help

显示要备份的表: clickhouse-backup tables

创建备份:clickhouse-backup create

创建完成后在/var/lib/clickhouse/backup文件夹中可以看到备份文件:

可以通过–name 标志指定备份名称

查看现有的本地备份:clickhouse-backup list

从备份恢复数据:sudo clickhouse-backup restore 2023-08-07T06-58-10

首先删除表t_order_mtecho 'drop table t_order_mt' | clickhouse-client

但是删除完成后发现store文件夹中依旧存在该表对应的数据文件:

可知此时还未完全删除

如果执行备份语句会报错:

但是无论是metadata还是store文件夹中,对应的sql语句都已删除

于是手动删除store文件夹下t_order_mt表对应的数据,之后重试备份恢复:

又有报错,但此时可以看到store中相应的数据已经恢复;

但此时去查询表是查不到的,而且再次备份又会出现同样的报错.......


解决方法:

先还原表结构:clickhouse-backup restore 2023-08-07T06-58-10 --schema

再还原数据:clickhouse-backup restore 2023-08-07T06-58-10 --data

--table 参数:备份(或还原)特定表。也可以使用一个正则表达式,例如,针对特定的数据库:--table=dbname.*


其他注意事项:

(1)API 文档:https : //github.com/AlexAkulov/clickhouse-backup#api

(2)注意事项:切勿更改文件夹/var/lib/clickhouse/backup 的权限,可能会导致数据损坏

(3)远程备份

➢ 较新版本才支持,需要设置 config 里的 s3 相关配置

➢ 上传到远程存储:sudo clickhouse-backup upload xxxx

➢ 从远程存储下载:sudo clickhouse-backup download xxxx

➢ 保存周期: backups_to_keep_local,本地保存周期,单位天backups_to_keep_remote,远程存储保存周期,单位天0 均表示不删除

相关文章:

Clickhouse学习笔记(15)—— Clickhouse备份

手动备份 参考官网:Backup and Restore | ClickHouse Docs 简单来说,就是我们可以通过ALTER TABLE ... FREEZE PARTITION ...命令为表分区创建一个本地副本,然后这个副本硬链接到/var/lib/clickhouse/shadow/文件夹,因此其不会耗…...

想买GPT4会员却只能排队?来看看背后的故事!

文章目录 🧐 为什么要进候选名单?🔍 究竟发生了什么?😮 IOS端还能买会员!🤔 网页端为啥不能订会员?第一点:防止黑卡消费第二点:当技术巨头遇上资源瓶颈&#…...

Oracle(17)Managing Roles

目录 一、基础知识 1、基础介绍 2、Predefined Roles 预定义的角色 3、各种角色的介绍 二、基础操作 1、创建角色 2、修改用户默认role 3、回收role 4、删除role 5、为角色授权 6、授予角色给用户 7、查看用户包含的角色: 8、查看角色所包含的权限 9、…...

小程序中如何设置门店信息

小程序是商家转型升级的利器,小程序中门店信息的准确性和完整性对于用户的体验和信任度都有很大的影响。下面具体介绍门店信息怎么在小程序中进行设置。 在小程序管理员后台->门店设置处,可以门店设置相关。主要分为2个模块,一个是门店级…...

SCons

什么是构建工具(系统) 构建工具(software construction tool)是一种软件,它可以**根据一定的规则或指令,将源代码编译成可执行的二进制程序。**这是构建工具最基本也最重要的功能。 实际上构建工具的功能…...

蓝桥杯每日一题2023.11.14

题目描述 题目分析 此题目的最终目标是将字母都填上数使等式符合条件&#xff0c;实际我们发现可以使用搜索将所有符合条件的进行判断&#xff08;答案&#xff1a;29&#xff09; 由于小数可能会出现错误故我们将其进行简单变化进行搜索 #include<bits/stdc.h> using…...

力扣labuladong——一刷day33

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣652. 寻找重复的子树 前言 前序位置的代码只能从函数参数中获取父节点传递来的数据&#xff0c;而后序位置的代码不仅可以获取参数数据&#xff0c;还可…...

spring cloud alibaba之nacos

spring cloud nacos 安装和启动nacos # 解压nacos安装包 # tar -zvxf nacos-server-1.4.1.tar.gz# nacos默认是以集群的模式启动&#xff0c;此处先用单机模式 # cd /usr/local/mysoft/nacos/bin # sh startup.sh -m standalone# nacos 日志 # tail -f /usr/local/mysoft/na…...

python自动化第一篇—— 带图文的execl的自动化合并

简述 最近接到一个需求&#xff0c;需要为公司里的一个部门提供一个文件上传自动化合并的系统&#xff0c;以供用户稽核&#xff0c;谈到自动化&#xff0c;肯定是选择python&#xff0c;毕竟python的轮子多。比较了市面上几个用得多的python库&#xff0c;我最终选择了xlwings…...

使用 Redis 实现分布式锁,解决分布式锁原子性、死锁、误删、可重入、自动续期等问题(使用SpringBoot环境实现)

目录 一、前言二、分布式锁具备的特点三、Redis分布式锁的实现核心思路四、分布式锁代码实现&#xff08;解决分布式锁原子性、死锁、误删、可重入、自动续期等问题&#xff09;4.1、分布式锁实现工具类4.2、测试分布式锁效果 五、分布式锁常见问题以及解决方法5.1、分布式锁死…...

mysql oracle统计报表每天每月每年SQL

mysql查询当天、昨天、本周、上周、近7天、近30天、本月、上个月、近6个月、本季度、上季度、本年和去年的数据 注意 在 XML 中 < 应该转为 < 当天 SELECT * FROM 表名 WHERE TO_DAYS(时间字段名) TO_DAYS(NOW()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS(NOW()) - TO…...

通过Python设置及读取PDF属性,轻松管理PDF文档

PDF文档属性是嵌入在PDF文档中的一些与文档有关的信息&#xff0c;如作者、制作软件、标题、主题等。PDF属性分为默认属性和自定义属性两种&#xff0c;其中默认属性是一些固定的文档信息&#xff0c;部分信息自动生成&#xff08;如文件大小、页数、页面大小等信息&#xff09…...

10. 深度学习——模型优化

机器学习面试题汇总与解析——模型优化 本章讲解知识点 前言低秩近似剪枝与稀疏约束参数量化二值网络知识蒸馏紧凑的网络结构本专栏适合于Python已经入门的学生或人士,有一定的编程基础。本专栏适合于算法工程师、机器学习、图像处理求职的学生或人士。本专栏针对面试题答案进…...

macos 上彻底卸载 DevEco Studio

1. 退出DevEco Studio&#xff1a; 确保DevEco Studio没有在运行。如果它在Dock中&#xff0c;可以右键点击其图标&#xff0c;然后选择退出。或者使用Command Q快捷键确保应用程序完全退出。 2. 删除DevEco Studio应用程序&#xff1a; 打开“应用程序”文件夹&#x…...

Nginx(五) break,if,return,rewrite和set指令的执行顺序深究

本篇文章主要对break&#xff0c;if&#xff0c;return&#xff0c;rewrite和set这5个指令的执行顺序进行深究&#xff0c;如需了解这5个指令的功能和配置&#xff0c;请参考另一篇文章 Nginx(三) 配置文件详解 由于文章篇幅较长&#xff0c;所以我就先把结论贴出来&#xff0c…...

八大学习方法(金字塔模型、费曼学习法、布鲁姆学习模型)

在微博上看到博主发的&#xff0c;觉得总结很好&#xff0c;在此摘录&#xff1a;...

K8S的基础知识

K8S的意义与入门 专有名词 容器:包含了运行一个应用程序所需要的所有东西,包括:代码、运行时、各种依赖和配置。pod:K8s调度的最小单元,包含一个或多个容器。一个容器组中的容器具有紧密耦合性,共享资源,存储空间和IP。即同一个容器组中的容器可以通过localhost:xxx访问…...

java:基于jjwt写一个jwt工具类

背景 在Java中&#xff0c;使用JWT&#xff08;JSON Web Tokens&#xff09;相关的包通常包括以下内容&#xff1a; jjwt&#xff1a;JJWT是一个非常流行的Java JWT库&#xff0c;它提供了简单易用的API来创建和验证JWT。jose4j&#xff1a;JOSE4J是一个用于处理JSON Web签名…...

AK F.*ing leetcode 流浪计划之半平面求交

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 本期话题&#xff1a;半平面求交 背景知识 学习资料 视频讲解 https://www.bilibili.com/video/BV1jL411C7Ct/?spm_id_from333.1007.top_right_bar_window_history…...

docker搭建zokeeper集群、kafka集群

三台机器&#xff0c;ip分别为ip1,ip2,ip3 一、安装docker集群 1、三台机器分别拉取镜像 docker pull wurstmeister/zookeeper 2、三台机器分别运行容器 &#xff08;1&#xff09;第一台 docker run -d --restartalways --log-driver json-file --log-opt max-size100m --lo…...

提升Python编码效率:ptpython语法高亮与自动补全的终极指南

提升Python编码效率&#xff1a;ptpython语法高亮与自动补全的终极指南 【免费下载链接】ptpython A better Python REPL 项目地址: https://gitcode.com/gh_mirrors/pt/ptpython ptpython是一款功能强大的Python REPL工具&#xff0c;它通过语法高亮、智能自动补全和丰…...

告别重复劳动:用快马平台生成你的专属工作流自动化agent

今天想和大家分享一个提升工作效率的小技巧——用自动化agent框架处理那些重复又繁琐的工作流程。作为一个经常要组织会议的程序员&#xff0c;我发现自己每天要花大量时间做同样的事情&#xff1a;从聊天记录里提取会议信息、手动创建日历事件、再给参会人发邮件通知。直到发现…...

AFE模拟器设计实战:基于ADI系列芯片的ISOSPI菊花链通信仿真

1. ISOSPI菊花链通信的基础原理 在汽车和储能BMS系统中&#xff0c;电池管理芯片(AFE)之间的可靠通信至关重要。ADI公司的ADBMS系列和LTC系列芯片广泛采用ISOSPI(隔离SPI)菊花链拓扑结构&#xff0c;这种设计既能保证通信速率&#xff0c;又能实现高压隔离。我刚开始接触这个技…...

从收音机到WiFi:LC并联谐振电路在实际通信系统里是怎么用的?

从矿石收音机到5G基站&#xff1a;LC并联谐振电路的百年进化史 当你拧动老式收音机的调谐旋钮时&#xff0c;金属指针在刻度盘上滑过不同电台的频率标记&#xff0c;耳机里传来忽大忽小的静电噪声&#xff0c;直到某个瞬间——声音突然清晰起来。这个看似简单的动作背后&#x…...

Qwen3.5-9B保姆级教程:从Conda环境到Gradio WebUI完整部署

Qwen3.5-9B保姆级教程&#xff1a;从Conda环境到Gradio WebUI完整部署 1. 项目概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;具备强大的逻辑推理、代码生成和多轮对话能力。该模型特别之处在于支持多模态理解&#xff08;图文输入&#xff09;和超长上下文…...

OpenClaw技能开发入门:为Qwen3-14b_int4_awq扩展自定义功能

OpenClaw技能开发入门&#xff1a;为Qwen3-14b_int4_awq扩展自定义功能 1. 为什么需要自定义技能&#xff1f; 去年冬天&#xff0c;我花了整整两周时间手动整理公司项目的技术文档。每天重复着复制、粘贴、格式调整的机械操作&#xff0c;直到偶然发现OpenClaw这个开源自动化…...

告别手动逐个校验,用快马快速构建vmware密钥批量验证工具提升效率

告别手动逐个校验&#xff0c;用快马快速构建vmware密钥批量验证工具提升效率 最近在帮朋友处理一批VMware16的密钥验证工作&#xff0c;发现手动逐个检查不仅耗时耗力&#xff0c;还容易出错。特别是当需要验证几十甚至上百个密钥时&#xff0c;这种重复劳动简直让人崩溃。于…...

3个高效步骤解决猫抓扩展资源嗅探故障

3个高效步骤解决猫抓扩展资源嗅探故障 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓&#xff08;Cat Catch&#xff09;作为一款浏览器资源嗅…...

基于YOLOv8深度学习的蘑菇毒性检测系统(YOLOv8+YOLO数据集+UI界面+Python项目源码+模型)

一、项目介绍 摘要 随着人们对于野生菌菇膳食兴趣的增加以及户外采摘活动的普及&#xff0c;误食有毒蘑菇的事件频发&#xff0c;对公众健康构成了严重威胁。传统的蘑菇种类鉴别高度依赖专家的形态学经验&#xff0c;普通爱好者难以准确掌握&#xff0c;且现有识别应用在应对…...

零代码!用Qwen-Image-2512-ComfyUI轻松制作中文电商配图与营销素材

零代码&#xff01;用Qwen-Image-2512-ComfyUI轻松制作中文电商配图与营销素材 1. 为什么选择Qwen-Image-2512-ComfyUI 电商运营和内容创作者经常面临一个共同难题&#xff1a;如何快速制作高质量的中文营销素材。传统设计工具需要专业技能&#xff0c;而普通AI绘画工具又难以…...