广州天河区网站设计公司,网站网址怎么做二维码,司瓦图网站,网站ui升级怎么做手动备份
参考官网#xff1a;Backup and Restore | ClickHouse Docs 简单来说#xff0c;就是我们可以通过ALTER TABLE ... FREEZE PARTITION ...命令为表分区创建一个本地副本#xff0c;然后这个副本硬链接到/var/lib/clickhouse/shadow/文件夹#xff0c;因此其不会耗…手动备份
参考官网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/执行attachecho alter table t_order_mt attach partition 20200601 | clickhouse-client查看数据 clickhouse-backup
clickhouse的自动化备份工具下载地址https://github.com/AlexAkulov/clickhouse-backup/
首先上传并安装rpmsudo 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 参数备份或还原特定表。也可以使用一个正则表达式例如针对特定的数据库--tabledbname.* 其他注意事项
1API 文档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 均表示不删除