ckman
ckman copied to clipboard
RFC:clickhouse离线备份功能整合至ckman
需求名称: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已经备份的文件列表。
- 低:表和库的可选择性备份和恢复。备份集群和恢复集群不一致的恢复功能。
写的不准确的地方,请见谅。
非常好的提议!目前ckman已经提供了将指定时间段的数据备份到HDFS的接口(接口已经有了,未做到界面上去)。其他的需求也很有参考意义,该需求可以放到roadmap中去。兄弟如果有兴趣的话,也可以向ckman提交PR。
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.