OceanBase数据库oceanbase-ce的docker镜像中文说明

本文为OceanBase数据库oceanbase-ce的docker镜像的中文说明,原英文链接为:

oceanbase/oceanbase-ce - Docker Image | Docker Hub

如何使用 docker 部署 OceanBase

OceanBase 为 OceanBase 数据库提供了一个名为 oceanbase-ce 的独立测试镜像。默认情况下,该镜像部署的是MINI_MODE OceanBase 实例。

警告

  • oceanbase-ce docker 镜像仅用于研究或测试;
  • 如果您想在 k8s 中部署 oceanbase,请改用 oceanbase-operator;
  • 不应将其与重要数据一起部署,因为它不在生产环境中使用。

原因:

  1. 集群仅包含一个实例,因此没有容灾能力;
  2. 失败后恢复非常困难,因为 docker 容器无法启动,而 oceanbase 实例无法成功启动,这意味着您丢失了容器和数据;
  3. K8s 无法重启新 Pod,因为守护进程退出后容器仍然存在。

先决条件

部署 oceanbase-ce docker 前,请做好以下检查:

  • 确保您的机器有足够的资源可以执行至少 2 个物理核心和 8GB 内存。

  • 您的计算机已安装以下应用程序:

    应用 推荐版本 文档
    Docker 最近的 Docker 文档
  • 您已在计算机上启动 Docker 服务。

启动OceanBase实例

要启动OceanBase实例,请执行以下命令:

# deploy mini instance
docker run -p 2881:2881 --name oceanbase-ce -d oceanbase/oceanbase-ce

# deploy an instance of the slim size according to the current container
docker run -p 2881:2881 --name oceanbase-ce -e MODE=slim -e OB_MEMORY_LIMIT=5G -v {init_sql_folder_path}:/root/boot/init.d -d oceanbase/oceanbase-ce

# deploy an instance of the largest size according to the current container
docker run -p 2881:2881 --name oceanbase-ce -e MODE=normal -d oceanbase/oceanbase-ce

# deploy a quick-start instance in any mode as desired to the current container
docker run -p 2881:2881 --name oceanbase-ce -e FASTBOOT=true -d oceanbase/oceanbase-ce

启动过程需要两到五分钟。若要确保引导过程成功,请运行以下命令:

$ docker logs oceanbase-ce | tail -1
boot success!

启动后,有一个 oceanbase 实例。无需密码即可通过root用户连接到oceanbase。

连接OceanBase实例

oceanbase-ce 镜像包含 obclient(OceanBase 数据库客户端)和默认连接脚本。ob-mysql

docker exec -it oceanbase-ce ob-mysql sys # Connect to sys tenant
docker exec -it oceanbase-ce ob-mysql root # Connect to the root account of a general tenant
docker exec -it oceanbase-ce ob-mysql test # Connect to the test account of a general tenant

您也可以执行此命令,通过本地 obclient 或 MySQL 客户端连接 OceanBase 实例。

mysql -uroot -h127.1 -P2881

支持的环境变量

下表显示了当前 oceanbase-ce 镜像版本支持的环境变量:

变量名称 默认值 描述
MODE {mini, slim, normal} 如果是mini,则docker使用mini模式部署OceanBase数据库实例,仅用于研究/学习/评估。请勿将其用于生产或性能测试。如果是slim,那么 docker 可以在较小的实例中运行。它删除了 obagent,并可以在挂载卷 /root/boot/init.d 中自行运行自租户初始 sql。如果不挂载卷路径,则 docker 不会初始化租户 sql。
FASTBOOT false 当 FASTBOOT=true 时,容器可以在快速启动模式下运行。
EXIT_WHILE_ERROR true 是否在启动观察器失败时退出容器。如果启动观察器失败,则无法浏览日志,因为容器将退出。但是,如果设置 EXIT_WHILE_ERROR=false,则当 observer 启动失败时,容器不会退出,您可以使用 docker exec 进行调试。
OB_CLUSTER_NAME obcluster oceanbase 集群名称
OB_TENANT_NAME test oceanbase mysql 租户名称
OB_MEMORY_LIMIT 6G oceanbase 集群memory_limit配置
OB_DATAFILE_SIZE 5G oceanbase 集群datafile_size配置
OB_LOG_DISK_SIZE 5G Oceanbase 集群log_disk_size配置
OB_ROOT_PASSWORD sys租户的oceanbase root用户密码
OB_SYSTEM_MEMORY 1G Oceanbase 集群system_memory配置
OB_TENANT_MINI_CPU oceanbase 租户mini_cpu配置
OB_TENANT_MEMORY_SIZE oceanbase 租户memory_size配置
OB_TENANT_LOG_DISK_SIZE oceanbase 租户log_disk_size配置

