下面对clickhouse-backup的备份进行说明:
clickhouse-backup
是一个用于 ClickHouse 数据库备份和恢复的工具,它支持多种云和非云存储类型的备份。尽管 clickhouse-backup
主要设计用于在本地进行备份和恢复操作,但它可以通过将备份文件上传到远程存储服务来实现远程备份的目的。以下是使用 clickhouse-backup
实现远程备份的一般步骤:
1.安装 clickhouse-backup:确保你已经在 ClickHouse 服务器上安装了 clickhouse-backup
。你可以通过 GitHub 上的项目页面(https://github.com/Altinity/clickhouse-backup)获取最新的安装指南。
下载安装包
cd /server/tools
wget https://github.com/Altinity/clickhouse-backup/releases/download/v2.4.33/clickhouse-backup-linux-amd64.tar.gz
创建存放clickhouse-backup的目录,并解压
mkdir -pv /data/clickhouse-backup
tar xvf clickhouse-backup-linux-amd64.tar.gz -C /data/clickhouse-backup/
创建软连接
ln -sv /data/clickhouse-backup/build/linux/amd64/clickhouse-backup /usr/local/bin
测试clickhouse-backup命令
clickhouse-backup -v
创建配置文件
#注意:下面的配置文件是按本地标准来的,配置文件中默认data_path:"/var/lib/clickhouse",如果clickhouse-server存储数据的路径变了,这个地方也需要加上data_path
mkdir -p /etc/clickhouse-backup/
cd /etc/clickhouse-backup/
vim config.yml
general:
remote_storage: none
backups_to_keep_local: 7 # 本地备份保留个数,默认0表示不自动做备份清理
backups_to_keep_remote: 31 # 远程备份保留个数
clickhouse:
username: default
password: "XXXXXX"
host: localhost
port: 9000
#data_path: "/var/lib/clickhouse"
2.配置远程存储:根据你的远程存储类型(例如 Amazon S3、Google Cloud Storage、FTP、Azure Blob 等),在 clickhouse-backup
的配置文件中设置相应的凭证和连接信息。配置文件通常位于 /etc/clickhouse-backup/config.yml
,并且包含用于指定存储类型的设置。
3.创建备份:使用 clickhouse-backup
创建一个本地备份。例如,运行以下命令来创建一个全库备份:
clickhouse-backup create full_backup_name
4.上传备份到远程存储:使用 clickhouse-backup
提供的上传命令将创建的备份上传到远程存储。具体的命令格式取决于你的配置和所选的存储类型,一般形式可能是:
clickhouse-backup upload full_backup_name
这个命令会根据配置文件中的设置,将备份文件上传到指定的远程存储位置。
5.验证备份:在备份上传完成后,检查远程存储上是否成功接收到了备份文件,确保备份是完整且可访问的。
6.清理本地备份(可选):如果存储空间有限,你可能希望在成功上传备份后从本地删除备份,可以通过 clickhouse-backup remove
命令实现。
请注意,虽然 clickhouse-backup
支持多种存储类型,但在使用前务必确认你的 ClickHouse 服务器能够访问目标存储服务,并且已正确配置了必要的网络连接和认证信息。此外,定期检查备份的完整性以及备份策略的有效性对于灾难恢复计划至关重要。
clickhouse-backup备份操作命令如下:clickhouse-backup + 下面命令
print-config: 打印当前配置
default-config: 打印默认配置
create: 创建备份
create_remote: 创建备份,并上传到指定存储
restore:创建表结构,恢复数据
restore_remote: 下载备份文件,恢复数据
list:列出备份集
download:下载备份集
delete:删除备份集
server:启动服务。外部可以使用api方式发起备份、恢复任务。适合在容器化环境中使用。
clean: 清理备份
watch: 循环备份,创建完整+增量备份序列
操作命令:clickhouse-backup + 下面命令
print-config: 打印当前配置
default-config: 打印默认配置
create: 创建备份
create_remote: 创建备份,并上传到指定存储
restore:创建表结构,恢复数据
restore_remote: 下载备份文件,恢复数据
list:列出备份集
download:下载备份集
delete:删除备份集
server:启动服务。外部可以使用api方式发起备份、恢复任务。适合在容器化环境中使用。
clean: 清理备份
watch: 循环备份,创建完整+增量备份序列
完整的yml配置文件方式如下:参考配置地址(https://blog.csdn.net/dair6/article/details/122827302)
general:
remote_storage: sftp # 通过sftp,上传到远程服务器的话,需要这个参数,否则为none
max_file_size: 1099511627776
disable_progress_bar: false
backups_to_keep_local: 2 # 本地备份的个数,大于2则自动删除旧的备份,默认为0,不删除备份
backups_to_keep_remote: 2 # 远程备份的个数
log_level: info
allow_empty_backups: false
clickhouse:
username: default # 本地clickhouse的连接参数
password: ""
host: localhost
port: 9010
disk_mapping: {}
skip_tables:
- system.*
- db.*
- information_schema.*
- INFORMATION_SCHEMA.*
timeout: 5m
freeze_by_part: false
secure: false
skip_verify: false
sync_replicated_tables: true
skip_sync_replica_timeouts: true
log_sql_queries: false
s3:
access_key: ""
secret_key: ""
bucket: ""
endpoint: ""
region: us-east-1
acl: private
force_path_style: false
path: ""
disable_ssl: false
part_size: 536870912
compression_level: 1
compression_format: tar
sse: ""
disable_cert_verification: false
storage_class: STANDARD
gcs:
credentials_file: ""
credentials_json: ""
bucket: ""
path: ""
compression_level: 1
compression_format: tar
cos:
url: ""
timeout: 2m
secret_id: ""
secret_key: ""
path: ""
compression_format: tar
compression_level: 1
api:
listen: localhost:7171
enable_metrics: true
enable_pprof: false
username: ""
password: ""
secure: false
certificate_file: ""
private_key_file: ""
create_integration_tables: false
ftp:
address: ""
timeout: 2m
username: ""
password: ""
tls: false
path: ""
compression_format: tar
compression_level: 1
sftp:
address: "host"
port: 端口号
username: "用户名"
password: "密码"
key: ""
path: "/home/data_dev/clickhouse_backup" # 上传文件到远程服务器的路径
compression_format: tar
compression_level: 1
azblob:
endpoint_suffix: core.windows.net
account_name: ""
account_key: ""
sas: ""
container: ""
path: ""
compression_level: 1
compression_format: tar
sse_key: ""