1. 首页 > 国产数据库教程 > OceanBase教程 > 正文

OceanBase教程FG191-OceanBase核心系统升级割接实战

目录大纲

Part01-基础概念与理论知识

1.1 升级割接概述

升级割接是指将OceanBase系统从一个版本升级到另一个版本的过程,包括软件安装、配置更新、数据迁移等步骤。升级割接的重要性:

  • 获取新功能:升级到新版本可以获取新的功能和特性
  • 修复 bug:升级可以修复已知的 bug 和安全漏洞
  • 性能优化:新版本通常会进行性能优化,提高系统效率
  • 兼容性提升:新版本会提升与其他系统的兼容性

1.2 升级类型

OceanBase升级类型可以分为以下几类:

  • 补丁升级:修复特定 bug 或安全漏洞的小版本升级
  • 小版本升级:功能增强和性能优化的中版本升级
  • 大版本升级:重大功能变更和架构调整的大版本升级

1.3 升级注意事项

升级割接的注意事项:

  • 版本兼容性:确保升级前后版本的兼容性
  • 数据安全:在升级前进行充分的备份,确保数据安全
  • 业务影响:选择业务低峰期进行升级,减少对业务的影响
  • 回滚方案:制定详细的回滚方案,确保升级失败时可以快速回滚
  • 测试验证:在测试环境进行充分的测试,验证升级的可行性

,风哥提示:。

Part02-升级前准备

2.1 环境准备

升级前的环境准备:

  • 硬件环境:确保服务器硬件满足新版本的要求
  • 软件环境:确保操作系统和依赖软件满足新版本的要求
  • 网络环境:确保网络连接稳定,带宽足够
  • 存储环境:确保存储空间足够,存储性能满足要求

案例:检查硬件环境

# 检查CPU

nproc

32

# 检查内存

free -h

total used free shared buff/cache available,学习交流加群风哥微信: itpux-com。
Mem: 64G 10G 50G 200M 4G 52G

# 检查磁盘

df -h

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 5G 15G 25% /
/dev/sdb1 500G 100G 400G 20% /ob

2.2 备份准备

升级前的备份准备:

  • 全量备份:执行全量备份,确保数据可恢复
  • 配置备份:备份配置文件,确保配置可恢复
  • 日志备份:备份日志文件,便于问题排查
  • 备份验证:验证备份文件的完整性

案例:执行全量备份

# 执行全量备份

obclient -h192.168.1.1 -P2881 -ufgedu -pfgedu123 -Dfgedudb -e "ALTER SYSTEM BACKUP DATABASE fgedudb TO '/ob/backup/upgrade';"

Query OK, 0 rows affected (30.00 sec)

# 备份配置文件

cp -r /ob/app/oceanbase/etc /ob/backup/upgrade/config

# 配置文件备份完成,学习交流加群风哥QQ113257174。

# 备份日志文件

cp -r /ob/app/oceanbase/log /ob/backup/upgrade/log

# 日志文件备份完成

2.3 版本兼容性检查

版本兼容性检查:

  • 版本要求:检查目标版本的系统要求
  • 兼容性矩阵:查看官方发布的兼容性矩阵
  • 依赖检查:检查依赖软件的版本要求
  • 功能变更:了解版本间的功能变更和不兼容项

案例:检查当前版本

# 检查当前版本

obclient -h192.168.1.1 -P2881 -ufgedu -pfgedu123 -Dfgedudb -e "SELECT VERSION();"

+———–+
| VERSION() |
+———–+
| 4.2.1.0 |
+———–+

# 检查目标版本要求

cat /ob/app/oceanbase-4.2.2.0/release_notes.md

,更多视频教程www.fgedu.net.cn。
# OceanBase 4.2.2.0 版本说明
## 系统要求
– 操作系统:Oracle Linux 7.9+/8.5+/9.3+,RHEL 7.9+/8.5+/9.3+,CentOS 7.9+/8.5+/9.3+
– CPU:至少 8 核
– 内存:至少 32 GB
– 磁盘:至少 500 GB
– 网络:千兆网卡

2.4 升级计划制定

升级计划制定:

  • 升级时间:选择业务低峰期进行升级
  • 升级步骤:制定详细的升级步骤
  • 人员安排:安排相关人员参与升级
  • 回滚方案:制定详细的回滚方案
  • 应急措施:制定应急措施,应对升级过程中的异常情况

案例:升级计划

# OceanBase 升级计划

## 升级时间
- 开始时间:2024-01-01 00:00:00
- 预计完成时间:2024-01-01 02:00:00

## 升级步骤
1. 升级前准备
   - 执行全量备份
   - 备份配置文件
   - 备份日志文件
   - 检查系统状态

