对于数据库管理员(DBA)来说,保持数据库运行在最佳状态需要具备敏捷,专注,快速反应的能力以及一颗冷静的头脑。数据库几乎是所有应用程序成功运行的核心,由于DBA负责组织数据,因此寻找可靠的工具帮助简化数据库管理流程并简化日常维护任务是必要的。
以下这些优秀工具可以改善MySQL环境中的CLI和Web管理,SQL查询,模式迁移以及复制和恢复。(顺附Github地址,Star数量和提交数量供广大DBA参考)
Mycli项目提供MySQL命令行自动完成和语法高亮显示,它是最流行的MySQL管理工具之一。
诸如跳转主机和双因素认证之类的安全限制使许多MySQL DBA只能通过命令行访问系统。在这种情况下,心爱的GUI工具(如MySQL Workbench,Monyog等)不是合适的选择。
使用命令行的过程中,大部分时间都花在了黑色的终端世界。Mycli最好的一点就是语法突出的丰富性。例如,它允许DBA在WHERE子句中将查询字符串中的函数和运算符在视觉上分离出来。对于简短的单行查询来说,这可能不是什么大不了的事情,但是当使用多表执行JOIN操作查询时,这就变成了巨大优势。
Mycli支持多行查询和语法突出显示,这意味着可以在查看或优化查询时最重要的部分,可以选择多种语法高亮配色方案或创建自己的配色方案。
Mycli的另一个明星功能是智能完成,允许通过输入前几个字符来从上下文相关列表中选择表名和列名。不需要因为忘记WHERE子句中列的名称而放弃当前输入运行SHOW CREATE TABLE。
99%的MySQL数据库管理员(DBA)在执行对MySQL表的更改时担心会影响生产,可以考虑Gh-ost(GitHub Online Schema Migration)。Gh-ost提供MySQL模式更改,不会阻塞写入,不使用触发器,并且可以暂停和恢复迁移!
为什么这个如此重要?由于MySQL 5.6提供了新的ALTER TABLE ... ALGORITHM = INPLACE DDL(数据定义语言)功能,因此有可能修改一个表而不阻塞写操作,例如添加索引(B-tree)等常用操作。但是,在写入(DML语句)被阻塞的情况下,最显着的是增加了FULLTEXT索引,表空间的加密以及列类型转换。
MySQL工具中运行时间最长,最成熟的项目之一是用于通过Web管理MySQL的古老PhpMyAdmin工具。phpMyAdmin允许DBA浏览和修改MySQL数据库对象:数据库,表,视图,字段和索引。有多种选项可使用十几种格式执行数据导出,修改MySQL用户和权限,以及执行临时查询。
其他流行的在线模式更改工具(如Percona的pt-online-schema-change)通过在主服务器上实现一组三个触发器(INSERT,UPDATE和DELETE)来保持shadow副本表与变化同步。这会由于写入放大而导致较小的性能损失,但更重要的是需要七个元数据锁定实例。这些有效地阻止了DML(数据操纵语言)事件。
由于Gh-ost使用二进制日志进行操作,因此不会受到基于触发器的缺点影响。最后,如果服务器出问题,可以暂停模式迁移一段时间,并在恢复后继续。
那么Gh-ost如何工作呢?默认情况下,Gh-ost连接到副本(从),标识主节点,并在主节点上进行应用迁移。它将副本上的更改接收到binlog_format = ROW的源表中,解析日志并将这些语句转换为在主shadow表上重新执行。它跟踪副本上的行数,并确定何时执行原子切换(切换表)。
SQL反模式可能会降低查询速度,但通常需要经验丰富的DBA和开发人员仔细研究代码来识别和解决这些问题。Sqlcheck反映了Karwin确定的四类反模式:
·Logical database design
·Physical database design
·Query
·Application development
Orchestrator是高可用性管理工具,它提供了发现MySQL环境的复制拓扑能力,通过上下链接来识别主从。它也可以通过GUI重构复制拓扑结构,提供一个拖放界面将从设备提升为主设备,这是一个非常安全的操作。事实上,Orchestrator拒绝任何非法操作,以免破坏系统。
最后,Orchestrator在节点遭遇失败时可以支持恢复,因为它使用状态的概念智能选择正确的恢复方法,并决定使用适当的主升级过程。
Orchestrator是GitHub的Shlomi Noach提供的另一个工具。它由Apache许可证2.0涵盖,该项目有34位贡献者,2,780个提交和900颗Star。(Github地址:https://github.com/github/orchestrator)
动力节点在线课程涵盖零基础入门,高级进阶,在职提升三大主力内容,覆盖Java从入门到就业提升的全体系学习内容。全部Java视频教程免费观看,相关学习资料免费下载!对于火爆技术,每周一定时更新!如果想了解更多相关技术,可以到动力节点在线免费观看MySQL数据库视频教程学习哦!
代码小兵57603-29 17:54
代码小兵69606-07 17:03
代码小兵22104-13 18:12
代码小兵22104-20 20:22