---
title: "升级单节点 ODC - 开发者中心 ODC V4.3.4 | OceanBase 文档中心"
description: 升级单节点 ODC 停运旧版本 ODC 升级单节点部署的 ODC 应用时，完成更新元数据库后，需要首先停止运行旧版本的 ODC。 在宿主机的命令行工具中运行 docker ps -a 语句查看正在运行的容器，通过 IMAGE 列（镜像名称）可以定位到旧版本 ODC 容器的 ID，即对应容器 CONTAINER ID …
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*lqS5SYzz_YEAAAAAAAAAAAAADiGDAQ/original) 开发者中心 ODCV 4.3.4

# 升级单节点 ODC

更新时间：2026-04-13 15:30:53

[编辑](https://github.com/oceanbase/odc-doc/edit/V4.3.4/zh-CN/1200.upgrade-guide/300.upgrade-single-node-odc.md)  

## 停运旧版本 ODC

升级单节点部署的 ODC 应用时，完成更新元数据库后，需要首先停止运行旧版本的 ODC。

1. 在宿主机的命令行工具中运行 `docker ps -a` 语句查看正在运行的容器，通过 `IMAGE` 列（镜像名称）可以定位到旧版本 ODC 容器的 ID，即对应容器 `CONTAINER ID` 列的值。运行结果如下所示：

   ```javascript
   C:\Users\ob>docker ps -a
   CONTAINER ID        IMAGE                                      COMMAND                  CREATED             STATUS              PORTS                                      NAMES
   8bfecbc1cd03        acs-reg.alipay.com/oceanbase/obodc:2.0.1   "/bin/sh -c '/usr/bi..."   13 days ago         Up 13 days          80/tcp, 8080/tcp, x.x.x.x:8989->8989/tcp   obodc

   ```
 2. 获得容器 ID 后继续在命令行工具中运行 `docker stop <CONTAINER ID>;` 语句以停止运行旧版本 ODC 的容器。运行结果如下所示：

   ```javascript
   C:\Users\ob>docker stop 8bfecbc1cd03
   8bfecbc1cd03

   ```
 3. 在命令行工具中运行 `docker rm <CONTAINER ID>;` 删除旧版本 ODC 镜像以释放旧版本镜像占用的端口。运行结果如下所示：

   ```javascript
   C:\Users\ob>docker rm 8bfecbc1cd03
   8bfecbc1cd03

   ```

## 备份元数据库

#### 注意

升级前，请备份元数据库。备份的元数据库可用于升级失败时回滚 ODC 版本。

示例：创建 `~/odcmetadb_backup` 为元数据库备份文件路径，并备份 ODC 元数据库。

```shell
#create backup directory
mkdir -p ~/odcmetadb_backup

#backup odc metadb
./obdumper --thread 1 -h <host> -P <port> -u <username> -c <cluster_name> -t <tenant_name> -D <database_name> --ddl --csv --no-sys --all -f ~/odcmetadb_backup

```

#### 说明

备份使用的参数说明请参见 [OBDUMPER 命令行选项](https://www.oceanbase.com/docs/enterprise-oceanbase-dumper-loader-cn-1000000000076556)。

## 加载和运行 ODC 镜像

升级单节点部署的 OceanBase 开发者中心（OceanBase Developer Center，ODC）应用时，在完成元数据库的更新和停运旧版本 ODC 容器后，需重新拉取和运行 ODC 的镜像。

### 加载镜像

#### 注意

- ODC V4.2.0 及之后的版本的镜像已同时发布到 Docker Hub，如果运行 ODC 的机器可以访问 Docker Hub，则无需下载镜像，可以直接启动 ODC Docker，具体请参见下述 **运行镜像** 内容。
 - 如果无法直接访问 Docker Hub，则仍需下载和加载镜像文件。

1. 在 [OceanBase 软件下载中心](https://www.oceanbase.com/softwarecenter) 的 **运维工具** 栏，按需下载 ODC 镜像。
 2. 获得镜像文件后，在宿主机的命令行工具中运行下述语句加载镜像：

   ```javascript
   gunzip -c obodc-{$version}.tar.gz | docker load

   ```

### 运行镜像

在宿主机上获得 ODC 镜像后，在命令行工具中运行镜像的示例语句如下所示：

```javascript
#!/usr/bin/env bash
docker run -v /var/log/odc:/opt/odc/log -v /var/data/odc:/opt/odc/data \
-d -i --net host --cpu-period 100000 --cpu-quota 400000 --memory 8G --name "obodc" \
-e "DATABASE_HOST=xxx.xx.xx.xx" \
-e "DATABASE_PORT=60805" \
-e "DATABASE_USERNAME=[用户名]@[租户名称]#[集群名称]" \
-e "DATABASE_PASSWORD=******" \
-e "DATABASE_NAME=odc_metadb" \
-e "ODC_PROFILE_MODE=alipay" \
-e "ODC_ADMIN_INITIAL_PASSWORD=******" \
oceanbase/odc:4.2.2

```

#### 注意

Shell 环境下，字符串中包含 `!`、`$` 等特殊字符时，变量值需要使用单引号。例如：`DATABASE_PASSWORD='11111!'`。

参数说明如下表所示：

| 参数 | 说明 |
| --- | --- |
| -v | - 宿主机的 `/var/log/odc` 目录映射到 ODC 容器内的 `/opt/odc/log` 目录。 `/var/log/odc` 为宿主机的目录，如不存在需先创建，创建目录的参考命令 `mkdir -p /var/log/odc`。 - 宿主机的 `/var/data/odc` 目录挂载到 ODC 容器内的 `/opt/odc/data` 目录。`/var/data/odc` 为宿主机的目录，可自定义，如不存在需先创建，创建目录的参考命令 `mkdir -p /var/data/odc`。 |
| --net | 指定容器的网络配置，指定该参数值为 `host` 即直接使用宿主机网络。 您也可以使用 `--publish`（`-p`）参数配置端口映射，但是部分环境可能出现因为 Docker 内 DNS 解析出错而启动容器失败，此时请使用 `--net host` 方式启动 Docker。    默认端口号：8989。 |
| --cpu-period --cpu-quota | - `---cpu-period` 用来指定容器对 CPU 的使用要在多长时间内做一次重新分配。单位：微秒。 - `---cpu-quota` 用来指定在这个周期内，最多可以有多少时间用来运行当前容器。单位：微秒。  配合使用可指定容器使用的 CPU 核数。cpu-quota/cpu-period 的值即为 Docker 可以使用的 CPU 核数，示例语句中 400000/100000=4 表示最多可以使用 4 个核。 |
| --memory | 设置容器使用的内存最大值。 |
| --name | 指定容器名称。 |
| DATABASE_HOST | 元数据库 IP 地址。 |
| DATABASE_PORT | 元数据库端口号。   默认端口号：8989。 |
| DATABASE_USERNAME | 元数据库用户名。OceanBase 数据库用户名的格式：db_user@tenant_name#cluster_name。 |
| DATABASE_PASSWORD | 连接数据库的密码。 |
| DATABASE_NAME | 元数据库名。 |
| ODC_PROFILE_MODE | 指定模式。默认指定：`alipay`。 |
| ODC_ADMIN_INITIAL_PASSWORD | 指定 ODC 管理员账号（admin）的初始密码。   #### 注意    设置的初始密码需要须满足以下条件：    - 至少 2 个数字。 - 至少 2 个大写字母。 - 至少 2 个小写字母。 - 至少 2 个特殊字符，特殊字符的范围为 ._+@#$%。 - 不包含空格和其他特殊字符，长度为 8-32。 |

除上述参数外，运行镜像时您还可以根据需求使用下述参数：

| 参数 | 说明 |
| --- | --- |
| ODC_LOG_DIR | 指定日志目录。默认路径：`/opt/odc/log`。 |
| ODC_JVM_HEAP_OPTIONS | 指定 JVM 内存配置。默认值：`-XX:MaxRAMPercentage=60.0 -XX:InitialRAMPercentage=60.0`，表示使用 60% 的的内存，可通过指定参数 `ODC_JVM_HEAP_OPTIONS` 自定义 JVM 内存配置。例如：配置为 `-Xmx2048m -Xms2048m`，表示设置堆内存为 2G。 |
| ODC_JVM_GC_OPTIONS | 指定 JVM GC 策略。默认指定：`-XX:+UseG1GC -XX:+PrintAdaptiveSizePolicy -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:/opt/odc/log/gc.log -XX:+UseGCLogFileRotation -XX:GCLogFileSize=50M -XX:NumberOfGCLogFiles=5`。 |
| ODC_JVM_OOM_OPTIONS | 指定 JVM OutOfMemory 策略。默认指定：`-XX:+ExitOnOutOfMemoryError`。 |
| ODC_JVM_EXTRA_OPTIONS | 指定其它需要的 JVM 配置参数。默认值：空。 |
| ODC_SERVER_PORT | 指定 ODC-Server 的 HTTP 监听端口。默认值：8989。 |
| ODC_HOST | 指定 ODC 运行时的 IP 地址，该参数在高可用部署场景下做为远程过程调用的目的地址。 |
| ODC_MAPPING_PORT | 指定 ODC 运行时的端口号，避免因部署环境导致的端口号无法使用的问题。该参数适用于在 Docker 中部署 ODC 时进行端口映射的场景。 |
| ODC_APP_EXTRA_ARGS | 其它需要指定的 App 参数。    例如 `--server.servlet.session.timeout=10m`，表示 Session 过期时间为 10 分钟。默认值：空。 |

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
