对于数据库运维人员来说,想要保证数据库在高效平稳的运行就有点像杂技演员在转盘子,需要灵活、专注、能快速做出反应、并且拥有冷静的头脑。数据库几乎是所有能够成功运行系统的核心。而数据库运维人员对组织的数据负责,能找到可依靠的工具来更加高效的管理数据库,并且轻松的维护日常的工作就变得格外重要。数据库运维人员因此需要更好的工具来使得他们的系统平稳运行。那什么工具才是对MySQL管理者来说是经过测试并且值得相信的呢?这里推荐5款开源工具是如何应用的。
Mycli
其只要的特征如下,
-
提供了代码补全,语法高亮等功能
-
自动通过输入***个字符检索表名或字段名
-
通过命令行模式
其中,命令行模式的好处在于,在有着远程操作或者双重认证等安全限制的环境中,不受制约,而图像化的工具未必好用。
Gh-ost
大多数的数据库运维人员都很担心改变MySQL的大表表结构会影响业务,gh-ost的设计号称无触发器,可监控,可动态调整暂停等,更重要的是切换方案的优秀设计。
通常业内的处理方式无外乎三种,一是利用Percona的pt-online-schema-change,Facebook的OSC等三方工具,二是在备库修改通过切换实现滚动变更,三则是升级MySQL到5.6/5.7通过官方Online DDL实现部分变更。然而,引入触发器带来的锁竞争问题,主备切换带来的附加成本以及Online DDL的局限性都不让DBA省心。
那么gh-ost是怎么工作的呢?官方架构图如下:
其有两种工作方式如下:
1. 连接主库直接修改
-
·直连主库
-
·主库上创建ghost表
-
·新表(ghost表)上直接alter修改表结构
-
·迁移原表数据到新表
-
·拉取解析binlog事件,应用到新表
-
·cut-over阶段,用新表替换掉原表
2. 连接从库间接应用到主库
-
连接从库
-
校验完后,在主库创建新表
-
迁移原表数据到新表
-
模拟从库的从库,拉取解析增量binlog应用到主库
-
cut-over阶段,用新表替换掉原表
两者不同的点就在于,通过连接从库来进行变更,对主库的性能影响最小。
PhpMyAdmin
资历最老并且最成熟的WEB版MySQL工具。允许数据库运维人员通过浏览器对数据表进行操作。而且具有丰富的格式来展示数据。
能够动态地将问题、连接数/进程、流量绘制成图形。并且检测当性能下降时自动提供解决建议的功能。
Sqlcheck
在MySQL的反模式中,有兴趣的同学可以看下相关资料(SQL anti-patterns)。
SqlCheck能将够定位的问题分为3类,高风险,中风险,低风险。这个能帮助列出哪些是最影响你效率的问题。你所要做的就是将文件名称当作参数输入到工具中,如下图
Orchestrator
orchestrator是一款非常实用的数据复制管理工具。它能够通过抓取数据库主从关系来生成拓扑图。并且可以通过拖拉拽的方式来重构你的数据库关系。这些操作非常安全,不会因为非法操作来损坏你的数据库。
***,orchestrator能够恢复当其中的节点发生故障,它应用了状态的概念来正确的恢复并且在适当的时候与主库进行连接。