Operation Tool

February 22, 2024 · View on GitHub

Overview

OpenMLDB provides an operation tool for user to use & maintain OpenMLDB conveniently. It contains the following ability:

  • Recover data automatically: recoverdata
  • Balance partitions when scale-out: scaleout
  • Migrate partitions from specified endpoints to others when scale-in: scalein
  • Pre-upgrade and post-upgrade for tablet upgrade: pre-upgrade and post-upgrade
  • Check op status: showopstatus
  • Check table status: showtablestatus

Usage

Common parameters

  • --openmldb_bin_path: specify openmldb binary path
  • --zk_cluster: zookeeper address
  • --zk_root_path: zookeeper path
  • --cmd: the operation to execute

Operations

OperationFunctionExtra Parameters
recoverdatarecover all tables-
scaleoutrebalance partitions among tablets-
scaleinmigrate partitions from specified endpoints to others. If the number of remaining tablets is smaller than the max replicanum, it will fail--endpoints: the endpoints that are migrated from, multiple endpoints are delimited by ,
pre-upgradetablet pre-upgrade, which will migrate all the leader partitions to other tablets to reduce the influence on the online service. If there is only one replica for a partition, we will create an extra one which will be deleted automatically during post-upgrade. All the changes will be recorded in statfile--endpoints: the endpoints that are upgraded, only one endpoint is allowed
--statfile:the temporary file to record the leader change information, which defaults to .stat
post-upgradetablet post-upgrade, which will revert all the changes recorded in statfile--endpoints: the endpoints that are upgraded, only one endpoint is allowed
--statfile:the temporary file to record the leader change information, which defaults to .stat
showopstatuscheck the op status--filter: only show the records with status filter. Valid statuses are kInited, kDoing, kDone, kFailed and kCanceled.Its default is None, meaning showing all the records
showtablestatuscheck the table status--filter: the required database pattern. Its matching rule is the same as LIKE op. Its default is '%',meaning showing the tables under all the databases

Example

python tools/openmldb_ops.py --openmldb_bin_path=./bin/openmldb --zk_cluster=0.0.0.0:2181 --zk_root_path=/openmldb --cmd=scaleout
python tools/openmldb_ops.py --openmldb_bin_path=./bin/openmldb --zk_cluster=0.0.0.0:2181 --zk_root_path=/openmldb --cmd=recoverdata

You can focus on whether there are ERROR-level logs in the running results. If there are, please keep the complete log records for technical personnel to investigate the issue.

System Requirements

  • python >= 2.7
  • Note: In theory, openmldb_ops does not require version matching. A higher version of openmldb_ops can operate on a lower version of the openmldb cluster.
  • showopstatus and showtablestatus require prettytable dependency