使用clickhouse-backup备份Clickhouse时,只能备份结构、建表语句,不能备份表内数据
Linux操作系统CentOS
Clickhouse是部署在Docker中的,Clickhouse-backup是安装在另一台服务器上(非Clickhouse-Docker的宿主机)。
将Clickhouse-backup部署到Clickhouse所在的宿主机服务器上,还是备份不到数据。
查过源代码,怀疑是Clickhouse-backup在创建备份数据冻结表后,使用的是Clickhouse的Docker容器中的/var/lib/clickhouse/shadow目录下内容,从Docker容器外直接备份取不到对应数据。
因为Clickhouse-backup的配置文件clickhouse部分有host和port配置项,一直以为clickhouse-backup是支持不在同一个服务器上备份的。
因此,
经过测试,可以确定,clickhouse和clickhouse-backup必须共用同一个/var/lib/clickhouse目录(这是默认的disk下default对应的路径,如果disk中default对应的path是其他值,这个目录也随之改变),所以这两个程序需要安装在同一个服务器上。如果这两个对应程序都是Docker容器运行,则需要将两个容器对应的目录映射到宿主机的同一个位置