手动部署 OceanBase 集群
-
- 手动部署一个 OB 单副本集群,包括一个 OBProxy 节点
- 部署环境
- 手动部署一个 OB 单副本集群,包括一个 OBProxy 节点
服务器信息
IP地址 | 192.168.0.26 |
网卡名 | ifcfg-enp1s0 |
OS | Kylin Linux Advanced Server release V10 |
CPU | 8C |
内存 | 32G |
磁盘1 | 本地盘 /data/1 |
磁盘2 | 本地盘 /data/log1 |
机器和角色划分
角色 | 机器 | 备注 |
OBPROXY | 192.168.0.26 | OceanBase反向代理访问 |
OBSERVER | 192.168.0.26 | OceanBase数据库 |
OBCLIENT | 192.168.0.26 | OceanBase命令行客户端 |
-
-
- 服务器初始化
-
执行OceanBase数据库软件部署前对服务器的相关初始化配置。
-
-
-
- 内核参数修改
-
-
vim /etc/sysctl.conf
kernel.sysrq=0
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.default.secure_redirects=0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_responses=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_syncookies = 0
kernel.dmesg_restrict=1
net.ipv6.conf.all.accept_redirects=0
net.ipv6.conf.default.accept_redirects=0
####################################################
# for oceanbase
net.core.somaxconn = 2048
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 16777216
让配置生效
sysctl -p
-
-
-
- 修改会话变量设置
-
-
vi /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
-
-
-
- 关闭防火墙
-
-
systemctl stop firewalld
systemctl disable firewalld
-
-
-
- 关闭SELinux
-
-
vi /etc/selinux/config
SELINUX=disabled
-
-
-
- 创建安装用户
-
-
# 新增普通用户 admin
useradd admin
# 改用户密码
passwd admin
# 配置用户admin sudo权限
vi /etc/sudoers
-
-
-
- 修改系统时区
-
-
将系统时区设置为中国的+8区
tzselect
分别依次选择 5) Asia、9) China、1) Beijing Time、1) Yes
vi /etc/profile
export TZ='Asia/Shanghai'
#生效修改
source /etc/profile
-
-
-
- 磁盘目录配置
-
-
模拟生产环境中使用LV进行数据存储。
# 创建pv
pvcreate /dev/nvme0n1
pvcreate /dev/nvme1n1
# 创建vg
vgcreate vgdata /dev/nvme0n1
vgcreate vgredo /dev/nvme1n1
# 创建lv
lvcreate -l 100%free vgdata -n lvdata
lvcreate -L 50G vgredo -n lvredo
# 格式化文件系统
mkfs.ext4 /dev/mapper/vgdata-lvdata
mkfs.ext4 /dev/mapper/vgredo-lvredo
# 挂载文件系统
mkdir -p /data /redo
vi /etc/fstab
/dev/mapper/vgdata-lvdata /data/1 ext4 defaults,noatime,nodiratime,nodelalloc,barrier=0 0 0
/dev/mapper/vgredo-lvredo /data/log1 ext4 defaults,noatime,nodiratime,nodelalloc,barrier=0 0 0
mount -a
-
-
-
- 初始化目录
-
-
# 创建相关目录
mkdir -p /home/admin/{oceanbase,logs}
-
-
- 部署单副本OceanBase集群
-
包括代理服务obproxy和obclient。
-
-
-
- 安装程序包文件
-
-
tar -zxvf obpoc_20220506_arm\ .tar.gz
cd ocp-ob-obp-odc-antman_20220506_arm
yum -y install t-oceanbase-antman-1.4.2-20220430002909.alios7.aarch64.rpm
-
-
-
- 安装oceanbase数据库程序
-
-
rpm –ivh oceanbase-3.2.3.0-20220418212020.el7.aarch64.rpm
-
-
-
- 安装obclient客户端程序
-
-
rpm -ivh obclient-1.2.8-20210918193105.el7.alios7.aarch64.rpm
-
-
-
- 安装obproxy代理程序
-
-
#执行如下命令
rpm -ivh obproxy-3.2.3.2-20220413115557.el7.aarch64.rpm
-
-
-
- 启动节点observer
-
-
#执行如下命令启动单节点单副本observer进程
su - admin
cd /home/admin/oceanbase
bin/observer -p 2881 -P 2882 -z zone1 -d ~/oceanbase/store/obcluster -r '192.168.0.26:2882:2881' -c 1673835228 -n obcluster -o "datafile_size=50G,__min_full_resource_pool_memory=268435456,config_additional_dir=/data/1/admin/etc3;/data/log1/admin/etc2"
-
-
-
- 初始化集群
-
-
#执行如下命令初始化集群(初始密码为空)
obclient -h 192.168.0.26 -P 2881 -uroot -p -c -A
alter system bootstrap ZONE 'zone1' SERVER '192.168.0.26:2882';
# 退出重新登录(租户sys),执行如下命令:
obclient -h 192.168.0.26 -P 2881 -uroot@sys -p -c -A oceanbase
# 并查看当前server列表
select zone, svr_ip, svr_port, with_rootserver, status from __all_server order by zone, with_rootserver desc;
-
-
-
- 设置相关密码
-
-
alter user root identified by 'root123';
grant select on oceanbase.* to proxyro identified by 'proxyro';
-
-
-
- 启动obproxy进程
-
-
启动OBPROXY进程也推荐在软件安装目录,进程obproxy会在该目录下生成目录etc保存OBPROXY的运行参数,以及目录log保存运行日志。
# 执行如下命令启动obproxy进程
bin/obproxy -r "192.168.0.26:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c obcluster
# 登录obproxy,查看系统管理员密码参数
obclient -h10.64.8.28 -P2883 -uroot@sys#admin -p -A
show proxyconfig like '%sys_password%';
-
- 验证OceanBase集群
- 登录测试OceanBase集群
- 验证OceanBase集群
登录使用命令:obclient -h192.168.0.28 -P2883 -uroot@sys#admin -p -A
-
-
- 创建租户
-
#查看当前资源规格及资源池配置:
Use oceanbase;
select unit_config_id, name from __all_unit_config;
select resource_pool_id, name from __all_resource_pool;
#创建租户所需的资源规格和资源池
create resource unit my_unit1 max_cpu=1, max_memory='1g', max_iops=128, max_disk_size='5g', max_session_num=64, min_cpu=1, min_memory='1g', min_iops=128;
create resource pool my_pool1 unit='my_unit1', unit_num=1, zone_list=('zone1');
#再次查看资源规格及资源池配置
#执行如下命令创建一个租户对象
create tenant my_tenant1 resource_pool_list=('my_pool1');
-
-
- 创建业务数据库
-
重新登录数据库,连接新建业务租户:my_tenant1
执行命令:obclient -h 192.168.0.26 -P 2883 -u root@my_tenant1 -p -c -A oceanbase
注:新建租户下默认管理员密码为空
-
-
- 创建业务数据表
-
create table user1(id int(4) primary key, name varchar(20));
#新增数据表记录
insert into user1(id, name) values(1, '张三');
insert into user1(id, name) values(2, '李四');
相关文章:

