本文档详细介绍Oracle Exadata数据库一体机的维护管理,风哥教程参考Oracle官方文档Exadata部分。更多视频教程www.fgedu.net.cn
Part01-基础概念与理论知识
1.1 Exadata维护概述
Exadata维护是确保系统稳定运行的重要工作,包括日常维护、监控告警、故障处理等。学习交流加群风哥微信: itpux-com
Exadata维护的主要目标:
- 系统稳定:确保系统稳定运行
- 性能优化:保持系统高性能
- 故障预防:预防故障发生
- 快速恢复:故障发生时快速恢复
- 数据安全:确保数据安全
1.2 日常维护任务
Exadata日常维护的主要任务:
- 系统监控:
- 监控服务器状态
- 监控存储状态
- 监控网络状态
- 监控数据库状态
- 性能监控:
- 监控CPU使用率
- 监控内存使用率
- 监控IO性能
- 监控网络带宽
- 容量管理:
- 监控存储容量
- 预测容量需求
- 规划容量扩展
- 日志管理:
- 检查系统日志
- 检查数据库日志
- 检查告警日志
1.3 维护工具
Exadata维护的主要工具:
- 数据库服务器工具:
- dbmcli:数据库服务器命令行工具
- dcli:分布式命令行工具
- ipmitool:硬件管理工具
- 存储服务器工具:
- cellcli:存储服务器命令行工具
- cellsrvstat:存储服务器状态工具
- 数据库工具:
- sqlplus:SQL命令行工具
- srvctl:服务管理工具
- crsctl:集群管理工具
- asmcmd:ASM管理工具
- 监控工具:
- EMCC:企业管理器云控制
- sundiag:诊断工具
- exachk:健康检查工具
Part02-生产环境规划与建议
2.1 维护计划
Exadata维护计划的主要考虑因素:
- 日常维护:
- 每日:检查告警、检查日志
- 每周:检查性能、检查容量
- 每月:检查备份、检查配置
- 定期维护:
- 补丁更新:定期更新系统补丁
- 健康检查:定期运行exachk
- 性能优化:定期优化性能
- 维护窗口:
- 规划维护窗口
- 通知相关人员
- 准备回滚方案
2.2 监控告警
Exadata监控告警的主要配置:
- 硬件监控:
- CPU温度监控
- 风扇状态监控
- 电源状态监控
- 磁盘状态监控
- 系统监控:
- CPU使用率监控
- 内存使用率监控
- IO性能监控
- 网络性能监控
- 数据库监控:
- 会话数监控
- 等待事件监控
- 表空间使用率监控
- ASM磁盘组监控
2.3 备份恢复
Exadata备份恢复的主要策略:
- 数据库备份:
- RMAN备份:定期备份数据库
- 快照备份:使用存储快照
- Data Guard:使用Data Guard保护
- 系统备份:
- 配置备份:备份系统配置
- 软件备份:备份软件安装
- 镜像备份:备份系统镜像
- 恢复测试:
- 定期测试恢复
- 验证备份有效性
- 记录恢复时间
Part03-生产环境项目实施方案
Exadata维护实施的主要步骤:
- 建立维护流程:
- 制定维护计划
- 制定维护流程
- 制定应急预案
- 配置监控告警:
- 配置硬件监控
- 配置系统监控
- 配置数据库监控
- 配置告警通知
- 配置备份策略:
- 配置数据库备份
- 配置系统备份
- 配置备份监控
- 培训运维人员:
- 培训维护操作
- 培训故障处理
- 培训应急响应
Part04-生产案例与实战讲解
4.1 检查系统状态
# 登录数据库服务器
ssh root@fgedu-db01
# 检查数据库服务器状态
dbmcli -e list dbserver detail
# 输出日志
name: fgedu-db01
bbuStatus: healthy
cpuCount: 192
fanCount: 8
fanStatus: normal
powerCount: 2
powerStatus: normal
status: online
temperature: 25C
# 检查所有数据库服务器状态
dcli -g /opt/oracle.SupportTools/onecommand/dbs_group -l root “dbmcli -e list dbserver attributes status”
# 输出日志
fgedu-db01: online
fgedu-db02: online
# 检查存储服务器状态
dcli -g /opt/oracle.SupportTools/onecommand/cell_group -l root “cellcli -e list cell attributes status”
# 输出日志
fgedu-cell01: online
fgedu-cell02: online
fgedu-cell03: online
ssh root@fgedu-db01
# 检查数据库服务器状态
dbmcli -e list dbserver detail
# 输出日志
name: fgedu-db01
bbuStatus: healthy
cpuCount: 192
fanCount: 8
fanStatus: normal
powerCount: 2
powerStatus: normal
status: online
temperature: 25C
# 检查所有数据库服务器状态
dcli -g /opt/oracle.SupportTools/onecommand/dbs_group -l root “dbmcli -e list dbserver attributes status”
# 输出日志
fgedu-db01: online
fgedu-db02: online
# 检查存储服务器状态
dcli -g /opt/oracle.SupportTools/onecommand/cell_group -l root “cellcli -e list cell attributes status”
# 输出日志
fgedu-cell01: online
fgedu-cell02: online
fgedu-cell03: online
4.2 检查磁盘状态
# 登录存储服务器
ssh root@fgedu-cell01
# 检查物理磁盘状态
cellcli -e list physicaldisk detail
# 输出日志
name: 8:0
deviceId: 8
diskType: HardDisk
luns: 8_0
makeModel: “HGST HUH721212AL5200”
physicalSize: 12T
status: normal
name: 8:1
deviceId: 8
diskType: HardDisk
luns: 8_1
makeModel: “HGST HUH721212AL5200”
physicalSize: 12T
status: normal
# 检查所有存储服务器磁盘状态
dcli -g /opt/oracle.SupportTools/onecommand/cell_group -l root “cellcli -e list physicaldisk attributes status”
# 输出日志
fgedu-cell01: normal normal normal normal normal normal normal normal normal normal normal normal
fgedu-cell02: normal normal normal normal normal normal normal normal normal normal normal normal
ssh root@fgedu-cell01
# 检查物理磁盘状态
cellcli -e list physicaldisk detail
# 输出日志
name: 8:0
deviceId: 8
diskType: HardDisk
luns: 8_0
makeModel: “HGST HUH721212AL5200”
physicalSize: 12T
status: normal
name: 8:1
deviceId: 8
diskType: HardDisk
luns: 8_1
makeModel: “HGST HUH721212AL5200”
physicalSize: 12T
status: normal
# 检查所有存储服务器磁盘状态
dcli -g /opt/oracle.SupportTools/onecommand/cell_group -l root “cellcli -e list physicaldisk attributes status”
# 输出日志
fgedu-cell01: normal normal normal normal normal normal normal normal normal normal normal normal
fgedu-cell02: normal normal normal normal normal normal normal normal normal normal normal normal
4.3 检查ASM磁盘组
# 登录数据库服务器
ssh oracle@fgedu-db01
# 检查ASM磁盘组状态
sqlplus / as sysasm
SQL> SELECT name, state, type, total_mb, free_mb,
round(free_mb/total_mb*100,2) free_pct
FROM v$asm_diskgroup;
# 输出日志
NAME STATE TYPE TOTAL_MB FREE_MB FREE_PCT
———- ———– —— ———- ———- ———-
DATA MOUNTED HIGH 104857600 52428800 50.00
RECO MOUNTED HIGH 52428800 26214400 50.00
# 检查ASM磁盘状态
SQL> SELECT name, path, mode_status, state, total_mb, free_mb
FROM v$asm_disk WHERE state != ‘NORMAL’ OR mode_status != ‘ONLINE’;
# 输出日志
no rows selected
# 使用asmcmd检查
asmcmd lsdg
# 输出日志
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED HIGH N 512 4096 4194304 104857600 52428800 34952533 17476266 0 N DATA/
MOUNTED HIGH N 512 4096 4194304 52428800 26214400 17476266 8738133 0 N RECO/
ssh oracle@fgedu-db01
# 检查ASM磁盘组状态
sqlplus / as sysasm
SQL> SELECT name, state, type, total_mb, free_mb,
round(free_mb/total_mb*100,2) free_pct
FROM v$asm_diskgroup;
# 输出日志
NAME STATE TYPE TOTAL_MB FREE_MB FREE_PCT
———- ———– —— ———- ———- ———-
DATA MOUNTED HIGH 104857600 52428800 50.00
RECO MOUNTED HIGH 52428800 26214400 50.00
# 检查ASM磁盘状态
SQL> SELECT name, path, mode_status, state, total_mb, free_mb
FROM v$asm_disk WHERE state != ‘NORMAL’ OR mode_status != ‘ONLINE’;
# 输出日志
no rows selected
# 使用asmcmd检查
asmcmd lsdg
# 输出日志
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED HIGH N 512 4096 4194304 104857600 52428800 34952533 17476266 0 N DATA/
MOUNTED HIGH N 512 4096 4194304 52428800 26214400 17476266 8738133 0 N RECO/
4.4 检查数据库状态
# 登录数据库服务器
ssh oracle@fgedu-db01
# 检查数据库实例状态
srvctl status database -db fgedudb
# 输出日志
数据库实例 fgedudb1 正在节点 fgedu-db01 上运行
数据库实例 fgedudb2 正在节点 fgedu-db02 上运行
# 检查集群资源状态
crsctl status resource -t
# 输出日志
Name Target State Server State details
Local Resources
ora.DATA.dg
ONLINE ONLINE fgedu-db01 STABLE
ONLINE ONLINE fgedu-db02 STABLE
ora.LISTENER.lsnr
ONLINE ONLINE fgedu-db01 STABLE
ONLINE ONLINE fgedu-db02 STABLE
Cluster Resources
ora.fgedudb.db
1 ONLINE ONLINE fgedu-db01 Open,HOME:/oracle/product/19.0.0/dbhome_1,STABLE
2 ONLINE ONLINE fgedu-db02 Open,HOME:/oracle/product/19.0.0/dbhome_1,STABLE
# 检查数据库告警日志
adrci
adrci> show alert -tail 20
# 输出日志
2026-04-01 10:00:00.000000 +08:00
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Initial number of CPU is 192
Number of processor cores in the system is 96
ssh oracle@fgedu-db01
# 检查数据库实例状态
srvctl status database -db fgedudb
# 输出日志
数据库实例 fgedudb1 正在节点 fgedu-db01 上运行
数据库实例 fgedudb2 正在节点 fgedu-db02 上运行
# 检查集群资源状态
crsctl status resource -t
# 输出日志
Name Target State Server State details
Local Resources
ora.DATA.dg
ONLINE ONLINE fgedu-db01 STABLE
ONLINE ONLINE fgedu-db02 STABLE
ora.LISTENER.lsnr
ONLINE ONLINE fgedu-db01 STABLE
ONLINE ONLINE fgedu-db02 STABLE
Cluster Resources
ora.fgedudb.db
1 ONLINE ONLINE fgedu-db01 Open,HOME:/oracle/product/19.0.0/dbhome_1,STABLE
2 ONLINE ONLINE fgedu-db02 Open,HOME:/oracle/product/19.0.0/dbhome_1,STABLE
# 检查数据库告警日志
adrci
adrci> show alert -tail 20
# 输出日志
2026-04-01 10:00:00.000000 +08:00
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Initial number of CPU is 192
Number of processor cores in the system is 96
4.5 运行健康检查
# 登录数据库服务器
ssh root@fgedu-db01
# 运行exachk健康检查
cd /opt/oracle.SupportTools/exachk
./exachk
# 输出日志
EXACHK VERSION: 19.3.0.0.0
Collecting data from fgedu-db01
Collecting data from fgedu-db02
Collecting data from fgedu-cell01
Collecting data from fgedu-cell02
Collecting data from fgedu-cell03
Generating report…
EXACHK REPORT
==============
System Information:
– Database Servers: 2
– Storage Servers: 3
– Database Version: 19.3.0.0.0
– Storage Server Version: 19.3.0.0.0
Summary:
– CRITICAL: 0
– WARNING: 2
– INFO: 5
WARNING Findings:
1. ASM disk group DATA free space is below 60%
2. Database parameter SGA_TARGET is not set
Report saved to: /opt/oracle.SupportTools/exachk/exachk_fgedudb_20260401.html
ssh root@fgedu-db01
# 运行exachk健康检查
cd /opt/oracle.SupportTools/exachk
./exachk
# 输出日志
EXACHK VERSION: 19.3.0.0.0
Collecting data from fgedu-db01
Collecting data from fgedu-db02
Collecting data from fgedu-cell01
Collecting data from fgedu-cell02
Collecting data from fgedu-cell03
Generating report…
EXACHK REPORT
==============
System Information:
– Database Servers: 2
– Storage Servers: 3
– Database Version: 19.3.0.0.0
– Storage Server Version: 19.3.0.0.0
Summary:
– CRITICAL: 0
– WARNING: 2
– INFO: 5
WARNING Findings:
1. ASM disk group DATA free space is below 60%
2. Database parameter SGA_TARGET is not set
Report saved to: /opt/oracle.SupportTools/exachk/exachk_fgedudb_20260401.html
4.6 更新系统补丁
# 登录数据库服务器
ssh root@fgedu-db01
# 检查当前版本
dbmcli -e list dbserver attributes version
# 输出日志
19.3.0.0.0
# 下载补丁
# 从Oracle Support下载最新补丁
# 应用存储服务器补丁
cd /opt/oracle.SupportTools/patch
./patchmgr -cells /opt/oracle.SupportTools/onecommand/cell_group -patch -rolling
# 输出日志
Starting rolling patch of storage servers…
Patching fgedu-cell01…
Patching fgedu-cell02…
Patching fgedu-cell03…
Rolling patch completed successfully
# 应用数据库服务器补丁
./patchmgr -dbnodes /opt/oracle.SupportTools/onecommand/dbs_group -patch -rolling
# 输出日志
Starting rolling patch of database servers…
Patching fgedu-db01…
Patching fgedu-db02…
Rolling patch completed successfully
# 验证补丁版本
dcli -g /opt/oracle.SupportTools/onecommand/cell_group -l root “cellcli -e list cell attributes releaseVersion”
# 输出日志
fgedu-cell01: 19.3.0.0.240416
fgedu-cell02: 19.3.0.0.240416
fgedu-cell03: 19.3.0.0.240416
ssh root@fgedu-db01
# 检查当前版本
dbmcli -e list dbserver attributes version
# 输出日志
19.3.0.0.0
# 下载补丁
# 从Oracle Support下载最新补丁
# 应用存储服务器补丁
cd /opt/oracle.SupportTools/patch
./patchmgr -cells /opt/oracle.SupportTools/onecommand/cell_group -patch -rolling
# 输出日志
Starting rolling patch of storage servers…
Patching fgedu-cell01…
Patching fgedu-cell02…
Patching fgedu-cell03…
Rolling patch completed successfully
# 应用数据库服务器补丁
./patchmgr -dbnodes /opt/oracle.SupportTools/onecommand/dbs_group -patch -rolling
# 输出日志
Starting rolling patch of database servers…
Patching fgedu-db01…
Patching fgedu-db02…
Rolling patch completed successfully
# 验证补丁版本
dcli -g /opt/oracle.SupportTools/onecommand/cell_group -l root “cellcli -e list cell attributes releaseVersion”
# 输出日志
fgedu-cell01: 19.3.0.0.240416
fgedu-cell02: 19.3.0.0.240416
fgedu-cell03: 19.3.0.0.240416
Part05-风哥经验总结与分享
5.1 维护经验总结
- 定期检查:定期检查系统状态,及时发现问题
- 监控告警:配置完善的监控告警,及时响应
- 文档记录:详细记录维护操作和问题处理
- 定期备份:定期备份系统和数据,确保数据安全
- 持续学习:持续学习新技术和新特性
5.2 常见问题与解决方案
- 磁盘故障:
- 识别故障磁盘
- 更换故障磁盘
- 重建数据
- 网络故障:
- 检查网络配置
- 检查InfiniBand状态
- 重启网络服务
- 性能问题:
- 检查系统负载
- 检查IO性能
- 优化SQL语句
5.3 经验分享
- 预防为主:定期维护,预防故障发生
- 快速响应:配置监控告警,快速响应问题
- 团队协作:维护工作需要团队协作
- 知识共享:分享经验和最佳实践
- 持续改进:根据运行情况,持续改进维护流程
学习交流加群风哥QQ113257174
风哥提示:Exadata维护是确保系统稳定运行的重要工作,需要建立完善的维护流程和监控体系。
更多学习教程公众号风哥教程itpux_com
from oracle:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
