OceanBase:OBServer节点管理

  

目录

1.查看节点

2.添加节点

2.1 创建数据目录

2.2.OceanBase 运行时所依赖的部分三方动态库

2.3.安装 OceanBase 数据库的 RPM 包

2.4.启动节点 observer 进程

2.5.向集群中添加节点

3.隔离节点

4.重启节点

4.1 停止服务

4.2 转储

4.3 关闭进程

4.4 启动进程

4.5 启动服务

5.删除节点

5.1.隔离节点

5.2.手动迁移Unit

5.3.删除节点

5.4.确认删除


      OceanBase 数据库是单进程软件,进程名为 observer。通常一台物理或者虚拟服务器运行一个 observer 进程,由 IP 和端口作为唯一标识,称之为节点。

1.查看节点

#查询 DBA_OB_SERVERS 视图,获取集群中的所有节点信息
SELECT * FROM oceanbase.DBA_OB_SERVERS;

查询结果中的相关字段说明如下:

  • SVR_IP:节点 IP。
  • SVR_PORT:节点的 RPC 端口。
  • ZONE:节点所在的 Zone。
  • SQL_PORT:节点的 SQL 端口,可以使用该端口通过直连方式连接 OceanBase 数据库。
  • WITH_ROOTSERVER:该节点是否为集群 RS(RootServer),RS 负责处理集群管理操作。
  • STATUS:节点的状态:

        ACTIVE:表示该节点为可用状态。
        INACTIVE:表示该节点为宕机状态。
        DELETING:表示该节点正在被删除。

  • STOP_TIME:节点停止服务的时间点。如果值为 NULL,表示节点服务正常运行。
  • START_SERVICE_TIME:节点开始服务的时间点。如果值为 NULL,表示节点未提供服务。
  • BLOCK_MIGRATE_IN_TIME:禁止副本迁入的开始时间点。如果为 NULL,表示副本正常迁入。
  • BUILD_VERSION:OceanBase 数据库软件的版本号。

2.添加节点

2.1 创建数据目录

创建数据目录和日志目录

mkdir -p /oceanbase/data

mkdir -p /oceanbase/redo

mkdir -p /ocenabase/data/slog

mkdir -p /oceanbase/data/sstable

#创建日志目录软连接

ln -s /oceanbase/redo /ocenabase/data/clog

#创建配置文件目录

mkdir -p /home/admin/oceanbase/etc2

mkdir -p /home/admin/oceanbase/etc3

2.2.OceanBase 运行时所依赖的部分三方动态库

#默认安装在/home/admin/oceanbase目录下,需要先创建该目录,否则按照不成功。 

sudo rpm -ivh oceanbase-ce-libs-4.1.0.0-100000202023040520.el7.x86_64.rpm

将第三方库路径加入环境变量

2.3.安装 OceanBase 数据库的 RPM 包

sudo rpm -ivh oceanbase-ce-4.1.0.0-100000202023040520.el7.x86_64.rpm

2.4.启动节点 observer 进程

/home/admin/oceanbase/bin/observer  -p 2881 -P 2882 -z zone1 -n obcluster -c 1 -d /oceanbase/data -i ens192 -o "memory_limit=6G,system_memory=1G,datafile_size=20G,log_disk_size=15G,cpu_count=8,enable_syslog_wf=False,enable_syslog_recycle=True,max_syslog_file_count=4,config_additional_dir=/home/admin/oceanbase/etc3;/home/admin/oceanbase/etc2"

        启动脚本可在已运行OBServer节点服务器上通过 ps aux|observer命令查看其他节点的运行参数,各参数说明请参考官方文档:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218350

2.5.向集群(Zone)中添加节点

 alter system add server '192.168.1.220:2882'  zone 'zone1';;

        列表中有刚刚添加的 OBServer 服务器,则表示添加成功。