手动部署 OceanBase 集群
手动部署一个 OB 单副本集群,包括一个 OBProxy 节点 部署环境 服务器信息 IP地址 192.168.0.26 网卡名 ifcfg-enp1s0 OS Kylin Linux Advanced Server release V10 CPU 8C 内存 32G 磁盘1 本地盘 /data/1 磁盘2 本地盘 /data/log1 机器和角色划分 …...

【操作系统笔记十二】Linux常用基础命令
Linux 常用快捷键 Tab 命令或路径等的补全键,特别常用的快捷键Ctrl insert 复制命令行内容(常用可提高效率)Shift insert 粘贴命令行内容(常用可提高效率)Ctrl C 中断当前任务(退出)Ctrl Z…...

Compose LazyColumn 对比 RecyclerView ,谁的性能更好?
LazyColumn 是 compose 中用来实现类似 RecyclerView 效果的控件 ,但是大家都说LazyColumn性能比RecyclerView差太多,毕竟 RecyclerView google优化了十多年了,比RecyclerView差一点也正常,今天我们就用实际数据来对比LazyColumn和…...
[python 刷题] 49 Group Anagrams
[python 刷题] 49 Group Anagrams 题目: Given an array of strings strs, group the anagrams together. You can return the answer in any order. An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically…...

vue+element plus 使用table组件,清空用户的选择项
<el-table ref"tableRef"> .... </el-table> <script lang"ts" setup> import { onMounted, reactive, ref, nextTick } from vue const clearBtn () > {console.log(清空用户的选择项)tableRef.value.clearSelection() } </scr…...

改写软件-怎么选择改写软件
什么是改写软件?改写软件是基于自然语言处理技术的工具,它们可以分析一段文字,并将其重新表达,以保持原始意义,但使用不同的词汇和结构。这种技术可用于减少内容的重复,增加多样性,或者简化复杂…...

