ClickHouse 卸载与清理

clickhouse_ansible 已包含正式的清理剧本:playbooks/uninstall_cluster.yml。它适合演练完成后的环境回收,也适合反复重装前的清场。

1. 适用范围

  • 卸载源集群:inventory/hosts.deploy.ini
  • 卸载容灾集群:inventory/hosts.dr_deploy.ini

要求:

  • inventory 的 dbbot_inventory_purpose=deploy
  • 默认必须人工确认

2. 标准命令

卸载源集群:

cd /usr/local/dbbot/clickhouse_ansible/playbooks
ansible-playbook \
  -i ../inventory/hosts.deploy.ini \
  uninstall_cluster.yml

卸载容灾集群:

cd /usr/local/dbbot/clickhouse_ansible/playbooks
ansible-playbook \
  -i ../inventory/hosts.dr_deploy.ini \
  uninstall_cluster.yml

3. 默认会清理什么

文件:playbooks/vars/uninstall_config.yml

默认开启:

  • 停止并禁用 ClickHouse 服务
  • 删除 ClickHouse 配置目录
  • 删除 ClickHouse 数据目录
  • 删除 ClickHouse 日志目录
  • 删除快捷登录配置
  • 删除 ClickHouse 二进制
  • 删除独立 ZooKeeper(若当前模式使用 ZooKeeper)

默认关闭:

  • 卸载 /backup 挂载
  • 删除 NFS 客户端挂载脚本

也就是说,NFS 客户端挂载痕迹默认不会跟着一起清掉,避免误删共享备份盘。

4. 常用变量

变量默认值作用
uninstall_require_manual_confirmtrue卸载前是否要求确认
uninstall_purge_clickhouse_configtrue是否删除配置目录
uninstall_purge_clickhouse_datatrue是否删除数据目录
uninstall_purge_clickhouse_logstrue是否删除日志目录
uninstall_remove_clickhouse_binariestrue是否删除 ClickHouse 二进制
uninstall_remove_backup_mountfalse是否顺带卸载 /backup 并移除挂载脚本
uninstall_purge_zookeepertrue是否清理独立 ZooKeeper

5. 如果要连带清理 NFS 客户端挂载

cd /usr/local/dbbot/clickhouse_ansible/playbooks
ansible-playbook \
  -i ../inventory/hosts.deploy.ini \
  uninstall_cluster.yml \
  -e "uninstall_remove_backup_mount=true"

这会尝试:

  • 移除 rc.local 中的挂载入口
  • 卸载 /backup
  • 删除挂载脚本与日志

6. 注意事项

  1. 这是高风险清理动作,默认需要手工输入确认短语。
  2. 若目标主机还有其他业务依赖 /backup,不要直接打开 uninstall_remove_backup_mount=true
  3. 如果你的目标只是“重装 ClickHouse”,通常不需要同时清理 NFS 服务端。