Update single-node ODC

2024-11-07 09:35:33  Updated

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.

  1. Run the docker ps -a statement 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 the IMAGE column (image name). The ID is the corresponding value in the CONTAINER ID column. 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   obodc
    
  2. After 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
    8bfecbc1cd03
    
  3. Run 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.
  1. To obtain the ODC image on the host, select the required image from the Maintenance Tools of the OceanBase Download Center.

  2. 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
  • Maps the /var/log/odc directory of the host to the /opt/odc/log directory in the ODC container. If the /var/log/odc directory does not exist on the host, run the mkdir -p /var/log/odc command to create one.
  • Mounts the /var/data/odc directory of the host to the /opt/odc/data directory in the ODC container. If the /var/data/odc directory does not exist on the host, run the mkdir -p /var/data/odc command to create one.
--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
The initial password should contain at least 2 digits, 2 uppercase letters, 2 lowercase letters and 2 special characters (._+@#$%), with a length of 8~32 digits, and the password cannot contain spaces.

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.

Contact Us