本文档风哥主要介绍Oracle EMCC顾问中心相关知识,包括顾问中心的概念、组件、运行、分析、实施等内容,由风哥教程参考Oracle官方文档EMCC内容编写,适合DBA人员在学习和测试中使用,如果要应用于生产环境则需要自行确认。更多视频教程www.fgedu.net.cn
Part01-基础概念与理论知识
1.1 EMCC顾问中心概念
Oracle EMCC顾问中心是Enterprise Manager Cloud Control提供的数据库优化顾问集合,包括SQL调优顾问、SQL访问顾问、段顾问、内存顾问、恢复顾问等多个顾问工具,帮助DBA自动分析和优化数据库。学习交流加群风哥微信: itpux-com
- 自动化分析
- 智能优化建议
- 多种顾问类型
- 图形化界面
- 可实施建议
1.2 EMCC顾问中心组件
EMCC顾问中心的主要组件:
- SQL调优顾问:SQL性能优化建议
- SQL访问顾问:索引和物化视图建议
- 段顾问:段空间优化建议
- 内存顾问:内存配置建议
- 恢复顾问:恢复方案建议
- 性能分析师:综合性能分析
1.3 EMCC顾问类型
EMCC支持的顾问类型:
- 性能顾问:SQL调优、SQL访问、内存顾问
- 空间顾问:段顾问、Undo顾问
- 恢复顾问:数据恢复顾问、备份顾问
- 综合顾问:性能分析师、ADDM
Part02-生产环境规划与建议
2.1 EMCC顾问中心规划
EMCC顾问中心规划要点:
– SQL调优顾问:每日运行
– SQL访问顾问:每周运行
– 段顾问:每周运行
– 内存顾问:每月运行
– ADDM:每小时自动运行
# 顾问分析规划
– 性能问题:运行SQL调优顾问
– 空间问题:运行段顾问
– 内存问题:运行内存顾问
– 综合问题:运行ADDM
# 顾问实施规划
– 低风险建议:直接实施
– 中风险建议:测试后实施
– 高风险建议:评估后实施
2.2 EMCC顾问设计原则
EMCC顾问设计原则:
- 定期运行:定期运行顾问分析
- 评估建议:评估建议的风险和收益
- 测试先行:测试环境验证建议
- 分步实施:分步实施优化建议
- 文档记录:记录优化过程
2.3 EMCC顾问策略
EMCC顾问策略:
- 主动策略:定期运行顾问分析
- 被动策略:问题出现后运行
- 混合策略:定期运行+问题触发
Part03-生产环境项目实施方案
3.1 EMCC运行顾问
3.1.1 EMCC运行SQL调优顾问
https://emcc.fgedu.net.cn:7803/em
# 运行SQL调优顾问步骤:
1. 登录EMCC控制台
2. 选择目标数据库:fgedudb
3. 点击”性能” -> “SQL调优顾问”
4. 输入SQL ID或SQL文本
5. 点击”运行分析”
6. 等待分析完成
7. 查看优化建议
# 使用EMCLI运行SQL调优顾问
$ emcli run_sql_tuning_advisor \
-target=”fgedudb” \
-sql_id=”abc123def”
SQL Tuning Advisor Report
=========================
Task Name: STA_abc123def
Status: Completed
Findings: 2
Recommendations: 2
# 查看调优建议
$ emcli get_sql_tuning_recommendations \
-task_name=”STA_abc123def”
Recommendations
===============
1. Create Index
Benefit: 90% improvement
SQL: CREATE INDEX idx_orders_date ON orders(order_date);
2. Gather Statistics
Benefit: 10% improvement
SQL: EXEC DBMS_STATS.GATHER_TABLE_STATS(‘FGEDU’, ‘ORDERS’);
3.1.2 EMCC运行段顾问
1. 登录EMCC控制台
2. 选择目标数据库:fgedudb
3. 点击”方案” -> “段顾问”
4. 选择要分析的对象
5. 点击”运行分析”
6. 等待分析完成
7. 查看优化建议
# 使用EMCLI运行段顾问
$ emcli run_segment_advisor \
-target=”fgedudb” \
-tablespace=”FGEDU_DATA”
Segment Advisor Report
======================
Task Name: SA_FGEDU_DATA
Status: Completed
Segments Analyzed: 100
Recommendations: 15
# 查看段顾问建议
$ emcli get_segment_advisor_recommendations \
-task_name=”SA_FGEDU_DATA”
Recommendations
===============
1. Shrink Table
Object: FGEDU.ORDERS
Reclaimable Space: 500MB
SQL: ALTER TABLE orders ENABLE ROW MOVEMENT;
ALTER TABLE orders SHRINK SPACE;
2. Rebuild Index
Object: FGEDU.IDX_ORDERS_DATE
Reclaimable Space: 200MB
SQL: ALTER INDEX idx_orders_date REBUILD;
3.2 EMCC分析顾问结果
3.2.1 EMCC分析ADDM结果
1. 登录EMCC控制台
2. 选择目标数据库:fgedudb
3. 点击”性能” -> “ADDM”
4. 查看ADDM发现:
– 问题类型
– 影响程度
– 建议
# ADDM结果显示:
ADDM Findings – fgedudb
=======================
Finding 1: SQL statements consuming significant database time
Impact: 45% of total database time
Recommendation: Run SQL Tuning Advisor
Finding 2: Buffer cache size is undersized
Impact: 20% of total database time
Recommendation: Increase buffer cache size
Finding 3: I/O throughput is slow
Impact: 15% of total database time
Recommendation: Move hot files to faster storage
# 使用EMCLI查看ADDM结果
$ emcli get_addm_findings -target=”fgedudb”
ADDM Findings Report
====================
Task Name: ADDM_12345
Analysis Period: Last 24 hours
Total Database Time: 1000 hours
Findings: 5
Top Finding: SQL Performance
Impact: 45%
Recommendation: Run SQL Tuning Advisor
3.3 EMCC实施顾问建议
3.3.1 EMCC实施SQL调优建议
1. 登录EMCC控制台
2. 查看SQL调优顾问建议
3. 评估建议的风险和收益
4. 选择要实施的建议
5. 点击”实施建议”
6. 验证实施结果
# 实施建议示例:
# 建议1:创建索引
SQL> CREATE INDEX idx_orders_date ON orders(order_date);
Index created.
# 建议2:收集统计信息
SQL> EXEC DBMS_STATS.GATHER_TABLE_STATS(‘FGEDU’, ‘ORDERS’);
PL/SQL procedure successfully completed.
# 验证优化效果
SQL> SELECT elapsed_time/1000000 AS elapsed_seconds
FROM v$sql
WHERE sql_id = ‘abc123def’;
ELAPSED_SECONDS
—————
2.5
# 对比优化前后
优化前:120秒
优化后:2.5秒
提升:98%
Part04-生产案例与实战讲解
4.1 EMCC顾问中心常见问题
4.1.1 EMCC顾问运行失败
# 分析步骤:
# 1. 查看顾问状态
$ emcli get_advisor_status \
-target=”fgedudb” \
-advisor=”SQL Tuning Advisor”
Status: Failed
Error: ORA-13600: error encountered in Advisor
# 2. 查看错误详情
SQL> SELECT task_name, status, error_message
FROM dba_advisor_tasks
WHERE task_name = ‘STA_abc123def’;
TASK_NAME STATUS ERROR_MESSAGE
—————– ——— ——————————
STA_abc123def ERROR ORA-01555: snapshot too old
# 3. 分析原因
SQL> SHOW PARAMETER undo_retention;
NAME TYPE VALUE
———————————— ———– ——————————
undo_retention integer 900
# 4. 解决方案
# 增加撤销保留时间
SQL> ALTER SYSTEM SET undo_retention = 3600 SCOPE=BOTH;
System altered.
# 重新运行顾问
$ emcli run_sql_tuning_advisor \
-target=”fgedudb” \
-sql_id=”abc123def”
SQL Tuning Advisor completed successfully
4.2 EMCC顾问中心故障排除
# 分析步骤:
# 1. 查看建议详情
$ emcli get_sql_tuning_recommendations \
-task_name=”STA_abc123def”
Recommendation: Create Index
SQL: CREATE INDEX idx_orders_date ON orders(order_date);
# 2. 尝试实施建议
SQL> CREATE INDEX idx_orders_date ON orders(order_date);
CREATE INDEX idx_orders_date ON orders(order_date)
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified
# 3. 分析原因
SQL> SELECT object_name, object_type, session_id
FROM v$locked_object l, dba_objects o
WHERE l.object_id = o.object_id
AND o.object_name = ‘ORDERS’;
OBJECT_NAME OBJECT_TYPE SESSION_ID
———— ———– ———-
ORDERS TABLE 123
# 4. 解决方案
# 等待锁释放或终止锁定会话
SQL> ALTER SYSTEM KILL SESSION ‘123,4567’;
System altered.
# 重新实施建议
SQL> CREATE INDEX idx_orders_date ON orders(order_date);
Index created.
4.3 EMCC顾问中心优化方案
EMCC顾问中心优化方案:
- 定期运行:定期运行顾问分析
- 评估建议:评估建议的风险和收益
- 测试先行:测试环境验证建议
- 分步实施:分步实施优化建议
- 文档记录:记录优化过程
Part05-风哥经验总结与分享
5.1 EMCC顾问中心管理最佳实践
EMCC顾问中心管理最佳实践:
- 定期运行:定期运行顾问分析
- 评估建议:评估建议的风险和收益
- 测试先行:测试环境验证建议
- 分步实施:分步实施优化建议
- 文档记录:记录优化过程
- 持续改进:持续优化数据库
5.2 EMCC顾问中心检查清单
– [ ] SQL调优顾问已运行
– [ ] SQL访问顾问已运行
– [ ] 段顾问已运行
– [ ] 内存顾问已运行
– [ ] ADDM已分析
– [ ] 建议已评估
– [ ] 建议已实施
– [ ] 文档已记录
# 顾问中心问题处理流程
1. 发现顾问问题
2. 收集顾问相关信息
3. 分析顾问问题原因
4. 制定处理方案
5. 执行处理方案
6. 验证问题解决
7. 总结经验,优化预防措施
5.3 EMCC顾问中心管理工具推荐
EMCC顾问中心管理常用工具:
- EMCC控制台:图形化管理界面
- EMCLI:命令行管理工具
- SQL调优顾问:SQL优化建议
- 段顾问:空间优化建议
- ADDM:综合性能分析
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
