本文档详细介绍Oracle Enterprise Manager Cloud Control (EMCC)的性能监控功能,风哥教程参考Oracle官方文档EMCC部分。更多视频教程www.fgedu.net.cn
Part01-基础概念与理论知识
1.1 性能监控概述
EMCC性能监控是EMCC的核心功能之一,用于监控和分析Oracle数据库的性能。学习交流加群风哥微信: itpux-com
EMCC性能监控的主要特点:
- 实时监控:实时监控数据库的性能指标
- 历史分析:分析历史性能数据,发现性能趋势
- 自动诊断:自动诊断性能问题,提供优化建议
- 性能基线:建立性能基线,对比性能变化
- 性能报表:生成各种性能报表
- 性能告警:根据性能指标自动生成告警
1.2 性能分析方法
EMCC性能监控的主要分析方法:
- ADDM(自动数据库诊断监视器):
- 自动分析数据库性能问题
- 提供优化建议
- 识别性能瓶颈
- AWR(自动工作负载存储库):
- 收集数据库性能数据
- 生成性能快照
- 分析性能趋势
- ASH(活动会话历史):
- 记录活动会话的历史数据
- 分析会话等待事件
- 识别性能问题
- SQL调优顾问:
- 分析SQL语句性能
- 提供SQL优化建议
- 生成SQL配置文件
- SQL访问顾问:
- 分析SQL访问路径
- 建议索引和分区
- 优化SQL性能
1.3 性能优化工具
EMCC性能监控的主要优化工具:
- 性能主页:显示数据库的整体性能状态
- 性能分析:分析数据库性能问题
- SQL调优:优化SQL语句性能
- 等待事件分析:分析数据库等待事件
- I/O分析:分析数据库I/O性能
- 内存分析:分析数据库内存使用
Part02-生产环境规划与建议
2.1 性能基线
EMCC性能监控的基线建议:
- 建立性能基线:在正常业务期间建立性能基线
- 定期更新基线:定期更新性能基线,反映业务变化
- 对比分析:对比当前性能与基线,发现异常
- 多时段基线:建立不同时段的性能基线
- 业务周期基线:建立业务周期的性能基线
2.2 性能阈值
EMCC性能监控的阈值建议:
- CPU使用率:警告阈值80%,严重阈值95%
- 内存使用率:警告阈值85%,严重阈值95%
- I/O响应时间:警告阈值20ms,严重阈值50ms
- 等待事件:根据等待事件类型设置阈值
- SQL执行时间:根据SQL重要性设置阈值
2.3 性能报表
EMCC性能监控的报表建议:
- AWR报表:生成AWR报表,分析性能快照
- ASH报表:生成ASH报表,分析会话历史
- ADDM报表:生成ADDM报表,查看优化建议
- SQL报表:生成SQL报表,分析SQL性能
- 等待事件报表:生成等待事件报表,分析等待事件
Part03-生产环境项目实施方案
EMCC性能监控的实施步骤:
- 配置性能监控:
- 配置AWR快照间隔
- 配置ASH采样间隔
- 配置ADDM分析
- 建立性能基线:
- 选择正常业务时段
- 创建性能基线
- 验证基线有效性
- 配置性能告警:
- 配置性能阈值
- 配置告警通知
- 配置告警升级
- 性能分析与优化:
- 分析性能数据
- 识别性能瓶颈
- 实施优化措施
- 生成性能报表:
- 生成定期报表
- 分析报表数据
- 制定优化计划
Part04-生产案例与实战讲解
4.1 配置AWR快照
# 登录EMCC控制台
# 导航到:目标 → 数据库 → fgedudb → 性能 → AWR
# 查看AWR配置
# 输出日志
AWR配置:
– 快照间隔:60分钟
– 保留时间:8天
– 采集级别:典型
# 修改AWR配置
# 点击”配置”
# 设置快照间隔:30分钟
# 设置保留时间:15天
# 点击”保存”
# 验证AWR配置
# 输出日志
AWR配置已更新:
– 快照间隔:30分钟
– 保留时间:15天
– 采集级别:典型
# 导航到:目标 → 数据库 → fgedudb → 性能 → AWR
# 查看AWR配置
# 输出日志
AWR配置:
– 快照间隔:60分钟
– 保留时间:8天
– 采集级别:典型
# 修改AWR配置
# 点击”配置”
# 设置快照间隔:30分钟
# 设置保留时间:15天
# 点击”保存”
# 验证AWR配置
# 输出日志
AWR配置已更新:
– 快照间隔:30分钟
– 保留时间:15天
– 采集级别:典型
4.2 创建性能基线
# 登录EMCC控制台
# 导航到:目标 → 数据库 → fgedudb → 性能 → AWR → 基线
# 创建性能基线
# 点击”创建”
# 输入基线信息:
# 名称:baseline_20260401
# 开始时间:2026-04-01 09:00:00
# 结束时间:2026-04-01 18:00:00
# 点击”保存”
# 查看基线信息
# 输出日志
性能基线列表:
– baseline_20260401 (2026-04-01 09:00:00 – 2026-04-01 18:00:00)
– baseline_20260325 (2026-03-25 09:00:00 – 2026-03-25 18:00:00)
# 导航到:目标 → 数据库 → fgedudb → 性能 → AWR → 基线
# 创建性能基线
# 点击”创建”
# 输入基线信息:
# 名称:baseline_20260401
# 开始时间:2026-04-01 09:00:00
# 结束时间:2026-04-01 18:00:00
# 点击”保存”
# 查看基线信息
# 输出日志
性能基线列表:
– baseline_20260401 (2026-04-01 09:00:00 – 2026-04-01 18:00:00)
– baseline_20260325 (2026-03-25 09:00:00 – 2026-03-25 18:00:00)
4.3 生成AWR报表
# 登录EMCC控制台
# 导航到:目标 → 数据库 → fgedudb → 性能 → AWR
# 生成AWR报表
# 点击”生成AWR报表”
# 选择快照范围:
# 开始快照:2026-04-01 10:00:00
# 结束快照:2026-04-01 11:00:00
# 点击”生成”
# 查看AWR报表
# 输出日志
AWR报表 – fgedudb
快照范围:2026-04-01 10:00:00 – 2026-04-01 11:00:00
性能概要:
– DB Time:1200秒
– DB CPU:800秒
– 平均活跃会话:0.33
– 每秒事务数:150
等待事件TOP 5:
1. db file sequential read – 200秒
2. log file sync – 100秒
3. db file scattered read – 80秒
4. log file parallel write – 60秒
5. buffer busy waits – 40秒
SQL语句TOP 5:
1. SELECT * FROM fgedu_orders WHERE… – 执行次数:10000
2. UPDATE fgedu_inventory SET… – 执行次数:5000
3. INSERT INTO fgedu_logs… – 执行次数:3000
4. DELETE FROM fgedu_temp… – 执行次数:2000
5. SELECT COUNT(*) FROM fgedu_users… – 执行次数:1000
# 导航到:目标 → 数据库 → fgedudb → 性能 → AWR
# 生成AWR报表
# 点击”生成AWR报表”
# 选择快照范围:
# 开始快照:2026-04-01 10:00:00
# 结束快照:2026-04-01 11:00:00
# 点击”生成”
# 查看AWR报表
# 输出日志
AWR报表 – fgedudb
快照范围:2026-04-01 10:00:00 – 2026-04-01 11:00:00
性能概要:
– DB Time:1200秒
– DB CPU:800秒
– 平均活跃会话:0.33
– 每秒事务数:150
等待事件TOP 5:
1. db file sequential read – 200秒
2. log file sync – 100秒
3. db file scattered read – 80秒
4. log file parallel write – 60秒
5. buffer busy waits – 40秒
SQL语句TOP 5:
1. SELECT * FROM fgedu_orders WHERE… – 执行次数:10000
2. UPDATE fgedu_inventory SET… – 执行次数:5000
3. INSERT INTO fgedu_logs… – 执行次数:3000
4. DELETE FROM fgedu_temp… – 执行次数:2000
5. SELECT COUNT(*) FROM fgedu_users… – 执行次数:1000
4.4 运行ADDM分析
# 登录EMCC控制台
# 导航到:目标 → 数据库 → fgedudb → 性能 → ADDM
# 运行ADDM分析
# 点击”运行ADDM分析”
# 选择快照范围:
# 开始快照:2026-04-01 10:00:00
# 结束快照:2026-04-01 11:00:00
# 点击”运行”
# 查看ADDM分析结果
# 输出日志
ADDM分析结果 – fgedudb
快照范围:2026-04-01 10:00:00 – 2026-04-01 11:00:00
发现的问题:
1. SQL语句执行效率低
– 影响:影响系统性能约15%
– 建议:优化SQL语句,添加索引
– 相关SQL:SELECT * FROM fgedu_orders WHERE…
2. I/O性能问题
– 影响:影响系统性能约10%
– 建议:优化存储配置,增加I/O带宽
– 相关等待事件:db file sequential read
3. 内存配置问题
– 影响:影响系统性能约5%
– 建议:增加SGA大小,优化内存配置
– 相关参数:sga_target
# 导航到:目标 → 数据库 → fgedudb → 性能 → ADDM
# 运行ADDM分析
# 点击”运行ADDM分析”
# 选择快照范围:
# 开始快照:2026-04-01 10:00:00
# 结束快照:2026-04-01 11:00:00
# 点击”运行”
# 查看ADDM分析结果
# 输出日志
ADDM分析结果 – fgedudb
快照范围:2026-04-01 10:00:00 – 2026-04-01 11:00:00
发现的问题:
1. SQL语句执行效率低
– 影响:影响系统性能约15%
– 建议:优化SQL语句,添加索引
– 相关SQL:SELECT * FROM fgedu_orders WHERE…
2. I/O性能问题
– 影响:影响系统性能约10%
– 建议:优化存储配置,增加I/O带宽
– 相关等待事件:db file sequential read
3. 内存配置问题
– 影响:影响系统性能约5%
– 建议:增加SGA大小,优化内存配置
– 相关参数:sga_target
4.5 SQL调优
# 登录EMCC控制台
# 导航到:目标 → 数据库 → fgedudb → 性能 → SQL调优
# 查找需要调优的SQL
# 点击”SQL调优集”
# 选择SQL语句:SELECT * FROM fgedu_orders WHERE order_id = :1
# 点击”调优”
# 运行SQL调优顾问
# 点击”运行SQL调优顾问”
# 选择调优范围:全面分析
# 点击”运行”
# 查看调优建议
# 输出日志
SQL调优建议 – SELECT * FROM fgedu_orders WHERE order_id = :1
发现的问题:
1. 缺少索引
– 建议:在order_id列上创建索引
– 预期收益:执行时间减少80%
2. 统计信息过期
– 建议:更新表统计信息
– 预期收益:执行计划更准确
# 实施调优建议
# 点击”实施建议”
# 选择要实施的建议
# 点击”实施”
# 验证调优效果
# 输出日志
调优前执行时间:500ms
调优后执行时间:50ms
性能提升:90%
# 导航到:目标 → 数据库 → fgedudb → 性能 → SQL调优
# 查找需要调优的SQL
# 点击”SQL调优集”
# 选择SQL语句:SELECT * FROM fgedu_orders WHERE order_id = :1
# 点击”调优”
# 运行SQL调优顾问
# 点击”运行SQL调优顾问”
# 选择调优范围:全面分析
# 点击”运行”
# 查看调优建议
# 输出日志
SQL调优建议 – SELECT * FROM fgedu_orders WHERE order_id = :1
发现的问题:
1. 缺少索引
– 建议:在order_id列上创建索引
– 预期收益:执行时间减少80%
2. 统计信息过期
– 建议:更新表统计信息
– 预期收益:执行计划更准确
# 实施调优建议
# 点击”实施建议”
# 选择要实施的建议
# 点击”实施”
# 验证调优效果
# 输出日志
调优前执行时间:500ms
调优后执行时间:50ms
性能提升:90%
4.6 等待事件分析
# 登录EMCC控制台
# 导航到:目标 → 数据库 → fgedudb → 性能 → 性能主页
# 查看等待事件
# 点击”等待事件”
# 输出日志
等待事件TOP 10:
1. db file sequential read – 等待时间:200秒 – 占比:30%
2. log file sync – 等待时间:100秒 – 占比:15%
3. db file scattered read – 等待时间:80秒 – 占比:12%
4. log file parallel write – 等待时间:60秒 – 占比:9%
5. buffer busy waits – 等待时间:40秒 – 占比:6%
6. gc cr block busy – 等待时间:30秒 – 占比:4.5%
7. gc buffer busy – 等待时间:25秒 – 占比:3.7%
8. read by other session – 等待时间:20秒 – 占比:3%
9. library cache: mutex X – 等待时间:15秒 – 占比:2.2%
10. row cache lock – 等待时间:10秒 – 占比:1.5%
# 分析等待事件
# 点击”db file sequential read”
# 输出日志
等待事件详情 – db file sequential read
等待事件类型:用户I/O
等待参数:
– file#:数据文件编号
– block#:数据块编号
– blocks:等待的数据块数
相关SQL:
1. SELECT * FROM fgedu_orders WHERE order_id = :1
2. SELECT * FROM fgedu_products WHERE product_id = :1
3. UPDATE fgedu_inventory SET quantity = quantity – :1 WHERE product_id = :2
优化建议:
1. 优化SQL语句,减少I/O操作
2. 在相关列上创建索引
3. 优化存储配置,提高I/O性能
# 导航到:目标 → 数据库 → fgedudb → 性能 → 性能主页
# 查看等待事件
# 点击”等待事件”
# 输出日志
等待事件TOP 10:
1. db file sequential read – 等待时间:200秒 – 占比:30%
2. log file sync – 等待时间:100秒 – 占比:15%
3. db file scattered read – 等待时间:80秒 – 占比:12%
4. log file parallel write – 等待时间:60秒 – 占比:9%
5. buffer busy waits – 等待时间:40秒 – 占比:6%
6. gc cr block busy – 等待时间:30秒 – 占比:4.5%
7. gc buffer busy – 等待时间:25秒 – 占比:3.7%
8. read by other session – 等待时间:20秒 – 占比:3%
9. library cache: mutex X – 等待时间:15秒 – 占比:2.2%
10. row cache lock – 等待时间:10秒 – 占比:1.5%
# 分析等待事件
# 点击”db file sequential read”
# 输出日志
等待事件详情 – db file sequential read
等待事件类型:用户I/O
等待参数:
– file#:数据文件编号
– block#:数据块编号
– blocks:等待的数据块数
相关SQL:
1. SELECT * FROM fgedu_orders WHERE order_id = :1
2. SELECT * FROM fgedu_products WHERE product_id = :1
3. UPDATE fgedu_inventory SET quantity = quantity – :1 WHERE product_id = :2
优化建议:
1. 优化SQL语句,减少I/O操作
2. 在相关列上创建索引
3. 优化存储配置,提高I/O性能
Part05-风哥经验总结与分享
5.1 性能监控最佳实践
- 建立性能基线:在正常业务期间建立性能基线,作为性能对比的参考
- 定期分析:定期分析性能数据,发现性能趋势和问题
- 及时优化:及时处理性能问题,避免影响业务
- 持续改进:持续优化数据库性能,提高系统效率
- 文档记录:详细记录性能分析和优化过程
5.2 常见问题与解决方案
- 性能下降:
- 分析AWR报表,找出性能瓶颈
- 运行ADDM分析,获取优化建议
- 优化SQL语句和索引
- I/O性能问题:
- 分析等待事件,找出I/O瓶颈
- 优化存储配置
- 增加I/O带宽
- 内存性能问题:
- 分析内存使用情况
- 调整SGA和PGA大小
- 优化内存参数
- SQL性能问题:
- 使用SQL调优顾问
- 优化SQL语句
- 创建合适的索引
5.3 经验分享
- 提前规划:在实施前制定详细的性能监控计划
- 团队协作:性能优化需要DBA和开发人员的协作
- 持续监控:持续监控数据库性能,及时发现和解决问题
- 知识共享:分享性能优化经验和最佳实践
- 自动化运维:利用EMCC的自动化功能,减少人工干预
学习交流加群风哥QQ113257174
风哥提示:EMCC性能监控是确保数据库高效运行的重要手段,需要建立性能基线,定期分析性能数据。
更多学习教程公众号风哥教程itpux_com
from oracle:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