3.隔离节点

        当节点发生异常或者需要运维变更时,可以隔离节点。隔离后,新的读写请求不会路由到该节点上,从而可以隔离故障或者无损的执行运维变更动作。
        隔离节点有以下三种命令,不同的隔离命令有不同的安全级别保证:

  • 通过 STOP SERVER 命令隔离节点
  • 通过 FORCE STOP SERVER 命令隔离节点
  • 通过 ISOLATE SERVER 命令隔离节点

ALTER SYSTEM STOP SERVER 'svr_ip1:svr_port1', 'svr_ip2:svr_port2', ...;

        执行成功后,可以查询 oceanbase.DBA_OB_SERVERS 视图中该 Server 的 STATUS 字段,可以看到字段值仍为 ACTIVE 不变,但 STOP_TIME 字段的值由 NULL 变为停止服务的时间点。

4.重启节点

        重启是常见运维动作之一,适用于对机器进行短暂维修,以及修改系统配置项后需要重启生效的场景。重启过程中节点的下线时间需要在配置项 server_permanent_offline_time 设置的时间以内,否则会被永久下线。

        重启节点的主要流程为:停止服务 -> 转储 -> 关闭进程 -> 启动进程 -> 启动服务。

4.1 停止服务

ALTER SYSTEM STOP SERVER 'svr_ip:svr_port';

4.2 转储

        对待重启的节点进行转储操作,以便缩短重启后回放 Redo Log 的时间,加速重启。

ALTER SYSTEM MINOR FREEZE SERVER = ('svr_ip:svr_port');

4.3 关闭进程

kill -9 pid

4.4 启动进程

cd /home/admin/oceanbase  &&  ./bin/observer

4.5 启动服务

ALTER SYSTEM START SERVER 'svr_ip:svr_port';

执行成功后,可以查询 oceanbase.DBA_OB_SERVERS 视图中的 START_SERVICE_TIME 字段,该字段表示节点启动服务的时间。如果该值为 NULL,则表示该节点的服务还没有启动。

5.删除节点

        Delete Server 操作涉及到负载均衡,被删除的节点上的资源单元(称为 Unit )会在同一个 Zone 中进行迁移。Unit 的迁移动作是 Unit 自动均衡的过程,主要由 Root Service 控制。待 Unit 迁移成功,Delete Server 操作即可执行成功。删除节点会减少可用资源,如果同 Zone 中其他节点的剩余资源不足以容纳待删除节点上的 Unit,将会导致 Unit 迁移失败,故在执行删除节点之前建议先查询 oceanbase.GV$OB_SERVERS 视图判断 Zone 内各节点的资源使用情况。

5.1.隔离节点

        Unit 自动迁移过程中,迁移任务会占用迁出节点与迁入节点的网络资源和 IO 资源,从而使迁移流量与业务流量叠加,并导致业务流量受影响。为了避免业务流程受影响,可以先执行 Stop Zone 操作后再执行 Delete Server 操作,确保两种流量不发生叠加。

ALTER SYSTEM STOP SERVER 'svr_ip:svr_port';

5.2.手动迁移Unit

        删除节点Unit可以自动迁移,但建议您先手动迁移待删除的节点上的 Unit 后再执行 Delete Server 操作。

a.查看当前 Unit 分布,获取待迁移的 Unit 的 ID

SELECT UNIT_ID,TENANT_ID,STATUS,ZONE,SVR_IP FROM oceanbase.DBA_OB_UNITS;

b.根据查询结果,手动迁移 Unit

ALTER SYSTEM MIGRATE UNIT = unit_id DESTINATION = 'svr_ip:svr_port'; 

5.3.删除节点

ALTER SYSTEM DELETE SERVER 'svr_ip:svr_port' [,'svr_ip:svr_port'...] [ZONE [=] 'zone_name']

5.4.确认删除

SELECT * FROM oceanbase.DBA_OB_SERVERS;

        如果列表中已经查询不到该节点,则表示删除成功。如果列表中仍然有该节点,且该节点的状态为 DELETING,则表示该节点仍然在删除状态中。
        对于未手动迁移 Unit 而是直接执行 Delete Server 操作的场景,可能会导致节点删除失败,确认节点删除失败后,可以参考 后续操作 进行处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/157730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gitBash中如何使用Linux中的tree命令

