官方网址:

https://altinity.com/blog/introduction-to-clickhouse-backups-and-clickhouse-backup

GitHub地址:

https://github.com/AlexAkulov/clickhouse-backup

Limitations

  • ClickHouse above 1.1.54390 is supported
  • Only MergeTree family tables engines
  • Backup of 'Tiered storage' or storage_policy IS NOT SUPPORTED!
  • Maximum backup size on cloud storages is 5TB
  • Maximum number of parts on AWS S3 is 10,000 (increase part_size if your database is more than 1TB)

一、下载安装

wget https://github.com/AlexAkulov/clickhouse-backup/releases/download/v0.5.2/clickhouse-backup.tar.gz
tar -xf clickhouse-backup.tar.gz
cd clickhouse-backup/
sudo cp clickhouse-backup /usr/local/bin
clickhouse-backup -v

当前版本
https://github.com/AlexAkulov/clickhouse-backup/releases/tag/v0.6.0
可以直接下载rpm或者tar包

 

 

二、配置clickhouse-backup

最小配置

$ cat /etc/clickhouse-backup/config.yml
general:
  remote_storage: none

生成全配置

 clickhouse-backup default-config

查看clickhouse-backup帮助

$ clickhouse-backup help
NAME:
clickhouse-backup - Tool for easy backup of ClickHouse with cloud support
...
COMMANDS:
   tables          Print list of tables
   create          Create new backup
   upload          Upload backup to remote storage
   list            Print list of backups
   download        Download backup from remote storage
   restore         Create schema and restore data from backup
   delete          Delete specific backup
   default-config  Print default config
   freeze          Freeze tables
   clean           Remove data in 'shadow' folder
   server          Run API server
   help, h         Shows a list of commands or help for one command

三、使用clickhouse-backup

1、查看可备份的表

$ clickhouse-backup tables
default.events
system.metric_log   (ignored)
system.query_log    (ignored)
system.query_thread_log (ignored)
system.trace_log    (ignored)

2、创建备份

$ sudo clickhouse-backup create
2020/07/06 20:13:02 Create backup '2020-07-06T20-13-02'
2020/07/06 20:13:02 Freeze `default`.`events`
2020/07/06 20:13:02 Skip `system`.`metric_log`
2020/07/06 20:13:02 Skip `system`.`query_log`
2020/07/06 20:13:02 Skip `system`.`query_thread_log`
2020/07/06 20:13:02 Skip `system`.`trace_log`
2020/07/06 20:13:02 Copy metadata
2020/07/06 20:13:02   Done.
2020/07/06 20:13:02 Move shadow
2020/07/06 20:13:02   Done.

3、查看备份

$ sudo clickhouse-backup list
Local backups:
- '2020-07-06T20-13-02' (created at 06-07-2020 20:13:02)
clickhouse-backup如上所述,在内部尽可能使用硬链接。备份存储在中/var/lib/clickhouse/backup/BACKUPNAME
备份名称默认为时间戳,但是您可以选择使用–name标志指定备份名称。备份包含两个目录:一个“元数据”目录,
其中包含重新创建架构所需的DDL SQL语句;以及一个“影子”目录,其中包含作为
ALTER TABLE ... FREEZE操作结果的数据

4、数据还原

$ echo 'drop table events' | clickhouse-client

$ sudo clickhouse-backup restore 2020-07-06T20-13-02
2020/07/06 20:14:46 Create table `default`.`events`
2020/07/06 20:14:46 Prepare data for restoring `default`.`events`
2020/07/06 20:14:46 ALTER TABLE `default`.`events` ATTACH PART '202006_1_1_4'
2020/07/06 20:14:46 ALTER TABLE `default`.`events` ATTACH PART '202006_2_2_2'
2020/07/06 20:14:46 ALTER TABLE `default`.`events` ATTACH PART '202006_3_3_3'
2020/07/06 20:14:46 ALTER TABLE `default`.`events` ATTACH PART '202006_4_4_3'
2020/07/06 20:14:46 ALTER TABLE `default`.`events` ATTACH PART '202006_5_5_2'
2020/07/06 20:14:46 ALTER TABLE `default`.`events` ATTACH PART '202006_6_6_1'
restore 子命令自动模式和数据恢复。如果只想还原架构,请使用可选--schema标志。或者,如果只想还原数据(假设架构已存在),则可以使用该--data标志。后一种情况在还原到已经具有现有数据的服务器时特别有用。

5、备份指定表与数据库

另一个有用的功能是支持使用大多数命令(例如创建和还原)指定表模式。--table参数允许您备份(或还原)特定表。你也可以使用一个正则表达式,例如,针对特定的数据库:--table=dbname.*

6、备份到远程机器

略,查看官网

 

原创内容,转载请标明出处

 posted on 2020-10-12 14:29  xibuhaohao  阅读(4746)  评论(0编辑  收藏  举报