首批通过分布式安全可靠测评,为关键业务系统打造
清理旧集群
更新时间:2026-05-26 20:07:07
如果你的机器上曾经部署过 OceanBase 集群,并且现在想重新部署一个新的 OceanBase 集群,请在部署新集群之前先清理旧的集群。
本文分几种场景进行介绍,您可根据自身集群情况选择合适的场景参考。
清理旧集群建议
在清理旧的集群环境之前,建议您先进行数据备份。这样可以确保数据的完整性和安全性,确保您在将来可能需要时拥有数据的副本,以便进行还原或迁移。
有关 OceanBase 集群数据备份相关信息,请参见 备份前准备。
场景一:使用命令行部署的 OceanBase 集群
若您机器中的集群是通过命令行手动部署,可参考本节内容进行清理。
步骤一:停止和卸载服务
停止旧 observer 进程,并确保它们不再运行。然后,卸载相关的数据库软件。步骤如下:
注意
在停止 observer 进程之后,将会导致 OceanBase 数据库无法使用。因此,在执行以下操作之前,请再次确认集群已经不再使用,并且需要备份的数据已经完成备份。请谨慎操作,以免造成数据丢失或系统不可用的情况。
使用以下命令查看 observer 进程是否存在。
ps -ef|grep observer(可选)停止 observer 进程。
如果您的机器存在 observer 进程,请使用以下命令停止旧 observer 进程:
kill -9 `pidof observer`使用以下命令查看已安装的 OceanBase 数据库 RPM 包名称。
rpm -qa|grep oceanbase使用以下命令卸载安装的 OceanBase 数据库 RPM 包。
sudo rpm -e $rpm_name其中,
$rpm_name是要卸载的软件包的名称。可以使用以下命令查看 RPM 包是否卸载完成。
rpm -ql $rpm_name重复步骤 1~4,直至停止和卸载所有 OBServer 节点中的服务。
步骤二:数据库文件清理
删除旧的数据库文件,包括数据文件、日志文件和其他临时文件。
注意
以下删除操作是不可逆的,即删除后的文件和目录将无法恢复。因此执行以下命令前,请确认要删除的目录下数据已不再使用。
使用以下命令删除 observer 进程运行日志盘文件。
sudo rm -rf /home/admin/oceanbase/*使用以下命令删除 observer 进程日志盘文件。
sudo rm -rf /data/log1/*使用以下命令删除 observer 进程数据盘文件。
sudo rm -rf /data/1/*重复步骤 1~3,直至删除所有 OBServer 节点中旧数据库文件。
场景二:使用 obd 部署的 OceanBase 集群
若您机器中的集群是通过 obd 命令部署,可参考本节内容进行清理。
查看集群状态。
obd cluster list输出如下,详细的状态介绍可参见 obd cluster list。
+---------------------------------------------------------+ | Cluster List | +------+--------------------------------+-----------------+ | Name | Configuration Path | Status (Cached) | +------+--------------------------------+-----------------+ | test | /home/admin/.obd/cluster/test | running | | demo | /home/admin/.obd/cluster/demo | running | +------+--------------------------------+-----------------+查看是否存在备租户。
此处以 test 集群为例介绍进行操作,您需根据实际情况修改集群名。
obd cluster tenant show test -g输出如下,表示不存在备租户,且集群中仅有 sys 租户。若集群中的租户存在备租户,其输出内容和字段含义的详细介绍可参见 创建备租户。
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | tenant base info | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ | tenant_name | tenant_type | compatibility_mode | primary_zone | max_cpu | min_cpu | memory_size | max_iops | min_iops | log_disk_size | iops_weight | tenant_role | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+ | sys | SYS | MYSQL | RANDOM | 3.0 | 3.0 | 1024M | 9223372036854775807 | 9223372036854775807 | 2048M | 3 | PRIMARY | +-------------+-------------+--------------------+--------------+---------+---------+-------------+---------------------+---------------------+---------------+-------------+-------------+(可选)主备租户解耦。
若集群中的租户存在备租户,销毁集群时会报错,此时可以选择为主备租户解耦,也可以选择强制执行销毁命令,集群销毁后备租户将无法使用。您可根据实际场景选择是否执行本步骤。
主备租户解耦详细操作可参见 主备租户解耦。
销毁集群。
注意
obd cluster destroy命令不可逆,会在停止 observer 进程的同时清除数据库文件。因此执行以下命令前,请先确认集群已经不再使用,并且需要备份的数据已经完成备份。此处以 test 集群为例介绍进行操作,您需根据实际情况修改集群名。
obd cluster destroy test -f [--igs]-f表示检查到工作目录下有运行中的进程时,会强制停止进程,销毁集群。--igs表示检查到集群中租户在其他集群中存在备租户时,强制执行obd cluster destroy命令。
场景三:使用 systemd 部署的 OceanBase 集群
若您机器中的集群是通过 systemd 部署,可参考本节内容进行清理。
停止 OceanBase 数据库
[admin@test001 ~]$ sudo systemctl stop oceanbase卸载 OceanBase 数据库
删除 OceanBase 数据库软件包
在线安装方式下,您可执行如下命令:
[admin@test001 ~]$ sudo yum erase packagepackage需替换为待删除的软件包名,您可通过yum list | grep oceanbase命令查看软件包名。离线安装方式下,您可执行如下命令:
[admin@test001 ~]$ sudo rpm -e packagepackage需替换为待删除的软件包名,您可通过rpm -qa | grep oceanbase命令查看软件包名。(可选)删除 OceanBase 数据库数据
说明
删除软件包后,您环境中的 OceanBase 数据库已被卸载,但是 OceanBase 数据库的数据还存在,若您之后重新部署 OceanBase 数据库,还可以查看和操作该 OceanBase 数据库的数据。执行本步骤删除 OceanBase 数据库数据后,您部署的 OceanBase 数据库将完全被卸载。因此执行以下命令前,请确认要删除的目录下数据已不再使用。
删除 OceanBase 数据库安装目录:
[admin@test001 ~]$ sudo rm -rf /home/admin/oceanbase删除 OceanBase 数据库数据目录:
[admin@test001 ~]$ sudo rm -rf /var/lib/oceanbase