安装前准备

硬件要求

CPU最少2核

磁盘最少19G

文件系统EXT4 戓 XFS

关闭透明大页

echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled

确认操作系统版本是否支持

[root@innodb-cluster01 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)

清除缓存

echo 3 > /proc/sys/vm/drop_caches

设置ssh互信(执行下面的脚本)

#!/usr/bin/bash

SERVERS=("root@innodb-cluster01" "root@innodb-cluster02" "root@innodb-cluster03")	#修改为自己的"用户名@主机名/ip"
PASSWORD="******" #输入用户的密码
keygen() {
sudo yum -y install expect
expect -c "
spawn ssh-keygen -t rsa
expect {
*(~/.ssh/id_rsa):* { send -- \r;exp_continue}
*(y/n)* { send -- y\r;exp_continue}
*Enter* { send -- \r;exp_continue}
*(y/n)* { send -- y\r;exp_continue}
*Enter* { send -- \r;exp_continue}
eof {exit 0}
}
expect eof
"
}
copy(){
expect -c "
set timeout -1
spawn ssh-copy-id $1
expect {
*(yes/no)* { send -- yes\r; exp_continue }
*password:* { send -- $PASSWORD\r; exp_continue}
eof {exit 0}
}
expect eof
"
}
ssh_copy_id_to_all(){
keygen ;
for host in ${SERVERS[@]}
do
copy $host
done
}
ssh_copy_id_to_all

配置ntp

配置ulimit.conf

#vi /etc/sysctl.conf

# for oceanbase
## 修改内核异步 I/O 限制
fs.aio-max-nr=1048576 ## 网络优化
net.core.somaxconn = 2048
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216 net.ipv4.ip_local_port_range = 3500 65535
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_slow_start_after_idle=0 vm.swappiness = 0
vm.min_free_kbytes = 2097152
fs.file-max = 6573688 # 修改进程可以拥有的虚拟内存区域数量
vm.max_map_count = 655360 # 此处为 OceanBase 数据库的 data 目录
kernel.core_pattern = /data/ob/core-%e-%p-%t #sysctl -p

规划磁盘

mkdir -p /data/ob/{data,redo,oceanbase}
data #数据盘
redo #事务日志盘
oceanbase #数据库安装盘

部署阶段

离线部署all-in-one

tar -xzf oceanbase-all-in-one-4.2.2.0-100010012024022719.el7.x86_64.tar.gz
cd oceanbase-all-in-one/bin
./install.sh
source ~/.oceanbase-all-in-one/bin/env.sh

使用OBD网页部署

obd web
start OBD WEB in 0.0.0.0:8680
please open http://192.168.56.20:8680

打开网页

选择OceanBase及配套工具

配置集群名称,选择需要部署的组件.

配置Zone信息、组件节点信息、部署用户信息、软件目录信息.

配置数据库信息,安装目录和端口信息.

安装前检查

安装完成

OCP Express安装失败,不影响数据库使用.

安装后的操作

根据安装页面上的信息登录数据库

[root@innodb-cluster01 ob]# obclient -h192.168.56.20 -P2883 -uroot -p'YW7cqUk{HO-9-Z' -Doceanbase -A
Welcome to the OceanBase. Commands end with ; or \g.
Your OceanBase connection id is 1049236
Server version: OceanBase_CE 4.2.2.0 (r100010012024022719-c984fe7cb7a4cef85a40323a0d073f0c9b7b8235) (Built Feb 27 2024 19:20:54) Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. obclient [oceanbase]>

资源配置

查看已有的资源规格

USE oceanbase;
obclient [oceanbase]> SELECT * FROM oceanbase.DBA_OB_UNIT_CONFIGS;
+----------------+-----------------+----------------------------+----------------------------+---------+---------+-------------+---------------+---------------------+---------------------+-------------+
| UNIT_CONFIG_ID | NAME | CREATE_TIME | MODIFY_TIME | MAX_CPU | MIN_CPU | MEMORY_SIZE | LOG_DISK_SIZE | MAX_IOPS | MIN_IOPS | IOPS_WEIGHT |
+----------------+-----------------+----------------------------+----------------------------+---------+---------+-------------+---------------+---------------------+---------------------+-------------+
| 1 | sys_unit_config | 2024-03-09 12:26:54.055433 | 2024-03-09 12:26:54.055433 | 3 | 3 | 1073741824 | 2147483648 | 9223372036854775807 | 9223372036854775807 | 3 |
| 1001 | ocp_unit | 2024-03-09 12:28:51.502812 | 2024-03-09 12:28:51.502812 | 1 | 1 | 2147483648 | 6442450944 | 9223372036854775807 | 9223372036854775807 | 1 |
+----------------+-----------------+----------------------------+----------------------------+---------+---------+-------------+---------------+---------------------+---------------------+-------------+
2 rows in set (0.001 sec)

创建资源规格

