obd运维OceanBase数据库的常见场景

obd运维OceanBase数据库的常见场景

集群参数调整

⭐️ OBD调整OceanBase集群参数步骤:

  1. 查看部署名称:obd cluster list
  2. 编辑集群参数:obd cluster edit-config 部署名称
  3. 使参数生效:obd cluster reload/restart/redeploy 部署名称

OBD目录结构如下:

bash 复制代码
[admin@test001 /home/admin/]$tree -L 1 ~/.obd
/home/admin/.obd
|----- cluster
# 存放部署名称对应配置文件,不建议直接编辑该配置文件,需要使用obdclusteredit-config操作
# 存在.data隐藏文件,记录部署名称、组件相关信息、部署状态信息。不建议直接编辑该配置文件
|----- config_parser
|----- lock
|----- log         # 存放OBD命令操作的日志
|----- mirror      # 存放本地仓库的安装包和远程仓库的repo文件
|----- optimize
|----- plugins     # 存放组件相关插件
|----- repository
|----- version     # 记录OBD版本

⚠️ 调整集群参数时需要注意:

  1. 如果edit-config调整的参数不确定是重装生效、重启生效、还是重载生效,可以参看find ~/.obd/plugin/${component} "parameter.yaml"文件。

  2. 遵守原则:部署配置文件有的参数,优先obd cluster edit-config方式修改,部署配置文件中没有的参数,可以登录数据库SQL命令方式修改。部署配置文件修改参数不确定生效方式的查看parameter.yaml文件酌情修改。

  3. 编辑oceanbase-ce模块下的资源参数时,注意datafile_sizze参数不支持调小。

  4. 调整集群或租户资源时,分别需要遵守以下原则:

⚠️ 调整集群资源时,需要遵守原则:

  • 调大参数数值时,不超出服务器剩余资源范围;
  • 调小参数数值时,不低于租户已分配占用的数值范围。

⚠️ 调整租户资源参数时,需要遵守原则:

  • 调大参数数值时,不超出集群剩余资源范围;
  • 调小参数数值时,租户内存最小不能低于__min_full_resource_pool_memory限制;
  • 调小参数数值时,租户CPU最小不能低于1核,MAX_CPU不能小于MIN_CPU
  • 调小参数数值时,租户LOG_DISK_SIZE参数建议是租户内存的3~4倍大小。

服务重启

⭐️ 重启服务的三种场景:

  1. 重启部署名称下的所有服务:obd cluster restart 部署名称
  2. 重启部署名称下的指定服务:obd cluster restart 部署名称 -c 组件名称
  3. 重启部署名称下的指定服务指定节点:obd cluster restart 部署名称 -c 组件名称 -s IP1,IP2

⚠️ 重启组件时需要注意:

  1. 重启组件的前提是所有组件涉及的节点SSH需要连通,否则即使指定IP节点也无法进行重启操作。

  2. 所有组件均重启完成时,obd cluster list对应部署名称的状态才会是running,如果存在组件重启失败,后续组件不会再进行重启动作。

  3. obd cluster list中部署名称的状态是非实时获取,只有管理操作完成后才会更新 ,因此可能会出现组件的服务不正常时,而部署状态为running,例如服务器重启后。建议通过display来确认所有组件是否正常。

  4. 部署名称状态如果非running,会影响后续管理操作,例如升级、扩容等。

  5. 组件名称为部署配置文件 中的组件模块名称,非obd cluster display展示的。

  6. 指定多个组件名称时,需要使用逗号间隔。

  7. 单独重启某个服务组件时,并不会更新部署名称的状态。即服务都停止时,部署名称状态为stopped,每个组件均单独启动时,最终部署名称状态仍然是stopped。

  8. 如果指定多个IP时,存在错误的IP时,OBD会跳过错误的IP信息,仅对正确的IP进行重启操作。

  9. 如果指定多个组件服务时,存在错误的组件名称,OBD会终止整个重启操作

服务升级

  1. 检查并升级OBD:
bash 复制代码
obd update
  1. 升级OceanBase:
bash 复制代码
obd cluster upgrade 部署名称-c oceanbase-ce-V4.2.1.4 --usable=xxxx

其中--usable参数后面指定的是升级中使用的镜像hash列表。

⚠️ OBD升级OceanBase需要注意:

  1. 使用OBD升级前,如果集群存在主备租户,建议主备集群均升级至相同版本。

  2. 使用OBD升级前,确认目标版本的Release Notes中升级说明。

  3. 使用OBD升级前,如果升级目标版本为V4.0.xV4.1.xV4.2.0 BETA版本时,需调整业务租户的primary zone为顺序优先级,升级完成后再还原。