文章目录 在gitBash中安装tree的目的如何安装安装完成,就可以直接完美适配Linux系统了在gitBash中安装tree的目的 如下图,powershell虽然可以看做是window下的Linux系统,但是根本就不适配很多Linux中的命令 如何安装 tree.exe安装网址 下载 tree 命令的 二进制包,安装 tr…

腾讯极光盒子A4021增强版_线刷官方

1、用USB_Burning_Tool线刷提供的线刷包,所需资料地址在最后 1)打开USB_Burning_Tool,选择资料里的A4021_line_flash_root.img(文件夹最好没有中文字符和空格),然后点击【开始】。 2)盒子准备好…

【C++上层应用】3. 动态内存

文章目录 【 1. new和delete运算符 】1.1 new 分配内存1.2 delete 释放内存1.3 实例 【 2. 数组的动态内存分配 】2.1 一维数组2.2 二维数组2.3 三维数组 【 3. 对象的动态内存分配 】 C 程序中的内存分为两个部分: 栈:在 函数内部 声明的所有变量都将占…

Me-and-My-Girlfriend-1

Me-and-My-Girlfriend-1 一、主机发现和端口扫描 主机发现,靶机地址192.168.80.147 arp-scan -l端口扫描,开放了22、80端口 nmap -A -p- -sV 192.168.80.147二、信息收集 访问80端口 路径扫描 dirsearch -u "http://192.168.80.147/" -e * …

浪潮信息云峦服务器操作系统KeyarchOS体验与实践

写在前面 大家好我是网络豆,一名云计算运维人员,本文将会带大家体验一下浪潮信息服务器操作系统云峦KeyarchOS。看看浪潮信息服务器操作系统云峦KeyarchOS的优势与实践操作如何。 背景了解 KeyarchOS是浪潮信息基于Linux Kernel、OpenAnolis等开源技术…

【Element】el-progress 自定义进度条

一、背景 要求弹窗内显示进度条&#xff0c;根据接口获取当前进度值&#xff0c;间隔5秒调用接口获取最新进度值&#xff0c;当进度值为100时&#xff0c;允许关闭进度条弹窗 二、效果 三、实现步骤 3.1、按钮绑定事件&#xff0c;打开弹窗 <el-button class"cance…

接入电商数据平台官方开放平台API接口获取商品实时信息数据,销量,评论,详情页演示

要接入电商数据平台官方开放平台API接口获取商品实时信息数据、销量、评论和详情页演示&#xff0c;需要按照以下步骤进行操作&#xff1a; 找到可用的API接口&#xff1a;首先&#xff0c;需要找到支持查询商品信息的API接口。可以在电商数据平台的官方开放平台上查找相应的AP…

python tkinter 使用

python tkinter 使用 ython可以使用多种GUI库来创建窗口页面&#xff0c;例如Tkinter、PyQt、wxPython等。 本篇文章主要讲述如何使用tkinter。 1&#xff1a;导入 import tkinter as tk这时如果运行的话会提示&#xff1a; ModuleNotFoundError: No module named ‘tkint…

弄懂Rust编程中的Trait

1.定义 trait trait 定义了某个特定类型拥有可能与其他类型共享的功能。可以通过 trait 以一种抽象的方式定义共享的行为。可以使用 trait bounds 指定泛型是任何拥有特定行为的类型。 一个类型的行为由其可供调用的方法构成。如果可以对不同类型调用相同的方法的话&#xff…

机器人制作开源方案 | 莲花灯

1. 功能描述 莲花灯是一款基于莲花形象设计的机器人&#xff0c;本文示例将用两种模式来实现莲花灯的亮灭功能。 自主模式&#xff1a;用 光强传感器 控制莲花灯的灯叶开合。暗光情况下灯叶打开&#xff0c;灯亮&#xff1b;强光情况下灯叶闭合&#xff0c;灯灭。 …