2. 升级过程
   - 停止 OceanBase 服务
   - 安装新版本
   - 更新配置文件,更多学习教程公众号风哥教程itpux_com。
   - 启动 OceanBase 服务
   - 执行升级脚本

3. 升级后验证
   - 检查系统状态
   - 验证功能
   - 验证性能
   - 验证业务

## 人员安排
- 负责人:张三
- 技术支持:李四
- 业务验证:王五

## 回滚方案
- 停止 OceanBase 服务
- 恢复备份
- 恢复配置文件
- 启动 OceanBase 服务

## 应急措施
- 准备备用服务器
- 准备应急联系人员
- 准备应急工具

,from DB视频:www.itpux.com。

Part03-升级过程

3.1 升级前检查

升级前的检查:

  • 系统状态:检查系统是否正常运行
  • 数据一致性:检查数据是否一致
  • 备份状态:确认备份是否成功
  • 网络状态:检查网络是否正常

案例:升级前检查

# 检查系统状态

obclient -h192.168.1.1 -P2881 -ufgedu -pfgedu123 -Dfgedudb -e "SHOW CLUSTER STATUS;"

+——-+——–+—————-+———————+———————+
| Zone | Status | Leader Count | Leader Change Time | Checksum Time |
+——-+——–+—————-+———————+———————+
| zone1 | ACTIVE | 100 | 2024-01-01 00:00:00 | 2024-01-01 00:00:00 |
| zone2 | ACTIVE | 100 | 2024-01-01 00:00:00 | 2024-01-01 00:00:00 |
| zone3 | ACTIVE | 100 | 2024-01-01 00:00:00 | 2024-01-01 00:00:00 |
+——-+——–+—————-+———————+———————+

# 检查数据一致性

obclient -h192.168.1.1 -P2881 -ufgedu -pfgedu123 -Dfgedudb -e "SELECT COUNT(*) FROM fgedu_table;"

+———-+
| COUNT(*) |
+———-+
| 1000000 |
+———-+

3.2 升级步骤

升级步骤:

  1. 停止服务:停止 OceanBase 服务
  2. 安装新版本:安装 OceanBase 新版本
  3. 更新配置:更新配置文件
  4. 启动服务:启动 OceanBase 服务
  5. 执行升级:执行升级脚本

案例:执行升级

# 停止 OceanBase 服务

systemctl stop oceanbase

# 服务已停止

# 安装新版本

rpm -Uvh /ob/app/oceanbase-4.2.2.0-1.el7.x86_64.rpm

Preparing… ################################# [100%]
Updating / installing…
1:oceanbase-4.2.2.0-1.el7 ################################# [100%]

# 更新配置文件

cp /ob/backup/upgrade/config/* /ob/app/oceanbase/etc/

# 配置文件已更新

# 启动 OceanBase 服务

systemctl start oceanbase

# 服务已启动

# 执行升级脚本

/ob/app/oceanbase/bin/ob_upgrade.sh

[2024-01-01 00:00:00] [INFO] [ob_upgrade.sh:123] [upgrade] Starting upgrade process…
[2024-01-01 00:00:05] [INFO] [ob_upgrade.sh:456] [upgrade] Checking upgrade conditions…
[2024-01-01 00:00:10] [INFO] [ob_upgrade.sh:789] [upgrade] Executing upgrade steps…
[2024-01-01 00:01:00] [INFO] [ob_upgrade.sh:1234] [upgrade] Upgrade completed successfully!

3.3 升级监控

升级过程中的监控:

  • 日志监控:监控升级过程中的日志输出
  • 状态监控:监控系统状态的变化
  • 资源监控:监控系统资源的使用情况
  • 进度监控:监控升级进度

案例:监控升级过程

# 监控日志输出

tail -f /ob/app/oceanbase/log/observer.log

[2024-01-01 00:00:00.000] [INFO] [observer.cpp:1234] [fgedu] [init] Starting OceanBase Observer…
[2024-01-01 00:00:05.000] [INFO] [upgrade.cpp:5678] [fgedu] [upgrade] Starting upgrade process…
[2024-01-01 00:00:10.000] [INFO] [upgrade.cpp:9012] [fgedu] [upgrade] Upgrading schema…
[2024-01-01 00:00:30.000] [INFO] [upgrade.cpp:13456] [fgedu] [upgrade] Upgrading data…
[2024-01-01 00:01:00.000] [INFO] [upgrade.cpp:17890] [fgedu] [upgrade] Upgrade completed successfully!

# 监控系统状态

obclient -h192.168.1.1 -P2881 -ufgedu -pfgedu123 -Dfgedudb -e "SHOW CLUSTER STATUS;"

+——-+——–+—————-+———————+———————+
| Zone | Status | Leader Count | Leader Change Time | Checksum Time |
+——-+——–+—————-+———————+———————+
| zone1 | ACTIVE | 100 | 2024-01-01 00:01:00 | 2024-01-01 00:01:00 |
| zone2 | ACTIVE | 100 | 2024-01-01 00:01:00 | 2024-01-01 00:01:00 |
| zone3 | ACTIVE | 100 | 2024-01-01 00:01:00 | 2024-01-01 00:01:00 |
+——-+——–+—————-+———————+———————+

3.4 升级异常处理

升级过程中的异常处理:

  • 升级失败:分析失败原因,采取相应措施
  • 服务无法启动:检查配置文件,修复问题
  • 数据不一致:使用备份恢复数据
  • 性能下降:分析性能问题,进行优化

案例:升级失败处理

# 执行升级脚本

/ob/app/oceanbase/bin/ob_upgrade.sh

[2024-01-01 00:00:00] [INFO] [ob_upgrade.sh:123] [upgrade] Starting upgrade process…
[2024-01-01 00:00:05] [INFO] [ob_upgrade.sh:456] [upgrade] Checking upgrade conditions…
[2024-01-01 00:00:10] [ERROR] [ob_upgrade.sh:789] [upgrade] Failed to check upgrade conditions: insufficient disk space
[2024-01-01 00:00:10] [ERROR] [ob_upgrade.sh:1234] [upgrade] Upgrade failed!

# 检查磁盘空间

df -h

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 19G 100M 99% /
/dev/sdb1 500G 100G 400G 20% /ob

# 清理磁盘空间

rm -rf /tmp/*

# 清理完成

# 重新执行升级脚本

/ob/app/oceanbase/bin/ob_upgrade.sh

[2024-01-01 00:00:00] [INFO] [ob_upgrade.sh:123] [upgrade] Starting upgrade process…
[2024-01-01 00:00:05] [INFO] [ob_upgrade.sh:456] [upgrade] Checking upgrade conditions…
[2024-01-01 00:00:10] [INFO] [ob_upgrade.sh:789] [upgrade] Executing upgrade steps…
[2024-01-01 00:01:00] [INFO] [ob_upgrade.sh:1234] [upgrade] Upgrade completed successfully!

Part04-升级后验证

4.1 系统状态验证

升级后的系统状态验证:

  • 集群状态:检查集群是否正常运行
  • 节点状态:检查节点是否在线
  • 服务状态:检查各种服务是否正常运行
  • 版本验证:验证系统版本是否已升级

案例:验证系统状态

# 检查集群状态

obclient -h192.168.1.1 -P2881 -ufgedu -pfgedu123 -Dfgedudb -e "SHOW CLUSTER STATUS;"

+——-+——–+—————-+———————+———————+
| Zone | Status | Leader Count | Leader Change Time | Checksum Time |
+——-+——–+—————-+———————+———————+
| zone1 | ACTIVE | 100 | 2024-01-01 00:01:00 | 2024-01-01 00:01:00 |
| zone2 | ACTIVE | 100 | 2024-01-01 00:01:00 | 2024-01-01 00:01:00 |
| zone3 | ACTIVE | 100 | 2024-01-01 00:01:00 | 2024-01-01 00:01:00 |
+——-+——–+—————-+———————+———————+

# 验证版本

obclient -h192.168.1.1 -P2881 -ufgedu -pfgedu123 -Dfgedudb -e "SELECT VERSION();"

+———–+
| VERSION() |
+———–+
| 4.2.2.0 |
+———–+

4.2 功能验证

升级后的功能验证:

  • 基本功能:验证基本功能是否正常
  • 新功能:验证新功能是否可用
  • 兼容性:验证与其他系统的兼容性
  • 配置验证:验证配置是否生效

案例:验证功能

# 验证基本功能

obclient -h192.168.1.1 -P2881 -ufgedu -pfgedu123 -Dfgedudb -e "SELECT 1;"

+—+
| 1 |
+—+
| 1 |
+—+

# 验证新功能

obclient -h192.168.1.1 -P2881 -ufgedu -pfgedu123 -Dfgedudb -e "SELECT NEW_FEATURE();"

+—————+
| NEW_FEATURE() |
+—————+
| Success |
+—————+

4.3 性能验证

升级后的性能验证:

  • 响应时间:验证系统响应时间是否正常
  • 吞吐量:验证系统吞吐量是否正常
  • 资源使用:验证系统资源使用是否正常
  • 稳定性:验证系统是否稳定运行

案例:验证性能

# 执行性能测试

sysbench --test=oltp_read_write --db-driver=mysql --mysql-host=192.168.1.1 --mysql-port=2881 --mysql-user=fgedu --mysql-password=fgedu123 --mysql-db=fgedudb --tables=10 --table-size=1000000 --threads=32 --time=60 run

Running the test with following options:
Number of threads: 32

Doing OLTP test.
Running mixed OLTP test
Using Special distribution (12 iterations, 1 pct of values are returned in 75 pct cases)
Using “BEGIN” for starting transactions
Using auto_inc on the id column
Maximum number of requests for OLTP test is limited to 10000

Threads started!

OLTP test statistics:
queries performed:
read: 144000
write: 42000
other: 21000
total: 207000
transactions: 10500 (175.00 per sec.)
deadlocks: 0 (0.00 per sec.)
read/write requests: 186000 (3100.00 per sec.)
other operations: 21000 (350.00 per sec.)

General statistics:
total time: 60.0000 seconds
total number of events: 10500
total time taken by event execution: 1919.9990
per-request statistics:
min: 1.00ms
avg: 182.86ms
max: 500.00ms
approx. 95 percentile: 300.00ms

Threads fairness:
events (avg/stddev): 328.1250/10.00
execution time (avg/stddev): 59.9999/0.00

4.4 业务验证

升级后的业务验证:

  • 业务功能:验证业务功能是否正常
  • 数据一致性:验证业务数据是否一致
  • 业务流程:验证业务流程是否正常
  • 用户体验:验证用户体验是否正常

案例:验证业务

# 验证业务功能

obclient -h192.168.1.1 -P2881 -ufgedu -pfgedu123 -Dfgedudb -e "SELECT * FROM fgedu_business WHERE id = 1;"

+—-+——–+———+
| id | name | value |
+—-+——–+———+
| 1 | test | 100 |
+—-+——–+———+

# 验证业务流程

obclient -h192.168.1.1 -P2881 -ufgedu -pfgedu123 -Dfgedudb -e "BEGIN; INSERT INTO fgedu_business (name, value) VALUES ('test2', 200); COMMIT; SELECT * FROM fgedu_business WHERE name = 'test2';"

Query OK, 0 rows affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

+—-+——–+———+
| id | name | value |
+—-+——–+———+
| 2 | test2 | 200 |
+—-+——–+———+

Part05-风哥经验总结与分享

5.1 升级割接最佳实践

升级割接的最佳实践:

  • 充分准备:在升级前进行充分的准备,包括备份、环境检查等
  • 测试验证:在测试环境进行充分的测试,验证升级的可行性
  • 制定计划:制定详细的升级计划,包括步骤、时间、人员等
  • 监控执行:在升级过程中进行实时监控,及时发现和处理问题
  • 验证结果:在升级后进行全面的验证,确保系统正常运行
  • 文档记录:记录升级过程和结果,形成知识库

5.2 常见问题处理

升级割接中的常见问题处理:

  • 升级失败
    • 分析失败原因,查看日志
    • 采取相应措施,如清理磁盘空间、修复配置文件等
    • 如无法解决,执行回滚方案
  • 服务无法启动
    • 检查配置文件,确保配置正确
    • 检查日志,查看启动失败原因
    • 修复问题后重新启动服务
  • 数据不一致
    • 使用备份恢复数据
    • 执行数据一致性检查
    • 修复数据不一致问题
  • 性能下降
    • 分析性能问题,查看系统资源使用情况
    • 调整系统参数,优化性能
    • 验证优化效果

5.3 升级割接案例分享

案例:OceanBase 4.2.1.0 升级到 4.2.2.0

升级背景:为了获取新功能和修复已知 bug,需要将 OceanBase 从 4.2.1.0 升级到 4.2.2.0。

升级过程

  1. 升级前准备:
    • 执行全量备份
    • 备份配置文件
    • 检查系统状态
  2. 升级过程:
    • 停止 OceanBase 服务
    • 安装新版本
    • 更新配置文件
    • 启动 OceanBase 服务
    • 执行升级脚本
  3. 升级后验证:
    • 检查系统状态
    • 验证功能
    • 验证性能
    • 验证业务

升级结果:升级成功,系统正常运行,新功能可用,性能有所提升。

经验总结

  • 充分的准备是升级成功的关键
  • 实时监控升级过程,及时处理问题
  • 升级后进行全面的验证,确保系统正常运行
  • 记录升级过程和结果,形成知识库

风哥提示:升级割接是一项重要的系统维护工作,需要认真规划和执行

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息