欢迎来到魔幻小生的博客

OceanBase 数据库安装部署及使用

OceanBase是由蚂蚁集团完全自主研发的国产原生分布式数据库,本文以 x86 架构的 CentOS Linux 7.9 主机作为环境对该数据库的安装部署进行介绍。

背景

OceanBase 数据库自 V4.0.0 开始提供统一的安装包 all-in-one package。您可以通过这个统一的安装包一次性完成 OBD、OceanBase 数据库、ODP、OBAgent、Grafana、Prometheus 的安装,自 V4.1.0 起,all-in-one package 新增支持安装 OCP Express。您可以根据实际需求选择部分或全部组件安装。

安装 OceanBase

OceanBase下载中心 下载最新的 all-in-one package 安装包并上传至机器任一目录下。

image

执行如下命令解压安装包并安装:

tar -xzf oceanbase-all-in-one-*.tar.gz
cd oceanbase-all-in-one/bin/
./install.sh
source ~/.oceanbase-all-in-one/bin/env.sh

出现如下信息便安装完成了。

image

执行以下命令,快速部署 OceanBase 数据库(仅用于简单使用,不应用于生产)。obd demo 命令默认在当前家目录下以最小规格部署并启动 OceanBase 数据库及相关组件(包括 ODP、OBAgent、Grafana 和 Prometheus),固定部署名为 demo。

obd demo

image

此时数据库便可以使用了。可以查看一下数据库状态:

obd cluster list

image

连接数据库

OBClient 是 OceanBase 基于 MariaDB CLI 的官方 CLI,可用于连接 OceanBase Server/Proxy。一体包中已安装了 OBClient 可以直接使用。

# 通过 2881 端口直连数据库
obclient -h127.0.0.1 -P2881 -uroot@sys -Doceanbase -A
# 通过 ODP 代理访问数据库
obclient -h127.0.0.1 -P2883 -uroot@sys -Doceanbase -A --proxy-mode

image

大多数情况下不会使用 root 用户远程访问数据库,这里演示一下创建 demo 新用户,并使用 DBeaver 工具远程连接。

CREATE USER 'demo'@'%' IDENTIFIED BY '12345678';
GRANT ALL PRIVILEGES ON oceanbase.* TO 'demo'@'%';

image

obclient -h127.0.0.1 -P2881 -udemo -p12345678 -Doceanbase -A

image

使用 DBeaver 工具远程连接时类型选择 MySQL便可正常建立连接。

image

部署过程中常见问题记录

常见问题一

[ERROR] OBD-1007:(127.0.0.1) open files must not be less than 20000 (Current value: 1024)

可能会遇到“打开的文件不得小于 20000(当前值:1024)”的错误,需要修改 ulimits 配置。出于测试目的将限制增加到很大或无限制(在生产中根据实际情况修改)。

修改 /etc/security/limits.conf 文件,在后面添加:

* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited
* soft stack unlimited
* hard stack unlimited

要使配置生效,您需要注销会话并重新登录。之后,您可以通过运行以下命令来检查配置是否正确:

ulimit -a

常见问题二

[WARN] failed to start 127.0.0.1 obproxy
[ERROR] obproxy-ce start failed

具体原因未知,查询网上资料说要修改重试次数由默认的20改为200即可:

vim ~/.obd/plugins/obproxy-ce/3.1.0/start.py
vim ~/.obd/plugins/obproxy/3.2.1/start.py

# 两个文件均修改如下内容
stdio.start_loading('obproxy program health check')
failed = []
servers = cluster_config.servers
count = 200 # 默认值为20,需要修改为200
while servers and count:
	count -= 1
	tmp_servers = []

常见问题三

[WARN] OBD-1011: (127.0.0.1) The recommended value of fs.aio-max-nr is 1048576 (Current value: 65536)

错误原因:系统可用 aio 数量少于数据库需要的 aio 数量。需要修改 /proc/sys/fs/aio-max-nr 文件,执行如下命令:

echo 1048576 > /proc/sys/fs/aio-max-nr

常见问题四

[WARN] (127.0.0.1) clog and data use the same disk (/)

不建议安装目录和数据目录在同一目录,测试可以忽略,生产环境需要分开存放。

修改 ./oceanbase-all-in-one/conf/mini-local-example.yaml 文件

image

更多问题及解决方案可以去官网查看错误码:https://www.oceanbase.com/product/ob-deployer/error-codes

posted @ 2023-08-04 11:31  魔幻小生  阅读(2632)  评论(0编辑  收藏  举报