OceanBase教程FG191-OceanBase核心系统升级割接实战
目录大纲
Part01-基础概念与理论知识
1.1 升级割接概述
升级割接是指将OceanBase系统从一个版本升级到另一个版本的过程,包括软件安装、配置更新、数据迁移等步骤。升级割接的重要性:
- 获取新功能:升级到新版本可以获取新的功能和特性
- 修复 bug:升级可以修复已知的 bug 和安全漏洞
- 性能优化:新版本通常会进行性能优化,提高系统效率
- 兼容性提升:新版本会提升与其他系统的兼容性
1.2 升级类型
OceanBase升级类型可以分为以下几类:
- 补丁升级:修复特定 bug 或安全漏洞的小版本升级
- 小版本升级:功能增强和性能优化的中版本升级
- 大版本升级:重大功能变更和架构调整的大版本升级
1.3 升级注意事项
升级割接的注意事项:
- 版本兼容性:确保升级前后版本的兼容性
- 数据安全:在升级前进行充分的备份,确保数据安全
- 业务影响:选择业务低峰期进行升级,减少对业务的影响
- 回滚方案:制定详细的回滚方案,确保升级失败时可以快速回滚
- 测试验证:在测试环境进行充分的测试,验证升级的可行性
,风哥提示:。
Part02-升级前准备
2.1 环境准备
升级前的环境准备:
- 硬件环境:确保服务器硬件满足新版本的要求
- 软件环境:确保操作系统和依赖软件满足新版本的要求
- 网络环境:确保网络连接稳定,带宽足够
- 存储环境:确保存储空间足够,存储性能满足要求
案例:检查硬件环境
nproc
free -h
Mem: 64G 10G 50G 200M 4G 52G
df -h
/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';"
cp -r /ob/app/oceanbase/etc /ob/backup/upgrade/config
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
# 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 服务 ## 应急措施 - 准备备用服务器 - 准备应急联系人员 - 准备应急工具
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 升级步骤
升级步骤:
- 停止服务:停止 OceanBase 服务
- 安装新版本:安装 OceanBase 新版本
- 更新配置:更新配置文件
- 启动服务:启动 OceanBase 服务
- 执行升级:执行升级脚本
案例:执行升级
systemctl stop oceanbase
rpm -Uvh /ob/app/oceanbase-4.2.2.0-1.el7.x86_64.rpm
Updating / installing…
1:oceanbase-4.2.2.0-1.el7 ################################# [100%]
cp /ob/backup/upgrade/config/* /ob/app/oceanbase/etc/
systemctl start oceanbase
/ob/app/oceanbase/bin/ob_upgrade.sh
[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: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: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
/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: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
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, 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。
升级过程:
- 升级前准备:
- 执行全量备份
- 备份配置文件
- 检查系统状态
- 升级过程:
- 停止 OceanBase 服务
- 安装新版本
- 更新配置文件
- 启动 OceanBase 服务
- 执行升级脚本
- 升级后验证:
- 检查系统状态
- 验证功能
- 验证性能
- 验证业务
升级结果:升级成功,系统正常运行,新功能可用,性能有所提升。
经验总结:
- 充分的准备是升级成功的关键
- 实时监控升级过程,及时处理问题
- 升级后进行全面的验证,确保系统正常运行
- 记录升级过程和结果,形成知识库
风哥提示:升级割接是一项重要的系统维护工作,需要认真规划和执行
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
