OceanBase数据库部署安装与快速使用OceanBase数据库
快速上手
本指南以单机OceanBase数据库部署安装为例指导您如何快速使用OceanBase数据库。
前提条件
在安装 OceanBase 数据库之前,确保您的机器可以连接公网。并且您的软硬件环境满足以下要求:
注意:以下内容以 x86 架构的 CentOS Linux 7.2 镜像作为环境,其他环境可能略有不同。
步骤 1:下载安装 OBD
获取 OceanBase 数据库最快的方式是使用数据库部署工具 OceanBase Deployer(简称 OBD),因此推荐您使用此方式体验 OceanBase 数据库。按照以下步骤下载并安装 OBD:
方案1:通过 YUM 软件源安装 OBD
如您的机器可以访问公网,并能够添加三方 YUM 软件源,您可以运行以下命令,使用 OceanBase 的官方软件源安装 OBD:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
sudo yum install -y ob-deploy
方案2:离线安装
1. 下载 OBD 离线 RPM 安装包。
2. 运行以下命令安装 OBD。
yum install -y ob-deploy-1.0.0-1.el7.x86_64.rpm
source /etc/profile.d/obd.sh
步骤 2:下载 OceanBase 数据库(可选)
如果您的机器可以连接公网,则直接跳过此步骤。因为在您执行了 obd cluster deploy 命令时,OBD 将检查您的目标机器是否已存在 OceanBase 数据库软件包。如未找到,OBD 将自动从 YUM 源获取。
如果您的机器不能连接公网,按照以下步骤下载 OceanBase 数据库的离线软件包:
1. 运行以下命令,下载 OceanBase 数据库的离线软件包:
# 创建一个目录用于下载
# 创建一个目录用于下载
mkdir rpm
cat > rpm_list <<EOF
oceanbase-ce-3.1.0-1.el7.x86_64.rpm
oceanbase-ce-libs-3.1.0-1.el7.x86_64.rpm
obproxy-3.1.0-1.el7.x86_64.rpm
EOF
wget -B https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/ -i rpm_list -P rpm
2. 运行以下命令,将软件包拷贝到您的中控机器:
scp -r rpm <user>@<your-machine-ip>
3. 在中控机器运行以下命令,将 OceanBase 数据库的离线软件包加入本地镜像:
cd ~/rpm
obd mirror clone *.rpm
步骤 3:OceanBase数据库部署安装
本节介绍如何使用 OBD 部署 OceanBase 数据库。按照以下步骤部署 OceanBase 数据库:
1. 从 Gitee/Github 上下载对应的配置文件模板。
如果您采用本地安装,即中控机器和目标机器是同一台机器,请下载本地安装配置文件。
如果您采用单机安装,即中控机器和目标机器不是同一台机器,且目标机器只有一台,请下载单机安装配置文件。
如果您采用分布式安装,即中控机器和目标机器不是同一台机器,且目标机器有多台,请下载分布式安装配置文件。
注意:此处以本地安装为例,介绍如何修改配置文件。您必须按照您的安装方式选择对应的配置文件模板。
2. 如您的中控机器和目标机器不是同一台,您还需要在配置文件顶部添加远程 SSH 访问的相关配置。
user:
username: <您的账号名>
password: <您的登录密码>
key_file: <您的私钥路径>
其中,username 为登录到目标机器的用户名,确保您的用户名有 home_path 权限。
注意:通常情况下,您只能使用登录密码或者私钥连登录中的一种方式目标机器,如果同时填写,password 将被认为是您私钥的密码。
3. 修改配置文件中的 IP 地址(可选)。
oceanbase-ce:
servers:
- name: z1
# Please don’t use hostname, only IP can be supported
ip: 11.166.80.01
4.修改配置文件中的 devname 变量和 home_path。
oceanbase-ce:
global:
home_path: <your_observer_work_path>
# Please set devname as the network adaptor’s name whose ip is inthe setting of severs.
# if set severs as "127.0.0.1", please set devname as "lo"
# if current ip is 192.168.1.10, and the ip’s network adaptor’sname is "eth0", please use "eth0"
devname: bond0
步骤 4:启动 OceanBase 数据库
按照以下步骤部署并启动 OceanBase 数据库实例:
1.运行以下命令部署集群:
obd cluster deploy <deploy_name> -c <deploy_config_path>
其中,deploy_name 为集群名称。一个集群只能有一个名称,且集群名称不能重复。
2.运行以下命令启动集群:
obd cluster start <deploy_name>
3.运行以下命令查看集群状态:
obd cluster display <deploy_name>
步骤 5:连接 OceanBase 数据库
按照以下步骤连接 OceanBase 数据库:
1.安装 OceanBase 数据库客户端 OBClient:
如您的机器已添加 OceanBase 官方 YUM 源作为软件源,使用以下命令直接安装:
sudo yum install -y obclient
否则您需要在机器上准备好离线安装包,并执行以下命令安装:
sudo yum install -y obclient-2.0.0-1.el7.x86_64.rpm
2. 运行以下命令,使用 OBClient 客户端连接 OceanBase 数据库:
obclient -h<your_ip> -P<observer_mysql_port> -uroot
其中,your_ip 为您 OceanBase 实例所在的机器 IP 地址。observer 默认使用端口 2883 连接 OBClient。如果您对端口做了更改,此处使用您实际的端口号。
返回以下信息:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3221546072
Server version: 5.7.25 OceanBase 3.1.0 (r1-) (Built Apr 7 2021 08:14:49)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
步骤 6:创建租户(可选)
OceanBase 数据库面向多租户设计。 在一个大集群中,您可以创建很多租户,不同的部门使用不同的租户。租户和租户之间资源已经进行了隔离,保障了相互之间访问不受影响,类似于数据库中的实例。
1、使用 root 账号登陆到 sys 租户中,使用 MySQL 或 OBClient 访问 OceanBase 数据库
obclient -hxxxx -uroot@sys -P2883 -pxxxxx -Doceanbase
2、查询系统资源占用情况
mysql> select svr_ip,svr_port, cpu_total, mem_total, disk_total, zone from __all_virtual_server_stat ;
+--------------+----------+-----------+--------------+---------------+-------+
| svr_ip | svr_port | cpu_total | mem_total | disk_total | zone |
+--------------+----------+-----------+--------------+---------------+-------+
| 172.31.122.2 | 33332 | 30 | 236223201280 | 1434105937920 | zone1 |
| 172.31.122.3 | 33332 | 30 | 236223201280 | 1434105937920 | zone2 |
| 172.31.122.1 | 33332 | 30 | 236223201280 | 1434105937920 | zone3 |
+--------------+----------+-----------+--------------+---------------+-------+
3、查询系统资源:分配情况
mysql> select sum(c.max_cpu), sum(c.max_memory) from __all_resource_pool as a, __all_unit_config as c where a.unit_config_id=c.unit_config_id;
+----------------+-------------------+
| sum(c.max_cpu) | sum(c.max_memory) |
+----------------+-------------------+
| 5 | 17179869184 |
+----------------+-------------------+
1 row in set (0.00 sec)
4、创建资源单元
如果想把剩下的所有资源全部使用掉,CPU 和内存分别为步骤 2 和步骤 3 得到的值。
CREATE RESOURCE UNIT unit1
max_cpu = 25,
max_memory = 219043332096,
min_memory = 219043332096,
max_iops = 10000,
min_iops = 1280,
max_session_num = 3000,
max_disk_size = 21474836480 -- 20GB
;
5、创建资源池
CREATE RESOURCE POOL pool1
UNIT = 'unit7',
UNIT_NUM = 1,
ZONE_LIST = ('zone1', 'zone2', 'zone3')
;
5.1、每个资源池在每个 OBServer 上只能有一个资源单元。如果 unit_num 大于1,每个 zone 内都必须有和 unit_num 对应数目的机器。
5.2、ZoneList 一般与 zone 个数保持一致。
5.3、如果在某个 zone 内找不到足够剩余资源的机器来创建资源单元,资源池会创建失败。
drop resource pool pool1;
6、创建租户
PrimaryZone:指定主副本分配到 Zone 内的优先级,逗号两侧优先级相同。分号左侧优先级高于右侧。比如 zone1>zone2=zone3。
CREATE TENANT IF NOT EXISTS test_tenant
charset='utf8mb4',
replica_num=3,
zone_list=('zone1','zone2','zone3'),
primary_zone='zone1;zone2,zone3',
resource_pool_list=('pool1')
;
7、登录租户之前,运行以下命令修改参数
alter tenant test_tenant set variables ob_tcp_invited_nodes='%'