oceanbase/oceanbase-ce

By oceanbase

Updated 9 days ago

OceanBase is an open-source, distributed HTAP database management system.

Image
Databases & storage
35

500K+

oceanbase/oceanbase-ce repository overview

Deploy OceanBase with Docker

Introduction

The oceanbase-ce Docker image, available on dockerhub, quay.io and ghcr.io, is designed for users to quickly set up an OceanBase environment for testing purposes.

Key Considerations:
  • This image is intended for testing only; do not use it in production environments.
  • The image supports the setup of a single-instance cluster only.
  • This image is not designed for Kubernetes. For running containerized OceanBase on Kubernetes, refer to the ob-operator repository.

Prerequisites

Before deploying oceanbase-ce, ensure that the following requirements are met:

  • The host machine should have at least 2 physical cores and 8GB of memory.
  • Docker should be installed and running on the host machine. Refer to the Docker installation guide.

Starting an OceanBase Instance

To start an OceanBase instance, use one of the following docker run commands:

# Deploy a mini mode instance
docker run -p 2881:2881 --name oceanbase-ce -d oceanbase/oceanbase-ce

# Deploy an instance to utilize the full resource of the container
docker run -p 2881:2881 --name oceanbase-ce -e MODE=normal -d oceanbase/oceanbase-ce

# Deploy an instance using fastboot mode
docker run -p 2881:2881 --name oceanbase-ce -e MODE=slim -d oceanbase/oceanbase-ce

# Execute init SQL scripts after bootstrap, do not change root user's password in SQL scripts.
# If you'd like to change root user's password, use variable OB_TENANT_PASSWORD.
docker run -p 2881:2881 --name oceanbase-ce -v {init_sql_folder_path}:/root/boot/init.d -d oceanbase/oceanbase-ce

The bootstrap procedure may take up to five minutes. Verify the bootstrap completion by running:

docker logs oceanbase-ce | tail -1

Expected output:

boot success!

Connecting to OceanBase Instance

Note:

  • Users created in the instance via script use empty passwords by default.
  • The default general non-sys tenant is 'test', so 'root@test' is used as the username.

For local connections using obclient or mysql client:

mysql -h127.0.0.1 -P2881 -uroot       # Connect with the root account of sys tenant
mysql -h127.0.0.1 -P2881 -uroot@test  # Connect with the root account of a general tenant

Supported Environment Variables

Below is a table of supported environment variables for the image:

Variable nameDefault valueDescription
MODE{mini, slim, normal}mini indicates that the container will use the least amount of resource
normal indicates that the container will use as much as possible of the container resource
slim indicates that the container will only start observer using fastboot mode, the tenant is named as test, tenant and resource configurations will not take effect.
EXIT_WHILE_ERRORtrueWhether quit the container when failed to start observer. if you set EXIT_WHILE_ERROR=false, the container will not exit and you can use log into the container for debugging.
OB_CLUSTER_NAMEobclusterThe oceanbase cluster name
OB_TENANT_NAMEtestThe oceanbase mysql tenant name
OB_MEMORY_LIMIT6GThe oceanbase cluster memory_limit configuration
OB_DATAFILE_SIZE5GThe oceanbase cluster datafile_size configuration
OB_LOG_DISK_SIZE5GThe oceanbase cluster log_disk_size configuration
OB_SYS_PASSWORDThe oceanbase root user password of sys tenant
OB_TENANT_PASSWORDThe oceanbase root user password of mysql tenant
OB_SYSTEM_MEMORY1GThe oceanbase cluster system_memory configuration
OB_TENANT_MINI_CPUThe oceanbase tenant mini_cpu configuration
OB_TENANT_MEMORY_SIZEThe oceanbase tenant memory_size configuration
OB_TENANT_LOG_DISK_SIZEThe oceanbase tenant log_disk_size configuration

Running Sysbench Script

The oceanbase-ce image includes the sysbench tool for benchmarking. Use the following command to run a sysbench test:

docker exec -it oceanbase-ce obd test sysbench obcluster

Data Persistence

By default, oceanbase-ce deploys OceanBase under /root/ob and saves its configurations under /root/.obd/cluster. Use the following command to persist data on the host:

mkdir -p ob
mkdir -p obd/cluster
docker run -d -p 2881:2881 -v $PWD/ob:/root/ob -v $PWD/obd/cluster:/root/.obd/cluster --name oceanbase oceanbase/oceanbase-ce

Fault Diagnosis

The enable_rich_error_msg parameter is enabled by default during Docker startup. If an error occurs, you can obtain detailed error information using the trace command.

Tag summary

Content type

Image

Digest

sha256:eaa2c3b35

Size

483.5 MB

Last updated

9 days ago

docker pull oceanbase/oceanbase-ce