diff --git a/docs/en/maintain/index.rst b/docs/en/maintain/index.rst index 63559e97efe..c852c52f2d6 100644 --- a/docs/en/maintain/index.rst +++ b/docs/en/maintain/index.rst @@ -4,6 +4,5 @@ Maintenance .. toctree:: :maxdepth: 1 - cli - + upgrade \ No newline at end of file diff --git a/docs/en/maintain/upgrade.md b/docs/en/maintain/upgrade.md new file mode 100644 index 00000000000..8ae0e130d16 --- /dev/null +++ b/docs/en/maintain/upgrade.md @@ -0,0 +1,60 @@ +# Upgrade + +Here is the impact when upgrading OpenMLDB: +* If the created table is a single copy, it is not readable and writable during the upgrade process +* If the created table is multi-replica, the read request on the upgraded node will fail briefly, and the write request will have a small amount of data loss.If short read failures are not tolerated, execute offlineendpoint before stopping each tablet node. If a small amount of write loss cannot be tolerated, write operations need to be stopped during the upgrade process + +## 1. Upgrade Nameserver + +* Stop nameserver + ```bash + sh bin/start.sh stop nameserver + ``` +* Backup the old versions directories `bin` and `conf` +* Download new version bin and conf +* Compare the configuration file diff and modify the necessary configuration, such as endpoint, zk_cluster, etc +* Start nameserver + ```bash + sh bin/start.sh start nameserver + ``` +* Repeat the above steps for the remaining nameservers + +## 2. Upgrade Tablets + +### 2.1. Steps of Upgrading Tablets + +* Stop tablet + ```bash + sh bin/start.sh stop tablet + ``` +* Backup the old versions directories `bin` and `conf` +* Download new version bin and conf +* Compare the configuration file diff and modify the necessary configuration, such as endpoint, zk_cluster, etc +* Start nameserver + ```bash + sh bin/start.sh start tablet + ``` +* If auto_failover is closed, you must connect to the ns client and perform the following operations to restore data. **The endpoint after the command is the endpoint of the restarted node** + * offlineendpoint endpoint + * recoverendpoint endpoint + +``` +$ ./bin/openmldb --zk_cluster=172.27.128.31:8090,172.27.128.32:8090,172.27.128.33:8090 --zk_root_path=/openmldb_cluster --role=ns_client +> offlineendpoint 172.27.128.32:8541 +offline endpoint ok +> recoverendpoint 172.27.128.32:8541 +recover endpoint ok +``` + +### 2.2. Confirmation of Upgrade Result +* `showopstatus` command checks whether all operations are `kDone`, and if there is a `kFailed` task, check the log to troubleshoot the cause +* `showtable` to see if the status of all partitions is yes + +After a tablet node is upgraded, repeat the above steps for other tablets. \(**You must wait until the data is synchronized before upgrading the next node**\) + +After all nodes are upgraded, resume write operations, and run the showtable command to check whether the master-slave offset has increased + +## 3. Upgrade the Java Client + +* Update the java client version number in the pom file +* Update dependencies