当前位置: 首页 > news >正文

OBCP第八章 OB运维、监控与异常处理-日常运维操作

白屏: 集群、Zone、Observer 常用运维操作

 常用运维操作

运维场景步骤
时钟同步

OceanBase从Partition的多个副本中选出主对外提供服务。为避免Paxos的活锁问题,OceanBase 采用一种基于时钟的选举算法选主

检查 NTP 状态:运行 ntpstat 检查 NTP 服务器状态。如果结果为 synchronised to NTP server,则可以认定 NTP 的配置处于同步状态

检查 NTP 的偏移量:多次执行 ntpq -p|grep -E “\*|\=|remote“ 命令,确保可以看到稳定的 offset。若 offset 值小于 50ms 则为时钟同步正常

内存不足

OB是准内存数据库,任何写操作都需要消耗内存资源,只有合并和转储操作能够释放内存资源,所以当合并和转储速度长时间低于内存消耗速度时,内存最终将被耗尽,服务能力跌零调大租户内存 转储 / 合并

外存(磁盘)不足

运行日志盘满:可清空较老的日志clog盘满:查询表__all_virtual_server_clog_stat,清除较老的日志,再合并数据文件满:扩容,或将较老的数据迁移到历史库,再合并

黑屏:集群运维管理

在集群中启动或停止Zone的操作通常用于允许或禁止Zone内的所有物理服务器对外提供服务的需求场景

启动或停止Zone:

alter system start zone zone1;
alter system stop zone zone1;

修改Zone信息

ALTER SYSTEM {ALTER|CHANGE|MODIFY} ZONE [Zone_Name] SET [Zone_Option_List];
Zone_option_list : region, IDC, Zone_type (READONLY, READWRITE)

查看Zone的状态

Select * from __all_zone;

黑屏:Observer运维管理

查看OBServer的信息:

select * from __all_server; 
select * from __all_server_event_history;

管理OBServer状态: 进程启动后,对OBServer的管理类似对Zone的管理

Start Server操作:

ALTER SYSTEM START SERVER 'ip:port' [,'ip:port'…] [ZONE='zone'];
示例:alter system start server '192.168.100.1:2882';

Start Server操作:

ALTER SYSTEM START SERVER 'ip:port' [,'ip:port'…] [ZONE='zone'];
示例:alter system start server '192.168.100.1:2882';

Stop Server操作:

ALTER SYSTEM STOP SERVER 'ip:port' [,'ip:port'…] [ZONE='zone']; 
示例:alter system stop server '192.168.100.1:2882' zone='z1';

黑屏:Observer服务管理(进程)

查看OBServer进程:登录OceanBase Server所在的宿主机

ps -ef |grep observer

启动OBServer进程:登录 OceanBase Server主机

cd /home/admin/oceanbase/
./bin/observer [启动参数]
./bin/observer --help 查看 OBServer 启动参数的详细信息

停止 OBServer 进程:

kill -15 `pgrep observer`
kill -9 `pgrep observer`

黑屏:Observer服务启动恢复

由于增删改数据在内存中,进程启动后:

需要与其他副本同步,将clog或者ssd基线数据进行同步(补齐)

需要将上一次合并之后的内存数据恢复出来(clog回放),才能提供服务

注意事项:

停机时间短(分钟或者小时级别),一般只追齐clog

停机时间长(天级别),clog落后太多,会直接追齐ssd基线数据,然后补齐合并版本后的clog

这一过程结束后,该OBServer才能对外提供服务,可以查询__all_server 表的start service time字段来判断OBServer是否对外提供服务

可以在停止OBServer服务前执行转储(alter system minor freeze;),以加快 OBServer 服务恢复过程

黑屏:服务停止(停机运维)

机器需要运维操作时,需要停止OceanBase服务进程:

