clickhouse-backup备份说明

一只会飞的鱼儿 3月前 ⋅ 334 阅读
ad

下面对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: ""

​

关于Webfunny

Webfunny专注于前端监控系统,前端埋点系统的研发。 致力于帮助开发者快速定位问题,帮助企业用数据驱动业务,实现业务数据的快速增长。支持H5/Web/PC前端、微信小程序、支付宝小程序、UniApp和Taro等跨平台框架。实时监控前端网页、前端数据分析、错误统计分析监控和BUG预警,第一时间报警,快速修复BUG!支持私有化部署,Docker容器化部署,可支持千万级PV的日活量!

  点赞 0   收藏 0
  • 一只会飞的鱼儿
    共发布51篇文章 获得8个收藏
全部评论: 0