从事ORACLE数据库运维多年,发现ORACLE数据库上的很多方法都在影响着我们思维,进而在对其他类型数据库进行运维时,也会不自觉地学习ORACLE数据库很多方式。数据库运维经历发展,终将会步入智能化运维,不管身处什么时代,故障分析仍然是一项十分复杂的工作,在当下的情况,我们一般的路线是收集信息,分析信息,寻找根因,解决问题,在这个过程中,我们会积累很多经验并产出很多产物,例如对某个结构的原理研究,例如常用的脚本等等。 在数据库故障诊断上,oracle数据库提供了丰富的日志和trace信息,以及丰富的视图可以进行回溯。特别在一套RAC上,除了数据库本身的日志还有crs集群的日志,ORACLE也提供了丰富的工具来辅助诊断,ORACLE TFA是我们常用的工具,TFA所在的AHF已经集成了非常多的辅助工具了,这些都是ORACLE在不断完善对数据库运维的多年积累的产物。 在对MYSQL数据库的运维上,我的个人感觉是貌似工具看起来很多,但又很少,多是因为各种开源各种脚本琳琅满目,少是因为被真正使用的不多。很多人用perl,shell,python写了一套工具,很多时候也就是在自己所在的公司使用。有时工具的使用还是要看使用场景,很难有真正大而全的工具或应用,在什么样的场景适合怎样的工具才是重要。在对MYSQL的故障诊断上,我们借鉴了ORACLE TFA,开发了一个MYTFA,目的是为了能够在未来的MYSQL问题支持上,能够快速有效地收集到我们需要地诊断信息,而后能够方便地进行诊断。DBA不需要去寻找脚本去查数据库,只需要简单执行我们的工具就能够立即获取相应的日志和报告。
|
MYTFA |
功能介绍 |
|
基础信息收集 |
ü MYSQL 常用信息,例如: errorlog , slowlog , generalog , status,processlists,innodb status,variables 等; ü 可调用 diagnostics() 生成 HTML 报告; ü 数据库日志可以按时间范围进行收集; ü OS 常用信息, /var/log/messages ,操作系统基础信息等 |
|
增强信息收集 |
ü 对 mysqld 进程进行 perf,pstack 收集 |
|
按问题场景收集 |
v 按不同问题场景进行收集,例如 lock,hang , cpu 高 ,IO 高,主从同步等(进行中) |
|
集成 OSWATCH |
ü 集成 oswbb 脚本,可通过程序对 osw 进行启停; ü 可以按时间范围对 osw 信息进行收集,且能直接生成可视化图表工具。 |
|
数据库状态一键评测 |
v 生成数据状态健康度初步评测报告 |
|
其他功能 |
ü 安全性考虑:配置文件中以密文方式保存数据库密码 ü 持续完善中 |
程序主界面:
