1. 首页 > Oracle教程 > 正文

Oracle教程FG232-EMCC性能监控

本文档详细介绍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性能监控的实施步骤:

  1. 配置性能监控:
    • 配置AWR快照间隔
    • 配置ASH采样间隔
    • 配置ADDM分析
  2. 建立性能基线:
    • 选择正常业务时段
    • 创建性能基线
    • 验证基线有效性
  3. 配置性能告警:
    • 配置性能阈值
    • 配置告警通知
    • 配置告警升级
  4. 性能分析与优化:
    • 分析性能数据
    • 识别性能瓶颈
    • 实施优化措施
  5. 生成性能报表:
    • 生成定期报表
    • 分析报表数据
    • 制定优化计划

Part04-生产案例与实战讲解

4.1 配置AWR快照

# 登录EMCC控制台
# 导航到:目标 → 数据库 → 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)

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

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

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%

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性能

Part05-风哥经验总结与分享

5.1 性能监控最佳实践

  • 建立性能基线:在正常业务期间建立性能基线,作为性能对比的参考
  • 定期分析:定期分析性能数据,发现性能趋势和问题
  • 及时优化:及时处理性能问题,避免影响业务
  • 持续改进:持续优化数据库性能,提高系统效率
  • 文档记录:详细记录性能分析和优化过程

5.2 常见问题与解决方案

  • 性能下降:
    • 分析AWR报表,找出性能瓶颈
    • 运行ADDM分析,获取优化建议
    • 优化SQL语句和索引
  • I/O性能问题:
    • 分析等待事件,找出I/O瓶颈
    • 优化存储配置
    • 增加I/O带宽
  • 内存性能问题:
    • 分析内存使用情况
    • 调整SGA和PGA大小
    • 优化内存参数
  • SQL性能问题:
    • 使用SQL调优顾问
    • 优化SQL语句
    • 创建合适的索引

5.3 经验分享

  • 提前规划:在实施前制定详细的性能监控计划
  • 团队协作:性能优化需要DBA和开发人员的协作
  • 持续监控:持续监控数据库性能,及时发现和解决问题
  • 知识共享:分享性能优化经验和最佳实践
  • 自动化运维:利用EMCC的自动化功能,减少人工干预

联系我们

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

微信号:itpux-com

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