clickhouse-backup安装和启动
第一步:拉取clickhouse-backup镜像
docker pull alexakulov/clickhouse-backup:1.4.7
第二步:新增/work/clickhouse-backup/config/config.yml配置文件
general:
remote_storage: none # 可选none/sftp none-未开启sftp远程连接,sftp-上传/下载备份文件
backups_to_keep_local: 10 #本地备份个数
backups_to_keep_remote: 10 #远程备份个数
clickhouse:
username: default
password: ""
host: localhost
port: 9000
disk_mapping: {}
timeout: 5m
freeze_by_part: false
secure: false
skip_verify: false
sync_replicated_tables: false
log_sql_queries: true
config_dir: /etc/clickhouse-server/
restart_command: systemctl restart clickhouse-server
ignore_not_exists_error_during_freeze: true
tls_key: ""
tls_cert: ""
tls_ca: ""
debug: false
sftp:
address: ""
port: 22
username: "root"
password: ""
key: ""
path: "/work/clickhouse/data/backup/" # 上传文件到远程服务器的路径
compression_format: tar
compression_level: 1
第三步:配置docker-compose.yml:
version: '3.6'
services:
clickhouse-backup:
container_name: clickhouse-backup
image: alexakulov/clickhouse-backup:1.4.2
volumes:
- /work/clickhouse/data:/var/lib/clickhouse #/work/clickhouse/data为备份的clickhouse中/var/lib/clickhouse映射的文件夹
- /work/clickhouse-backup/config/config.yml:/etc/clickhouse-backup/config.yml
第四步:启动clickhouse-backup
docker-compose -f docker-compose.yml run --rm clickhouse-backup
出现如下界面表示启动成功
clickhouse-backup常用指令总结
#查看所有备份
docker-compose -f docker-compose.yml run --rm clickhouse-backup list
#查看可备份表
docker-compose -f docker-compose.yml run --rm clickhouse-backup tables
#添加备份
docker-compose -f docker-compose.yml run --rm clickhouse-backup create -t 库名.表名 本地备份名
#添加指定一个分区的备份
docker-compose -f docker-compose.yml run --rm clickhouse-backup create -t 库名.表名 --partitions 分区1(如20200101) 本地备份名
#添加指定多个分区的备份
docker-compose -f docker-compose.yml run --rm clickhouse-backup create -t 库名.表名 --partitions 分区1 --partitions 分区2 备份名
#删除备份
docker-compose -f docker-compose.yml run --rm clickhouse-backup delete local/remote 备份名
#恢复备份(仅结构)
docker-compose -f docker-compose.yml run --rm clickhouse-backup restore 本地备份名 --schema
#恢复备份(仅数据,只添加)
docker-compose -f docker-compose.yml run --rm clickhouse-backup restore 本地备份名 --data
#恢复备份(结构+数据)
docker-compose -f docker-compose.yml run --rm clickhouse-backup restore 本地备份名 --data --schema
clickhouse-backup异机备份
方法一:将备份/work/clickhouse/backup/下对应备份名的文件传至另一台服务器,可直接使用restore指令恢复备份
方法二:开启sftp
1、备份上传至远程服务器
docker-compose -f docker-compose.yml run --rm clickhouse-backup upload 本地备份名
此时远程服务器上出现remote的同名备份
2、远程服务器下载备份
docker-compose -f docker-compose.yml run --rm clickhouse-backup download 远程备份名
此时远程服务器上出现local和remote的同名备份
3、使用restore指令恢复备份