CREATE RESOURCE UNIT S1_unit_config
MEMORY_SIZE = '3G',
MAX_CPU = 1, MIN_CPU = 1,
LOG_DISK_SIZE = '2G',
MAX_IOPS = 10000, MIN_IOPS = 10000, IOPS_WEIGHT=1;

资源池配置

查看资源池信息

USE oceanbase;
obclient [oceanbase]> SELECT * FROM oceanbase.DBA_OB_RESOURCE_POOLS;
+------------------+----------+-----------+----------------------------+----------------------------+------------+----------------+-----------+--------------+
| RESOURCE_POOL_ID | NAME | TENANT_ID | CREATE_TIME | MODIFY_TIME | UNIT_COUNT | UNIT_CONFIG_ID | ZONE_LIST | REPLICA_TYPE |
+------------------+----------+-----------+----------------------------+----------------------------+------------+----------------+-----------+--------------+
| 1 | sys_pool | 1 | 2024-03-09 12:26:54.064822 | 2024-03-09 12:26:54.085847 | 1 | 1 | zone1 | FULL |
| 1001 | ocp_pool | NULL | 2024-03-09 12:28:51.534729 | 2024-03-09 12:29:32.778672 | 3 | 1001 | zone1 | FULL |
+------------------+----------+-----------+----------------------------+----------------------------+------------+----------------+-----------+--------------+
2 rows in set (0.007 sec)

创建资源池

CREATE RESOURCE POOL mq_pool_01
UNIT='S1_unit_config',
UNIT_NUM=1;

租户配置

查看租户信息

obclient [oceanbase]> SELECT * FROM oceanbase.DBA_OB_TENANTS;
+-----------+-------------+-------------+----------------------------+----------------------------+--------------+---------------+-------------------+--------------------+--------+---------------+--------+-------------+-------------------+------------------+----------+----------------+--------------+--------------------+--------------+----------------------------+----------+------------+-----------+
| TENANT_ID | TENANT_NAME | TENANT_TYPE | CREATE_TIME | MODIFY_TIME | PRIMARY_ZONE | LOCALITY | PREVIOUS_LOCALITY | COMPATIBILITY_MODE | STATUS | IN_RECYCLEBIN | LOCKED | TENANT_ROLE | SWITCHOVER_STATUS | SWITCHOVER_EPOCH | SYNC_SCN | REPLAYABLE_SCN | READABLE_SCN | RECOVERY_UNTIL_SCN | LOG_MODE | ARBITRATION_SERVICE_STATUS | UNIT_NUM | COMPATIBLE | MAX_LS_ID |
+-----------+-------------+-------------+----------------------------+----------------------------+--------------+---------------+-------------------+--------------------+--------+---------------+--------+-------------+-------------------+------------------+----------+----------------+--------------+--------------------+--------------+----------------------------+----------+------------+-----------+
| 1 | sys | SYS | 2024-03-09 12:26:54.115187 | 2024-03-09 12:26:54.115187 | RANDOM | FULL{1}@zone1 | NULL | MYSQL | NORMAL | NO | NO | PRIMARY | NORMAL | 0 | NULL | NULL | NULL | NULL | NOARCHIVELOG | DISABLED | 1 | 4.2.2.0 | 1 |
+-----------+-------------+-------------+----------------------------+----------------------------+--------------+---------------+-------------------+--------------------+--------+---------------+--------+-------------+-------------------+------------------+----------+----------------+--------------+--------------------+--------------+----------------------------+----------+------------+-----------+
1 row in set (0.073 sec)

创建租户

obclient [oceanbase]> CREATE TENANT IF NOT EXISTS mq_t1
-> PRIMARY_ZONE='zone1',
-> RESOURCE_POOL_LIST=('mq_pool_01')
-> set OB_TCP_INVITED_NODES='%';
Query OK, 0 rows affected (1 min 5.974 sec)

使用新租户进入数据库

