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

略,查看官網

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM