Oracle数据库管理每周一例-第十五期 一些工具和小技巧

Oracle数据库管理每周一例(12.2,18c,19c) 2020-09-20

  • 第十五期 一些工具和小技巧
    • 1.EMCC
    • 2.MOS
    • 3.其他一些工具和技巧
    • 下期预告:

第十五期 一些工具和小技巧

本周没啥事,但是由于一些原因,包括周末都在搞服务器系统安全汇报,有点烦。然后就是花了一周总计22小时拼好了乐高豪华千年隼。

1.EMCC

EMCC,全称Oracle Enterprise Manager Cloud Control,和以前11g的Grid Control类似,当前我这里使用的版本是13.4.1。从12c开始,数据库自带的EM express不再如之前11g的EM那样功能强大,仅提供简单的监控和配置功能,运行不会对数据库造成较大的性能负担。另一方面。12c/13c EMCC也提供了强大的集中监控、配置能力,可以实时监控数据库性能、SQL运行状态,执行AWR、ASH、ADDM等,检查备份、DG状态;除了监控数据库,也可以对主机各项指标、一体机、部分软件等进行监控。EMCC还有其他许多强大功能,这里就不再赘述。
Oracle数据库管理每周一例-第十五期 一些工具和小技巧_第1张图片
Oracle数据库管理每周一例-第十五期 一些工具和小技巧_第2张图片
Oracle数据库管理每周一例-第十五期 一些工具和小技巧_第3张图片
Oracle数据库管理每周一例-第十五期 一些工具和小技巧_第4张图片
EMCC中,我认为最实用的功能是实时ADDM,需要sysdba用户及系统oracle用户信息,可以获取实时数据库信息,其中对数据库中锁信息的展示能够很好的帮助DBA进行监控并处理:
Oracle数据库管理每周一例-第十五期 一些工具和小技巧_第5张图片
Oracle数据库管理每周一例-第十五期 一些工具和小技巧_第6张图片
Oracle数据库管理每周一例-第十五期 一些工具和小技巧_第7张图片

Oracle数据库管理每周一例-第十五期 一些工具和小技巧_第8张图片
Oracle数据库管理每周一例-第十五期 一些工具和小技巧_第9张图片

Oracle数据库管理每周一例-第十五期 一些工具和小技巧_第10张图片
通过实时ADDM可以很方便的查看当前数据库中各种锁的类型、顶级阻塞会话、锁链等信息,十分方便。

2.MOS

作为一个Oracle DBA,对MOS(My Oracle Support,support.oracle.com)一定不会陌生。通过MOS,可以搜索问题解决方案、搜索补丁、提交SR(服务请求Service Request)等。
这里主要对SR进行一些说明,SR需要购买对应license。在很多数据库故障中,通过现场DBA分析处理后往往需要溯源问题原因,这时候常常需要通过SR进行反馈,这同时也是很多地方要求的通过原厂得出结论。还有很多问题,特别是一些bug,往往现场DBA无法给出解决方案,这种情况下也必然要通过SR进行反馈并处理。当然,通过有些问题通过MOS文档搜索没有解决或者还有疑问也可以提交SR。
在我看来,SR是解决问题的好方法,但是更重要的是SR会根据问题向你要求需要收集的各种日志及信息,并给出完整的分析过程。在这个过程中我们可以很好的了解到SR后台人员寻找、解决问题原因的各种方法,通过对这些方法的归纳总结是可以极大的提高DBA能力的。

3.其他一些工具和技巧

TFA(Trace File Analyzer Collector)是一款日志信息收集神器,可以根据需求收集数据库的各种信息,一次性导出包括告警日志、追踪日志、系统日志、系统性能日志等,并对其中无效内容(比如日志结构注释、无用重复内容等)进行清理,使得日志有更好的可读性。在RAC环境中,可以在一个节点上收集整个集群的TFA信息,也可以指定节点进行收集。一般SR处理问题会要求提交TFA信息。

tfactl diagcollect -from "Apr/02/2020 15:00:00" -to "Apr/02/2020 16:00:00"

EXAchk/ORAchk,这两个巡检工具比较类似,EXAchk多了对于Exadata一体机其他组件的检查。这两个巡检工具会根据Oracle最佳实践与当前实际情况从软件、系统、硬件等方面给出各类检测结果集建议。DBA可以从中选择需要变更的配置、参数等。

ASHdump,这里通过对dba_hist_active_sess_history进行查询可以得到对应时段的ASH信息,这个也是SR中经常需要的内容。

create table active_session_his as select * from dba_hist_active_sess_history where SAMPLE_TIME between TO_TIMESTAMP ('05-Sep-20 21:00.00', 'DD-MM-RR HH24:MI:SS') and TO_TIMESTAMP ('05-Sep-20 22:00.00', 'DD-MM-RR HH24:MI:SS') order by INSTANCE_NUMBER, SAMPLE_ID, SESSION_ID; 
create table ash_sqltext as select * from DBA_HIST_SQLTEXT where sql_id in (select distinct sql_id from dba_hist_active_sess_history where SAMPLE_TIME between TO_TIMESTAMP ('05-Sep-20 21:00.00', 'DD-MM-RR HH24:MI:SS') and TO_TIMESTAMP ('05-Sep-20 22:00.00', 'DD-MM-RR HH24:MI:SS'));
exp导出这两张表

下期预告:

待定

你可能感兴趣的:(Oracle,数据库)