ClickHouse 備份恢復工具:CLICKHOUSE-BACKUP
阿新 • • 發佈:2020-10-12
官方網址:
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
二、配置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、備份到遠端機器
略,檢視官網
原創內容,轉載請標明出處