首批通过分布式安全可靠测评,为关键业务系统打造
升级单节点 ODC
更新时间:2026-04-13 15:30:53
停运旧版本 ODC
升级单节点部署的 ODC 应用时,完成更新元数据库后,需要首先停止运行旧版本的 ODC。
在宿主机的命令行工具中运行
docker ps -a语句查看正在运行的容器,通过IMAGE列(镜像名称)可以定位到旧版本 ODC 容器的 ID,即对应容器CONTAINER ID列的值。运行结果如下所示: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获得容器 ID 后继续在命令行工具中运行
docker stop <CONTAINER ID>;语句以停止运行旧版本 ODC 的容器。运行结果如下所示:C:\Users\ob>docker stop 8bfecbc1cd03 8bfecbc1cd03在命令行工具中运行
docker rm <CONTAINER ID>;删除旧版本 ODC 镜像以释放旧版本镜像占用的端口。运行结果如下所示:C:\Users\ob>docker rm 8bfecbc1cd03 8bfecbc1cd03
备份元数据库
注意
升级前,请备份元数据库。备份的元数据库可用于升级失败时回滚 ODC 版本。
示例:创建 ~/odcmetadb_backup 为元数据库备份文件路径,并备份 ODC 元数据库。
#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 命令行选项。
加载和运行 ODC 镜像
升级单节点部署的 OceanBase 开发者中心(OceanBase Developer Center,ODC)应用时,在完成元数据库的更新和停运旧版本 ODC 容器后,需重新拉取和运行 ODC 的镜像。
加载镜像
注意
- ODC V4.2.0 及之后的版本的镜像已同时发布到 Docker Hub,如果运行 ODC 的机器可以访问 Docker Hub,则无需下载镜像,可以直接启动 ODC Docker,具体请参见下述 运行镜像 内容。
- 如果无法直接访问 Docker Hub,则仍需下载和加载镜像文件。
在 OceanBase 软件下载中心 的 运维工具 栏,按需下载 ODC 镜像。
获得镜像文件后,在宿主机的命令行工具中运行下述语句加载镜像:
gunzip -c obodc-{$version}.tar.gz | docker load
运行镜像
在宿主机上获得 ODC 镜像后,在命令行工具中运行镜像的示例语句如下所示:
#!/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 |
|
| --net | 指定容器的网络配置,指定该参数值为 host 即直接使用宿主机网络。 您也可以使用 --publish(-p)参数配置端口映射,但是部分环境可能出现因为 Docker 内 DNS 解析出错而启动容器失败,此时请使用 --net host 方式启动 Docker。 默认端口号:8989。 |
| --cpu-period --cpu-quota | ---cpu-period 用来指定容器对 CPU 的使用要在多长时间内做一次重新分配。单位:微秒。---cpu-quota 用来指定在这个周期内,最多可以有多少时间用来运行当前容器。单位:微秒。 |
| --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)的初始密码。
注意设置的初始密码需要须满足以下条件:
|
除上述参数外,运行镜像时您还可以根据需求使用下述参数:
| 参数 | 说明 |
|---|---|
| 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 分钟。默认值:空。 |