运行 Sysbench 脚本

oceanbase-ce 镜像默认安装 Sysbench 工具。并配置了 Sysbench 工具。您可以按顺序运行这些命令,以使用默认配置运行 Sysbench 脚本。

docker exec -it oceanbase-ce obd test sysbench obcluster

挂载体积

如果要持久化容器的数据,可以使用 docker 命令中的参数 -v /your/host/path:/container/path 将数据保存在主机操作系统中。

下面是一个示例。

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

请注意,您应该使用自己的路径。

oceanbase-ce镜像将数据保存到 /root/ob 默认目录。您应该同时绑定 /root/ob 和 /root/.obd。如果只绑定 /root/ob 目录,则无法启动新的 docker 镜像,因为 docker 镜像 oceanbase-ce 使用 obd 来管理数据库集群,并且新建的 docker 容器中没有关于数据库集群的信息。

您可以用docker -v来查看有关 docker 卷的更多信息。

为独立节点快速构建启动映像

docker_build.sh脚本在tools/docker/standalone目录中提供,通过该目录可以构建快速启动映像。在运行脚本之前,请先修改tools/docker/standalone/boot/_env环境配置脚本:

  • 可选:修改其余配置项

修改完成后,执行镜像构建脚本:

  • 使用最新的 Oceanbase 版本构建映像 ./docker_build.sh
  • 使用特定的 oceanbase 版本构建映像。例如 ./docker_build.sh 4.2.1.0-100000102023092807

等待构建完成后,您可以按照上述相同方式启动和测试实例。

故障诊断

提供了一系列诊断方法,用于诊断Docker中的错误。

支持“enable_rich_error_msg”参数

  • 最初,在 Docker 启动过程中默认启用“enable_rich_error_msg”参数。如果在启动过程中发生错误,可以使用 trace 命令获取更多错误信息。启动成功后,Docker 会将该参数设置为 false 状态。
  • 用户可以在运行阶段打开该参数,获取更多有关SQL语句的错误信息。打开它的方法是使用系统租户连接到 Docker 的 oceanbase,然后执行以下命令:
alter system set enable_rich_error_msg = true;

相关推荐

  1. OceanBase数据库oceanbase-cedocker镜像中文

    2024-04-10 18:16:06       16 阅读
  2. docker 创建oceanbase数据库

    2024-04-10 18:16:06       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-10 18:16:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-10 18:16:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-10 18:16:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-10 18:16:06       20 阅读

热门阅读

  1. Apache POI

    2024-04-10 18:16:06       14 阅读
  2. 瑞芯微RK3568调试Android 11的各种方法

    2024-04-10 18:16:06       17 阅读
  3. python-pytorch使用日志0.5.007

    2024-04-10 18:16:06       12 阅读
  4. Android 应用启动过程

    2024-04-10 18:16:06       13 阅读
  5. ITIL教程:打造高效的IT服务管理体系

    2024-04-10 18:16:06       15 阅读
  6. Composer 超简教程(附离线文档)

    2024-04-10 18:16:06       19 阅读
  7. PHP获取路径或目录或当前文件名

    2024-04-10 18:16:06       15 阅读
  8. 【检查合法的出栈序列】

    2024-04-10 18:16:06       13 阅读
  9. ADS1299模拟前端(AFE)代替料LHE7909

    2024-04-10 18:16:06       18 阅读
  10. hive metatool 使用说明

    2024-04-10 18:16:06       15 阅读
  11. 计算机笔记(5)续20个

    2024-04-10 18:16:06       16 阅读