gateway之跨域处理
文章目录 什么是跨域跨域带来的问题 gateway解决跨域解决跨域的其他方式比较代码示例 总结提升 什么是跨域 跨域(Cross-Origin)是指在浏览器中,当一个Web应用程序试图访问与其所属页面不同的源(origin)的资源时&#…...

uniapp 实现不同用户展示不同的tabbar(底部导航栏)
一、背景 最近在做一个uniapp开发的小程序遇到一个需求,希望不同用户登录后展示不同的tabbar页面,但是uniapp项目中的pages.json是只有一个list数组的,并且是不能写成动态效果,为了实现这个需求,便自定义了tabbar组件 …...
线性归一化是什么,用python实现数据的线性归一化
线性归一化(Linear Normalization)是一种常见的数据预处理方法,也被称为 Min-Max 归一化。它通过对原始数据进行线性变换,将其缩放到特定的范围内,常用的是将数据缩放到 [0, 1] 或 [-1, 1] 范围内。 具体来说ÿ…...

超级好用绘图工具(Draw.io+Github)
超级好用绘图工具(Draw.ioGithub) 方案简介 绘图工具:Draw.io 存储方式: Github 1 Draw.io 1.2 简介 是一款免费开源的在线流程图绘制软件,可以用于创建流程图、组织结构图、网络图、UML图等各种类型的图表。…...

全国职业技能大赛云计算--高职组赛题卷③(私有云)
全国职业技能大赛云计算--高职组赛题卷③(私有云) 第一场次题目:OpenStack平台部署与运维任务1 基础运维任务(5分)任务2 OpenStack搭建任务(15分)任务3 OpenStack云平台运维(15分&am…...
Redis SCAN命令操作实战(详细)
目录 SCAN 介绍 SCAN 命令基本用法 MATCH 选项用法 COUNT 选项用法 TYPE 选项用法 补充 并发执行多个迭代 中途停止迭代 使用错误的游标进行增量式迭代 迭代终结的保证 SCAN 介绍 SCAN cursor [MATCH pattern] [COUNT count][TYPE type]:SCAN 命令及其相…...

计网第五章(运输层)(六)(TCP可靠传输的实现)
目录 一、基本概述 二、具体实现 1.前后沿: 2.利用指针描述发送窗口的状态 3.有差错情况 之前在数据链路层时已经讨论过可靠传输(计网第三章(数据链路层)(二)(可靠传输)&#x…...

酒店外卖小程序商城的作用是什么
随着线上餐品销售属性增强,传统酒店除了承接到店客户,外送也成为生意的一部分,但传统打电话、微信发送的方式无法实现餐品全面呈现和客户随时订购需求,在配送方面也无法规范化。 除此之外,还需要完善营销、会员管理、…...

居家养老一键通的功能
居家养老一键通的功能 居家养老一键通是指为老年人提供全方位的居家养老服务的平台或系统。它通过整合各种资源和服务,为老年人提供便捷、安全、舒适的居家养老环境,帮助他们解决生活中的各种难题。 居家养老一键通的功能通常包括以下几个方面ÿ…...

海外代理IP是什么?如何使用?
一、海外代理IP是什么? 首先,代理服务器是在用户和互联网之间提供网关的系统或路由器。它是一个服务器,被称为“中介”,因为它位于最终用户和他们在线访问的网页之间。 海外IP代理是就是指从海外地区获取的IP地址,用…...
mmdetection v3避坑
命令: python tools/test.py projects/DiffusionDet/configs/diffusiondet_r50_fpn_500-proposals_1-step_crop-ms-480-800-450k_coco.py /data/zhangrui/mmdetection-master/checkpoints/diffusiondet_r50_fpn_500-proposals_1-step_crop-ms-480-800-450k_coco_202…...
备份服务器数据库并保存到Git仓库
备份项目及数据库脚本 #!/bin/bash # MySQL数据库信息 DB_HOST"localhost" DB_USER"root" DB_PASS"************" DB_NAME"my-space" # 导出文件目录 EXPORT_PATH"/home/MySpace/mysql" # 获取当前时间并格式…...

尚硅谷wepack课程学习笔记
为什么需要使用打包工具? 开发时使用的框架、es6 语法 、less 等浏览器无法识别。 需要经过编译成浏览器能识别的css、js才可以运行。 打包工具可以帮我们编译,号可以做代码压缩、兼容处理、性能优化。 常见的打包工具有什么? vite、webpac…...
c++模版元编程-可变参数模版
在 C 中,我们可以使用模板参数包(Template Parameter Pack)和展开表达式(Expanding Expression)来定义可变参数模板。 模板参数包 模板参数包是一种特殊的语法,用于表示接受多个模板类型参数或非类型参数…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...