1. 系统租户登陆,确定运维时长,如果大于1小时但小于1天,为了避免服务恢复后的补副本操作,需要设置永久下线时间 (alter system set server_permanent_offline_time = '86400s’;)

2. 将服务从当前 OBServer 切走,保证停服务的时候,对于业务没有影响(alter system stop server'ip地址:2882';)内含切主动作

3.检查主副本都切走(select count(*) from __all_virtual_table t, __all_virtual_meta_table m where t.table_id=m.table_id and role=1 and m.svr_ip='ip地址' ; ),返回值应为0

4. 停止进程 kill -15 <observer pid>

黑屏:服务恢复(停机运维结束)

机器需要运维操作结束后,需要恢复OceanBase服务进程:

  1. 机器上电
  2. 检查该机器ntp同步状态和服务运行情况
  3. admin用户启动OBServer进程
  4. 系统租户登陆,启动server(alter system start server ‘ip地址:2882’;)
  5. 检查__all_server表,查看status为‘active’且‘start_service_time’的值>0,则表示OBServer正常启动并开始提供服务
  6. 将永久下线时间改回默认值3600s( alter system set server_permanent_offline_time = '3600s’;)

黑屏:故障节点替换

首先要确保集群中有足够的冗余资源(OBServer),可以代替故障节点进行工作:
1.系统租户登陆,stop server,确保主副本都切走

2. 为目标zone添加新的server(alter system add server 'ip地址:2882' ZONE 'zone1'; )

3. 将故障server下线(alter system delete server 'ip地址:2882' ZONE 'zone1'; ),OB 会自动将被下线OBServer的 Unit 迁移至新添加的 OBServer 上

4. 检查__all_server表检查server状态,旧 OBServer 的信息已经消失

相关文章:

OBCP第八章 OB运维、监控与异常处理-日常运维操作

白屏&#xff1a; 集群、Zone、Observer 常用运维操作 常用运维操作 运维场景步骤时钟同步 OceanBase从Partition的多个副本中选出主对外提供服务。为避免Paxos的活锁问题&#xff0c;OceanBase 采用一种基于时钟的选举算法选主 检查 NTP 状态&#xff1a;运行 ntpstat 检查 N…...

springboot-gateway注册nacos失败,控制台没有报错

目录 前言现象描述前言 最近springboot的gateway注册到nacos上,没有注册成功 现象描述 我是在common里面引入了nacos的依赖,依赖如下: <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-confi…...

CLIP:语言-图像表示之间的桥梁

最近GPT4的火爆覆盖了一个新闻&#xff1a;midjourney v5发布&#xff0c;DALLE2&#xff0c;midjourney都可以从文本中生成图像&#xff0c;这种模型要求人工智能同时理解语言和图像数据。 传统的基于人工智能的模型很难同时理解语言和图像。因为自然语言处理和计算机视觉一直…...

failed: open /etc/resolv.conf: no such file or directory“ cause k8s init failed

kubeadm init报错 kubeadm init --config /etc/kubernetes/kubeadm.conf -v 4 --skip-phasesaddon/kube-proxyThis can take up to 4m0s", “[kubelet-check] Initial timeout of 40s passed.”, “”, “\tUnfortunately, an error has occurred:”, “\t\ttimed out wa…...

「科普」如何评价供应商的MES系统

随着制造业的数字化转型&#xff0c;MES系统作为生产信息化的重要组成部分&#xff0c;正在被越来越多的企业采用。然而&#xff0c;在选择供应商时&#xff0c;如何评价供应商的MES系统&#xff0c;成为了制造企业需要面对的一个难题。 首先&#xff0c;评价供应商的MES系统需…...

海康3D轮廓仪调试详细步骤

激光三角测量法 3D激光轮廓仪是基于激光三角测量法(laser triangulation)来重建三维场景。向被测物表面投射激光平面(光片&#xff0c;sheet of light) &#xff0c;通过使用CMOS相机接收其反射光的变化&#xff0c;可以非接触方式测量高度、高度差、宽度等轮廓&#xff08;截面…...

【Linux】PCB(进程控制块)

进程控制块PBC-描述进程号进程状态内存指针PBC-描述 我们知道&#xff0c;进程就是运行起来的代码&#xff0c;而操作系统就是通过对进程进行描述&#xff0c;然后将所有的进程使用双向链表串联到一起&#xff0c;实现对计算机软硬件资源的管理的。 那么&#xff0c;PCB到底是…...

风电的Weibull分布及光电的Beta分布组合研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

《Effective Objective-C 2.0 》 阅读笔记 item11

第11条&#xff1a;理解objc_msgSend的作用 1. 动态语言特性 在Objective-C中&#xff0c;如果向某对象传递消息&#xff0c;那就会使用动态绑定机制来决定需要调用的方法。在底层&#xff0c;所有方法都是普通的C语言函数&#xff0c;然而对象收到消息之后&#xff0c;究竟该…...

Python常见装饰器使用(实用向)

目录1.staticmethod2.classmethod3、classmethod 与staticmethod比较4. property5.abstractmethod6.wraps7.lru_cache8.timeout9.retrystaticmethod&#xff1a;将一个方法转换为静态方法&#xff0c;可以在不创建类实例的情况下调用。classmethod&#xff1a;将一个方法转换为…...

集合详解之(三)单列集合接口Set及具体子类HashSet、TreeSet

文章目录&#x1f412;个人主页&#x1f3c5;JavaSE系列专栏&#x1f4d6;前言&#xff1a;&#x1f380;Set集合接口&#x1f380;HashSet实现类&#x1f380;TreeSet实现类&#x1fa85;HashSet类常用方法&#xff1a;&#x1fa85;TreeSet类常用方法&#xff1a;&#x1f41…...

力扣刷题笔记22—— 矩阵中的路径(回溯)/pair的学习

矩阵中的路径&#xff08;回溯&#xff09;/pair的学习问题分析示例代码pair学习问题 来自力扣&#xff1a; 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按…...

Spring学习1

一、Spring简介 Spring翻译过来就是春天的意思&#xff0c;其实也就是给软件行业带来了春天2002年&#xff0c;首次推出Spring框架的雏形&#xff0c;interface21框架Spring框架就是以interface21框架为基础&#xff0c;经过重新设计&#xff0c;并不断丰富&#xff0c;在2004年…...

Keep再闯IPO,三年亏损16亿,会员留存率跌破70%

“运动科技第一股”来了&#xff1f; 3月28日&#xff0c;线上健身平台的运营方、北京卡路里科技有限公司&#xff08;下称“Keep”&#xff09;更新招股书&#xff0c;再次闯关港股IPO。 Keep是一家在线健身平台&#xff0c;主要产品包括在线健身内容、智能健身设备和配套运…...

软件测试分类详解

一图看清软件测试分类 一、按测试技术分&#xff08;是否查看代码&#xff09; **1. 黑盒测试**&#xff1a;软件功能是否正常使用【功能的测试】 **2. 白盒测试**&#xff1a;代码逻辑是否正确【结构的测试】 **3. 灰盒测试**&#xff1a;介于两者之间的测试&#xff0c;也…...

网站怎么优化出排名

网站怎么优化出排名&#xff0c;独立站SEO优化应该怎么做&#xff1f;#独立站#推广优化#SEO优化 今天跟大家聊一下独立站的SEO&#xff0c;是指个人或者小型的企业对独立站进行一个优化&#xff0c;以提高他在搜索引擎中的排名和流量&#xff0c;从而吸引更多的这个客户和用户。…...

h5|web页面嵌套iframe传参给cocosCreator

h5|web页面嵌套iframe传参给cocosCreator 目录 一、快速浏览 二、详细实现与项目代码 三、安全性评估——iframe 实现效果: 一、快速浏览 在h5页面中&#xff0c;使用JavaScript获取需要传递的参数&#xff0c;如下&#xff1a; var token ZHESHINIDETOKEN; var phone 11…...

阿里云安全产品Web应用防火墙是什么?有什么作用?

Web应用防火墙是一款网站Web应用安全的防护产品&#xff0c;拦截针对您网站发起的Web通用攻击&#xff08;如SQL注入、XSS跨站等&#xff09;或是应用资源消耗型攻击&#xff08;CC&#xff09;&#xff0c;同时也可以满足您网站从流量管理角度来防御业务风险&#xff0c;例如B…...

【SSM】Spring6(九.代理模式)

文章目录1.代理模式2. 静态代理3. 动态代理3.1 JDK动态代理3.2 CGLIB动态代理1.代理模式 代理模式主要有两种&#xff1a; 静态代理模式 动态代理模式 2. 静态代理 有这样一个业务&#xff1a;订单的生成&#xff0c;修改&#xff0c;查看详情。实现如下 package com.sdnu.…...

【1017. 负二进制转换】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个整数 n &#xff0c;以二进制字符串的形式返回该整数的 负二进制&#xff08;base -2&#xff09;表示。 注意&#xff0c; 除非字符串就是 "0"&#xff0c;否则返回的字符串中不…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)

在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发&#xff08;电脑上写的程序&#xff09;涉及到的一套技术Qt无法开发网页前端&#xff0c;也不能开发移动应用。 客户端开发的重要任务&#xff1a;编写和用户交互的界面。一般来说和用户交互的界面&#xff0c;有两种典型风格&…...