1. 程式人生 > 實用技巧 >ClickHouse 備份恢復工具:CLICKHOUSE-BACKUP

ClickHouse 備份恢復工具:CLICKHOUSE-BACKUP

官方網址:

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' orstorage_policyIS 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、備份到遠端機器

略,檢視官網

原創內容,轉載請標明出處