This topic describes how to upgrade a single-node ODC.
Stop ODC of the earlier version
When upgrading OceanBase Developer Center (ODC) deployed in single-node mode, you need to stop running ODC of the earlier version after you update the MetaDB.
Run the
docker ps -astatement in the command line tool of the host to view the running container. You can find the container ID of ODC of the earlier version in theIMAGEcolumn (image name). The ID is the corresponding value in theCONTAINER IDcolumn. Execution result: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 obodcAfter you obtain the container ID, run the
docker stop <CONTAINER ID>;command in the command-line tool to stop the ODC container of the earlier version. Execution result:C:\Users\ob>docker stop 8bfecbc1cd03 8bfecbc1cd03Run the
docker rm <CONTAINER ID>;command in the command-line tool to delete the ODC image of the earlier version and release the port occupied. Execution result:C:\Users\ob>docker rm 8bfecbc1cd03 8bfecbc1cd03
Backup the Meta Database
Notice
Before upgrading, please back up the Meta Database. The backed-up Meta Database can be used to roll back the ODC version in case of an upgrade failure.
Example: Create ~/odcmetadb_backup as the backup file path for the Meta Database and back up the ODC Meta Database.
#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
Note
For a description of the parameters used for backup, please refer to the OBDUMPER command line options.
Load and run an ODC image
When you upgrade OceanBase Developer Center (ODC) deployed in single-node mode, you need to obtain and run the ODC image again after you update the MetaDB and stop the ODC container of the earlier version.
Load the image
Notice
- The images of ODC V4.2.0 and later versions have been published to Docker Hub. If your local device running ODC can access Docker Hub, you can directly start ODC Docker without downloading the image. For details, see the Running Image content below.
- If Docker Hub cannot be accessed directly, you still need to download and load the image file.
To obtain the ODC image on the host, select the required image from the
Maintenance Tools of the OceanBase Download Center.After you obtain the image, run the following command in the command-line tool to load it:
gunzip -c obodc-{$version}.tar.gz docker load
Run the image
Execute the following sample statement in the command-line tool to run the image:
#!/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=db_user@tenant_name#cluster_name" \
-e "DATABASE_PASSWORD=******" \
-e "DATABASE_NAME=odc_metadb" \
-e "ODC_PROFILE_MODE=alipay" \
-e "ODC_ADMIN_INITIAL_PASSWORD=******" \
oceanbase/odc:4.2.2
The following table describes parameters used in the preceding sample statement.
| Parameter | Description |
|---|---|
| -v |
|
| --net | The network configuration of the Docker container. If you set this parameter to host, the host network is directly used. You can also use the --publish (-p) parameter to configure port mapping. However, the Docker container may fail to start in some circumstances due to incorrect DNS resolution in the Docker container. In this case, run the --net host command to start the Docker container. |
| --cpu-period --cpu-quota | * The ---cpu-period parameter specifies the interval at which the CPU cores of the Docker container are reallocated. Unit: microseconds. * The ---cpu-quota parameter specifies the maximum time for running the current Docker container in this interval. Unit: microseconds. You can use these two parameters in combination to specify the number of CPU cores that the Docker container uses. The value is calculated by dividing cpu-quota by cpu-period. In the preceding sample statement, the values of cpu-quota and cpu-period are respectively 400000 and 100000, indicating that the Docker container can use at most four CPU cores. |
| --memory | The maximum memory size for the Docker container. |
| --name | The name of the container. |
| DATABASE_HOST | The IP address of the MetaDB. |
| DATABASE_PORT | The port number of the MetaDB. |
| DATABASE_USERNAME | The username of the MetaDB. In OceanBase Database, the username is given in the db_user@tenant_name#cluster_name format. |
| DATABASE_PASSWORD | The password for connecting to the database. |
| DATABASE_NAME | The name of the MetaDB. |
| ODC_PROFILE_MODE | The mode. Default value: alipay. |
| ODC_ADMIN_INITIAL_PASSWORD | Specify the initial password of the ODC administrator account.
Notice |
In addition to the preceding parameters, you can also use the following parameters when running the image.
| Parameter | Description |
|---|---|
| ODC_LOG_DIR | The log directory. Default value: /opt/odc/log. |
| ODC_JVM_HEAP_OPTIONS | The JVM memory configuration. Default value: -XX:MaxRAMPercentage=60.0 -XX:InitialRAMPercentage=60.0, indicating that 60% of the memory is used, and the JVM memory can be customized by specifying the parameter ODC_JVM_HEAP_OPTIONS. Example: -Xmx2048m -Xms2048m, indicating that the heap memory is set to 2G. |
| ODC_JVM_GC_OPTIONS | The garbage collection (GC) strategy for JVM. Default value: -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 | The OutOfMemory strategy for JVM. Default value: -XX:+ExitOnOutOfMemoryError. |
| ODC_JVM_EXTRA_OPTIONS | Other JVM parameters. By default, no parameter is specified. |
| ODC_SERVER_PORT | The HTTP listening port for ODC-Server. Default value: 8989. |
| ODC_HOST | The IP address of ODC, which can be used as the destination IP address for remote procedure calls in high-availability deployment scenarios. |
| ODC_MAPPING_PORT | |
| The port number of the ODC runtime to avoid the problem that the port number cannot be used due to the deployment environment. This parameter is suitable for port mapping when deploying ODC in Docker. | |
| ODC_APP_EXTRA_ARGS | Other App parameters need to be specified. For example, --server.servlet.session.timeout=10m, indicating that the Session period is 10 minutes. The default value is empty. |