webpack环境变量的设置

现在虽然vite比较流行&#xff0c;但对于用node写后端来说&#xff0c;webpack倒是成了一个很好的打包工具&#xff0c;可以很好的保护后端的代码。所以这块的学习还是不能停下来&#xff0c;接下来我们来针对不同的环境做不同的设置写好笔记。 引用场景主要是针对服务器的各种…

0时区格林威治时间转换手机当地时间-Android

假设传入的是2023-11-01T12:59:10.420987这样的格式 要将格式为2023-11-01T12:59:10.420987的UTC时间字符串转换为Android设备本地时间&#xff0c;您可以使用java.time包中的类&#xff08;在API 26及以上版本中可用&#xff09;。如果您的应用需要支持较低版本的Android&…

docker通过挂载conf文件启动redis

初衷&#xff1a;之前直接在启动脚本中没有挂载配置文件&#xff0c;并且直接设置了密码等&#xff0c;后续要使用集群&#xff0c;苦于无法修改配置&#xff0c;进入redis容器也找不到redis.conf&#xff0c;所以写这个文章用来使用redis的配置&#xff0c;来达到后续都可动态…

《微信小程序开发从入门到实战》学习二十四

3.3.12开发创建投票多选投票页面 创建投票多选投票页面和创建单选投票页面没有区别&#xff0c;唯一区别仅在于向服务端发送数据时&#xff0c;告诉服务器这个投票是什么类型的投票。这个类型用三种数据类型表示都可以&#xff0c;分别如下所示&#xff1a; multiple:true/fa…

阿里 OSS鉴权访问文件

如果OSS文件设置保护&#xff0c;需要鉴权才能访问&#xff0c;添加请求头鉴权&#xff0c;SDK方法如上&#xff1b; 将鉴权信息和地址、时间返回给前端&#xff0c;前端直接从oss上读取 String filePath "/admin/2023/6/183569314928918546.png"; RequestMessage…

【C++上层应用】6. 信号 / 中断

文章目录 【 1. signal 函数 】【 2. raise函数 】 信号是由操作系统传给进程的 中断&#xff0c;会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上&#xff0c;可以通过按 CtrlC 产生中断。有些信号不能被程序捕获&#xff0c;但是下表所列信号可以在程序中捕…

Git——感谢尚硅谷官方文档

Git——尚硅谷学习笔记 第1章 Git 概述1.1 何为版本控制1.2 为什么需要版本控制1.3 版本控制工具1.4 Git 简史1.5 Git 工作机制1.6 Git 和代码托管中心 第2章 Git 安装第 3 章 Git 常用命令3.1 设置用户签名3.2 初始化本地库3.3 查看本地库状态3.4 添加暂存区3.4.1 将工作区的文…

sklearn模型中预测值的R2_score为负数

目录 正文评论区参考链接 正文 Sklearn.metrics下面的r2_score函数用于计算R&#xff08;确定系数&#xff1a;coefficient of determination&#xff09;。它用来度量未来的样本是否可能通过模型被很好地预测。 分值为 1 表示最好&#xff0c;但我们在使用过程中&#xff0c…

媒体格式转换软件Permute 3 mac中文版软件特点

Permute mac是一款媒体格式转换软件&#xff0c;可以帮助用户快速地将各种音频、视频和图像文件转换成所需格式&#xff0c;并提供了一些常用工具以便于用户进行编辑和处理。 Permute mac软件特点 - 支持大量格式&#xff1a;支持几乎所有常见的音频、视频和图像格式&#xff…

Redis事务+秒杀案例

Redis事务是一个单独的隔离操作&#xff0c;是指将多条命令放在一个命令队列当中&#xff0c;按顺序执行&#xff0c;保证多个命令在同一个事务中执行而不受其他客户端的影响。 通俗来说就是&#xff1a;串联多个命令防止别的命令插队。 1.Multi、Exec、discard 在输入Multi命…