sql 复制代码
ALTER TENANT test primary_zone='zone1;zone2;zone3';
  1. 使用OBD升级前,需要检查部署名称状态是running,且OceanBase集群状态无异常。

  2. 建议升级前对集群进行一次合并操作。

sql 复制代码
ALTER SYSTEM MAJOR FREEZE;
  1. 使用OBD升级时,如果升级失败,支持重复执行OBD升级命令,但禁止 在不明升级失败原因的情况下修改集群系统参数,例如enable_ddlenable_upgrade_mode

  2. 使用OBD升级时,如果升级失败,可以通过黑屏打印的obd display-trace xxxx信息、或者查看升级日志upgrade_post.log进行检查。

  3. 使用OBD升级完成后,除了检查集群状态之外,建议升级其他组件服务至配套版本的。

服务扩容

OBD集群命令obd cluster scale_out会将新节点扩容配置信息更新到源集群部署配置文件中,并对扩容节点进行环境预检查,通过后会在扩容节点安装OceanBase并启动服务,添加到源集群中。

⭐️ OBD扩容节点的逻辑如下:

  1. 编写OceanBase扩容配置文件(scale_out.yaml
yaml 复制代码
oceanbase-ce:
  servers:
    - name: server2
      ip: 10.10.10.2
    - name: server3
      ip: 10.10.10.3
  server2:
    mysql_port: 2881 # External port for OceanBase Database. The default value is 2881.
    rpc_port: 2882   # Internal port for OceanBase Database. The default value is 2882.
    home_path: /home/admin/observer
    zone: zone2
  server3:
    mysql_port: 2881 # External port for OceanBase Database. The default value is 2881.
    rpc_port: 2882   # Internal port for OceanBase Database. The default value is 2882.
    home_path: /home/admin/observer
    zone: zone3
  1. 扩容OceanBase服务。

    obd cluster scale_out test -c scale_out.yaml

  2. 复制命令行输出的obd cluster display命令并执行,可查看集群的状态。

  3. OceanBase集群扩容成功后,进行租户内的资源扩容。

⚠️ OBD扩容OceanBase需要注意:

  1. 扩容前,需要检查OBD版本是否需要更新,建议使用最新版本。

  2. 扩容前,扩容的节点建议先进行服务器初始化。其中部署用户和SSH连接信息需要确保一致。

  3. 扩容前,需要确保OceanBase集群状态正常。

  4. 扩容前,需要确保已经安装有OBClient客户端。

  5. 扩容前,扩容节点的配置文件不允许修改原集群配置中的dependsglobal或其他server部分的配置,配置新节点的基础信息即可,因此需要保证正扩容节点服务器资源配置目录挂载等和原集群服务器保持一致。

  6. 扩容后,需要对租户进行增加副本,否则仍然是单副本租户。

  7. 扩容后,建议按需调整租户的primary zone优先级。

  8. 扩容后,暂不支持使用OBD进行集群缩容。

  9. 扩容后,也支持纵向扩容observer节点,扩容配置文件中指定源集群zone名称即可,扩容完成后,可以对租户资源水平扩展

References

【1】https://www.oceanbase.com/docs/obd-cn

【2】https://www.oceanbase.com/docs/community-obd-cn-1000000000050428

【3】https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003381951

【4】https://www.oceanbase.com/docs/common-obd-cn-1000000003415357

相关推荐
程序员编程指南2 分钟前
Qt OpenGL 集成:开发 3D 图形应用
c语言·数据库·c++·qt·3d
Nightwish541 分钟前
Linux随记(二十一)
linux·运维·服务器
婪苏(Python学习ing)1 小时前
MySQL 与 Redis 基础入门:从安装到核心操作
数据库
幻灭行度2 小时前
通过redis_exporter监控redis cluster
数据库·redis·缓存
Wang's Blog2 小时前
Nestjs框架: 基于Mongodb的多租户功能集成和优化
数据库·mongodb·多租户
Edingbrugh.南空2 小时前
Aerospike架构深度解析:打造web级分布式应用的理想数据库
数据库·架构
IT成长日记3 小时前
【自动化运维神器Ansible】Ansible常用模块之File模块详解
运维·自动化·ansible·file·常用模块
獭.獭.3 小时前
Linux -- 文件【上】
linux·运维·服务器·进程·pcb
不会敲代码的XW3 小时前
高可用集群KEEPALIVED的详细部署
运维·云原生
老实巴交的麻匪3 小时前
提问的智慧,用最少的时间获得最有效的帮助
运维·团队管理