在非Exadata平台上,我们通常会使用DBA已经很熟悉的OSW,如果有不熟悉的朋友可以参考我之前的随笔初步了解OSW:
而在Exadata平台,我们使用ExaWatcher,本质上其实是一类东西,只是ExaWatch在OSW基础上又做了一些优化,引用Oracle官方blog的说法:
ExaWatcher是专门针对Exadata数据库云平台而重新设计的,加入了IB网络网络的监控、LGWR、RDS、MegaRaid等模块。当出现性能问题时,找到这个时间点,可然后以通过GetExaWatcherResults来收集日志信息,在12.2.0.1中还会生成图表格式。ExaWatcher会自动调用维护模块ExaWatcherCleanup确保其磁盘空间使用维持在特定值以下。
最近做客户关怀,帮客户巡检时,除了Exachk外,对关键系统还用到ExaWatcher这个工具采集相关信息,根据同事的建议,可以使用dcli命令收集所有计算和存储节点的ExaWatcher信息,下面记录下备忘:
1. 确认采集节点IP地址
首先将所有需要采集ExaWatcher信息的节点IP信息配置好:
vi /tmp/all_group
10.113.100.31
10.113.100.32
10.113.100.33
10.113.100.34
10.113.100.35
2. 确认采集时间段
这里假设收集12月10日早上9:00到10:00的ExaWatcher信息,命令如下:
dcli -g /tmp/all_group -l root "/opt/oracle.ExaWatcher/GetExaWatcherResults.sh --from 12/10/2021_09:00:00 --to 12/10/2021_10:00:00"
正常输出如下:
# dcli -g /tmp/all_group -l root "/opt/oracle.ExaWatcher/GetExaWatcherResults.sh --from 12/10/2021_09:00:00 --to 12/10/2021_10:00:00"
10.113.100.31: [INFO ] Result files which are modified after 2021-12-10 09:00:00 and before 2021-12-10 10:00:00 are extracted in a zipped package in /opt/oracle.ExaWatcher/archive/ExtractedResults.
10.113.100.32: [INFO ] Result files which are modified after 2021-12-10 09:00:00 and before 2021-12-10 10:00:00 are extracted in a zipped package in /opt/oracle.ExaWatcher/archive/ExtractedResults.
10.113.100.33: [INFO ] Result files which are modified after 2021-12-10 09:00:00 and before 2021-12-10 10:00:00 are extracted in a zipped package in /opt/oracle.ExaWatcher/archive/ExtractedResults.
10.113.100.34: [INFO ] Result files which are modified after 2021-12-10 09:00:00 and before 2021-12-10 10:00:00 are extracted in a zipped package in /opt/oracle.ExaWatcher/archive/ExtractedResults.
10.113.100.35: [INFO ] Result files which are modified after 2021-12-10 09:00:00 and before 2021-12-10 10:00:00 are extracted in a zipped package in /opt/oracle.ExaWatcher/archive/ExtractedResults.
可以看到默认生成的文件就在/opt/oracle.ExaWatcher/archive/ExtractedResults目录下。
注意:为了顺利采集信息,需要一些前置条件满足:
1.确认节点1可以ssh免密登录到其他节点
使用dcli命令就应该配置好ssh互信,需要清楚dcli要到各节点执行,强烈建议提前审核好要执行的命令。
Exadata平台建议配置好互信,做Exachk巡检时也更方便(配好互信后,巡检时就只需输入交换机密码即可)。
注:本质互信就是将ssh-keygen生成的公钥放到authorized_keys文件中,就可以无密码登录。
比如节点1有所有节点的公钥,其他节点都有节点1的公钥,那么节点1就可以无密码访问其他节点;
又比如节点1有所有节点的公钥,将这个有所有节点公钥的文件分发到其他节点,那么节点间就可以无密码互相访问;
具体如何设置看实际要求。
2.确认命令路径正确@all nodes
dcli -g /tmp/all_group -l root "hostname; ls -l /opt/oracle.ExaWatcher/GetExaWatcherResults.sh"
3.确认目录空间充足@all nodes
dcli -g /tmp/all_group -l root "hostname; df -h /opt"
最后值得一提的是,新版本的ExaWatcher可以直接生成html文件,打开就能展示出绚丽的图表,具体html就在Charts.ExaWatcher.
这不但给分析问题带来了便利,也让DBA们在troubleshooting的过程中能多一些美好^_^