ckman icon indicating copy to clipboard operation
ckman copied to clipboard

RFC:clickhouse离线备份功能整合至ckman

Open yangtian9999 opened this issue 4 years ago • 2 comments

需求名称:clickhouse离线备份功能整合至ckman

需求原因:

  • 离线备份是作为ckman数据安全的补充功能。
  • 离线备份当前没有可视化界面的相关产品。
  • 离线备份可以作为数据库恢复,或数据导入的工具,集成到ckman
  • 离线备份是常见的各类数据库运维工具,属于运维刚需。

需求描述:

参考对象:https://github.com/AlexAkulov/clickhouse-backup,为数不多的官方推荐的离线备份工具。

需求简单说明:

  • 周期性备份功能:选择备份周期,进行离线备份,备份文件不允许本地,只能自动上传到S3或者HDFS(备份到远程后,自动删除本地的文件)。文件名字参考:备份名称+datatime+随机码。
  • 一次性备份功能:备份文件不允许本地,只能自动上传到S3或者HDFS(备份到远程后,自动删除本地的文件)。文件名字参考:备份名称+datatime+随机码。
  • 备份内容的选项: 单节点数据库:常规单体表的备份,包括数据和表结构。所有的表可以全选,可以勾选,可以搜索复选。 分布式多分片数据库:根据分片个数进行备份,包含数据和表结构。所有的表可以全选,可以勾选,可以搜索复选。可参考https://github.com/AlexAkulov/clickhouse-backup/blob/8567fc621c47e50c065ca9c65dcb979e15816e7d/Examples.md#how-to-backup-sharded-cluster-with-ansible
  • 历史备份内容查看,通过远程链接到S3或HDFS,列出已经备份好的文件夹、文件、上传时间等等。
  • 恢复功能:可用作新建数据库数据恢复,数据内容导入,自动化批量恢复表结构等等功能。 仅表结构恢复,仅表内容恢复,以及所有内容恢复。每次需要手动选择需要恢复的备份文件信息。minio需要实现查询到bucket下,备份所有的文件信息。 在集群数据库多分片的前提下,如果备份集群和恢复集群的分片数不一样,仅支持备份集群分片数小于等于恢复集群分片数的场景。

可参考的开发优先级

功能需求较多,可以考虑分阶段实现。

  • 高:全量的一次性和周期性备份功能,可先实现基于单体数据库,集群数据库所有分片的模式。
  • 中:表结构的恢复功能,单体数据库的数据恢复功能,单分片节点的数据恢复功能。远程S3或者HDFS已经备份的文件列表。
  • 低:表和库的可选择性备份和恢复。备份集群和恢复集群不一致的恢复功能。

写的不准确的地方,请见谅。

yangtian9999 avatar Dec 26 '21 05:12 yangtian9999

非常好的提议!目前ckman已经提供了将指定时间段的数据备份到HDFS的接口(接口已经有了,未做到界面上去)。其他的需求也很有参考意义,该需求可以放到roadmap中去。兄弟如果有兴趣的话,也可以向ckman提交PR。

YenchangChan avatar Dec 27 '21 11:12 YenchangChan

ClickHouse 2022将在备份还原方面有大动作。等等看。

Support for Backup and Restore

Backup of tables, databases, servers and clusters.
Incremental backups. Support for partial restore.
Support for pluggable backup storage options.

yuzhichang avatar Dec 29 '21 07:12 yuzhichang