官方網址:
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、備份到遠程機器
略,查看官網
原創內容,轉載請標明出處