[root@innodb-cluster01 security]# obclient -P2883 -h192.168.56.20 -uroot@mq_t1 -A
Welcome to the OceanBase. Commands end with ; or \g.
Your OceanBase connection id is 4
Server version: OceanBase_CE 4.2.2.0 (r100010012024022719-c984fe7cb7a4cef85a40323a0d073f0c9b7b8235) (Built Feb 27 2024 19:20:54) Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. obclient [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| oceanbase |
| test |
+--------------------+
4 rows in set (0.005 sec)

创建数据库

obclient [(none)]> create database db1;
Query OK, 1 row affected (0.115 sec)

创建表

obclient [db1]>  create table t1(co1 int,co2 int);
Query OK, 0 rows affected (0.466 sec)

参考文档:

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000510451

总结

  • 安装过程中OCP报错,目前没有找到原因,OCP是使用网页管理数据库的工具,暂时不影响命令行使用数据库.

多节点oceanbase 集群部署的更多相关文章

  1. rancher三节点k8s集群部署例子

    rancher三节点k8s集群部署例子 待办 https://rorschachchan.github.io/2019/07/25/使用Rancher2-1部署k8s/

  2. ActiveMQ的单节点和集群部署

    平安寿险消息队列用的是ActiveMQ. 单节点部署: 下载解压后,直接cd到bin目录,用activemq start命令就可启动activemq服务端了. ActiveMQ默认采用61616端口提 ...

  3. 多节点bigchaindb集群部署

    文章比较的长,安装下来大概4个小时左右,我个人使用的服务器,速度会快一点. 安装环境 ostname ip os node-admin 192.168.237.130 ubuntu 18.04.2 d ...

  4. OceanBase数据库实践入门——手动搭建OceanBase集群

    前言 目前有关OceanBase功能.案例.故事的文章已经很多,对OceanBase感兴趣的朋友都想安装一个数据库试试.本文就是分享初学者如何手动搭建一个OceanBase集群.这也是学习理解Ocea ...

  5. 2、Redis 底层原理:Cluster 集群部署与详解

    Redis 简介 Redis 提供数据缓存服务,内部数据都存在内存中,所以访问速度非常快. 早期,Redis 单应用服务亦能满足企业的需求.之后,业务量的上升,单机的读写能力满足不了业务的需求,技术上 ...

  6. 浅入深出ETCD之【集群部署与golang客户端使用】

    前言 之前说了etcd的简介,命令行使用,一些基本原理.这次来说说现实一点的集群部署和golang版本的客户端使用.因为在实际使用过程中,etcd的节点肯定是需要2N+1个进行部署的,所以有必要说明一 ...

  7. RocketMQ的高可用集群部署

    RocketMQ的高可用集群部署 标签(空格分隔): 消息队列 部署 1. RocketMQ 集群物理部署结构 Rocket 物理部署结构 Name Server: 单点,供Producer和Cons ...

  8. Windows下ELK环境搭建(单机多节点集群部署)

    1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...

  9. Hadoop分布式集群部署(单namenode节点)

    Hadoop分布式集群部署 系统系统环境: OS: CentOS 6.8 内存:2G CPU:1核 Software:jdk-8u151-linux-x64.rpm hadoop-2.7.4.tar. ...

  10. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...

随机推荐

  1. C# 和 SQL Server中 PadLeft和PadRight 的用法

    C# 中 PadLeft和PadRight 的用法 需求:需要一个字符串实现自增.是根据数据库中一个自增的int类型的值,实现自增的.但是要加上前缀.比如,数据库中有一个自增的值,为,2.那么这个自增 ...

  2. nodejs安装和环境配置

    nodejs安装和环境配置 1.下载安装node.js 官方下载地址: https://nodejs.org/en/ 下载LTS版本(长期稳定版本) 安装可以更改安装路径(我的更改是D:\Progra ...

  3. 《前端运维》一、Linux基础--08Shell其他及补充

    这一篇,我们来学习一些重要的命令,在工作中也会经常用到. 一.简单正则 要注意的是,有些命令不支持正则模式,比如fs.find等,有些是支持正则的,比如grep.awk.sed等.正则的语法和js中的 ...

  4. docker安装Nginx并运行vue3前端

    Docker安装Nginx #获取Nginx docker pull nginx #查端口 netstat -ntlp #建本地目录 mkdir -p /home/nginx/www /home/ng ...

  5. 创建LVM报错:Can't initialize physical volume "/dev/sdb1" of volume group "myvg" without -ff

    问题: 在使用fdisk /dev/sdb 删除原有LVM分区,在接着创建LVM新分区/dev/sdb1.完毕保存之后. 执行pvcreate /dev/sdb1出现报错 Can't initiali ...

  6. Web前端常见的英文缩写

    PV (Page View)页面浏览量 FED(Front-End Development)前端开发 F2E(Front-End Engineer)前端工程师 WWW(World Wide Web)万 ...

  7. Qt/C++最新地图组件发布/历时半年重构/同时支持各种地图内核/包括百度高德腾讯天地图

    一.前言说明 最近花了半年时间,专门重构了整个地图组件,之前写的比较粗糙,有点为了完成功能而做的,没有考虑太多拓展性和易用性.这套地图自检这几年大量的实际项目和用户使用下来,反馈了不少很好的建议和意见 ...

  8. Qt编写视频监控系统71-外网访问摄像头等设备(获取各种信息及拉流)

    一.前言 最近遇到个需求是通过外网接入摄像机或者NVR,通用的做法是将视频流推流到服务器,然后拉取rtmp视频流,这样就多了服务器的要求,而且实现的功能有限比如不能直接用onvif协议对设备获取信息和 ...

  9. [转]VS2019生成项目文件.lib或.dll或exe后如何拷贝到指定的目录文件夹

    VS2019编译CloudCompare,发现生成的项目文件都是分开的,每个项目下都有自己的文件夹Debug/Release,生成Dll都放在这些单独的项目文件夹内. 目标 (1)通常,我们要求所有的 ...

  10. ubuntu18.04安装g2o

    先对g2o的依赖库进行安装: sudo apt-get update sudo apt-get install libeigen3-dev sudo apt-get install libsuites ...