MySQL 简介及常用工具

一、MySQL简介

MySQL是使用最广泛的开源关系型数据库管理系统,它是多线程、多用户、C/S架构。分为三个分支MySQL(Oracle 公司)、Percona MySQL(Percona)、MariaDB( MariaDB Foundation)。

Oracle MySQL是Oracle 收购SUN公司后获得的MySQL产品,分为企业版和社区版,是现在主流的MySQL产品。官网为:https://www.mysql.com/

Percona MySQL是原来MySQL运维人员组建的公司,用Oracle MySQL源码重新编译,增加优化、加固等功能,优势是MySQL运维工具比较齐全。官网为:https://www.percona.com/

MariaDB 是原MySQL创始人不满Oracle 对MySQL控制,重新发起的MySQL的项目,现在获得各大厂家的支持(例如Redhat、IBM等)。优势是完全开源、新特性多,缺点是稳定性差。官网为:https://mariadb.org/

二、MySQL社区

1、官方文档:

  Oracle MySQL:https://dev.mysql.com/doc/

  Percona MySQL:https://www.percona.com/doc/percona-server/LATEST/index.html

  MariaDB:https://mariadb.org/documentation/

2、官方博客

  Oracle MySQL:https://blogs.oracle.com/mysql/

  Percona MySQL:https://www.percona.com/blog/

  MariaDB:https://mariadb.org/blog/

3、社区

    MySQL团队博客:https://mysqlserverteam.com/

   淘宝数据月报:http://mysql.taobao.org/monthly

   知乎数据库内核专栏:https://zhuanlan.zhihu.com/c_206071340

   awesome-mysql:http://shlomi-noach.github.io/awesome-mysql/

   Dbaplus:https://dbaplus.cn/

   cndba:https://www.cndba.cn/index.htm

   墨天轮:https://www.modb.pro/

   爱可胜开源社区:https://opensource.actionsky.com/

   沃趣社区:http://www.woqutech.com/docs.php?classid=24

    use-the-index:https://use-the-index-luke.com/

4、博客

    叶金荣:https://imysql.com/

三、MySQL开发工具

1、Navicat for MySQL

      Navicat for MySQL 是管理和开发 MySQL 或 MariaDB 的理想解决方案。它是一套单一的应用程序,能同时连接 MySQL 和 MariaDB 数据库,并与 Amazon RDS、Amazon Aurora、Oracle Cloud、Microsoft Azure、阿里云、腾讯云和华为云等云数据库兼容。这套全面的前端工具为数据库管理、开发和维护提供了一款直观而强大的图形界面。

    下载地址为:https://www.navicat.com.cn/products/navicat-for-mysql

2、MySQL Workbench

    Oracle 公司开发的MySQL管理平台,分为付费和免费版。

下载地址为:https://dev.mysql.com/downloads/workbench/

3、SQL Developer

Oracle 公司推出的免费数据库管理工具,主要支持Oracle数据库,管理MySQL数据,需要增加MySQL驱动。因为是java 开发的,所有启动比较缓慢,占内存比较大。

4、phpMyAdmin 

  phpMyAdmin 是以php为基础开发的B/S架构的MySQL数据库管理工具。下载地址:https://www.phpmyadmin.net/

四、MySQL备份恢复工具

1、mysqldump

        mysqldump是MySQL自带的逻辑备份工具,可以将数据导出为SQL脚本。在数据量比较小且变更不频繁的时候,可以用此工具备份。

2、mysqlpump

  mysqlpump是MySQL新增的逻辑备份工具,和mysqldump主要区别是并行备份。

3、Percona xtrabackup

Percona xtrabackup 是Percona 公司提供的开源、免费、在线、非阻塞的MySQL备份工具,支持热备份【备份时候,MySQL可以正常运行】,主要是支持物理备份全量备份和增量备份。备份速度快,在数据量大的时候,是最好的方案。

下载地址:

https://www.percona.com/downloads/Percona-XtraBackup-LATEST/

3、MySQL Enterprise Backup

  MySQL Enterprise Backup是Oracle开发的Oracle 企业版备份恢复工具,属于付费工具。

五、MySQL慢日志工具

1、mysqldumpslow

  mysqldumpslow是MySQL自带的慢查询日志解析和统计工具,可以用来对慢查询日志进行简单分析。

2、pt_query_digest

  pt_query_digest是Percona公司开发Percona tookit中的一项,主要用来分析慢查询。它可以分析binlog、general log、slowlog,也可以通过show processlist或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。

    下载地址:https://www.percona.com/downloads/percona-toolkit/LATEST/

六、MySQL监控工具

1、innotop

  innotop 编写者Balon Schwartz,《高性能MySQL》的作者之一。innotop的作用为实时地展示服务器正在发生的事情,监控innodb,监控多个MySQL实例,是一款MySQL运维和问题定位分析的工具。

  下载地址:https://github.com/innotop/innotop

2、mysqladmin

  mysqladmin是MySQL自带数据管理命令行工具,可以通过mysqladmin来监控MySQL。

3、Percona tookit

  Percona tookit 是Percona 开发的一组MySQL管理和监控工具,可以用来监控和分析MySQL的性能问题。

  下载地址:https://www.percona.com/downloads/percona-toolkit/LATEST/

4、Percona Monitoring and Management

      Percona Monitoring and Management (PMM)是一款开源的用于管理和监控MySQL和MongoDB性能的开源平台,通过PMM客户端收集到的DB监控数据用第三方软件Grafana画图展示出来。PMM提供了对MyISAM、InnoDB、TokuDB和PXC/Glarera的监控,另外也提供了Query Analytics的功能,可以检视执行了哪些SQL指令,并对执行效能较差的语法进行优化。另外在新版本还支持了MySQL复制拓扑图结构构造。

        下载地址:https://www.percona.com/downloads/pmm2/

5、Zabbix

  zabbix 是一个基于 Web 界面提供分布式系统监视及网络监视功能的企业级开源解决方案,采集主机、网络、数据库等信息,集成监控和告警。

    下载地址:https://www.zabbix.com/cn/download

6、Prometheus

  Prometheus是一个开源系统监控和警报工具。最初是在SoundCloud建立的。自2012年成立以来,许多公司和组织都采用了普罗米修斯,该项目拥有一个非常活跃的开发者和用户社区。它现在是一个独立的开放源码项目,并且独立于任何公司。为了强调这一点,为了澄清项目的治理结构,普罗米修斯在2016年加入了云计算基金会,成为继Kubernetes之后的第二个托管项目。

    下载地址:https://prometheus.io/download/

7、StatsD

        Statsd 最早是 2008 年 Flickr 公司用 Perl 写的针对 Graphite、datadog 等监控数据后端存储开发的前端网络应用,2011 年 Etsy 公司用 node.js 重构。statsd狭义来讲,其实就是一个监听UDP(默认)或者TCP的守护程序,根据简单的协议收集statsd客户端发送来的数据,聚合之后,定时推送给后端,如graphite和influxdb等,再通过grafana等展示。

        下载地址:https://github.com/statsd/statsd

8、Nagios

        Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。

        下载地址:https://www.nagios.org/downloads/

9、Lepus

        Lepus(天兔)数据库企业监控系统是一套由专业DBA个人(目前就职于某互联网公司),针对互联网企业开发的一款专业、强大的企业数据库监控管理系统,企业通过Lepus可以对数据库的实时健康和各种性能指标进行全方位的监控。目前已经支持MySQL、Oracle、MongoDB、Redis数据库的全面监控。

      下载地址:http://www.lepus.cc/soft/index

10、开源MySQL监控工具

    贺春旸开发的MySQL监控及运维工具。【《MySQL管理之道:性能调优、高可用与监控(第2版)》一书作者,三次获得dbaplus年度MVP】

        下载地址:https://github.com/hcymysql

七、MySQL 审计工具

1、MySQL商业版审计插件,社区版不存在审计插件。

2、Percona的审计插件

  Percona audit log插件随Percona Server一起提供,默认情况下不会安装,也不会启动。

3、MariaDB的审计插件

  下载地址:https://mariadb.com/my_portal/download/audit_plugin

4、Mcafee基于Percona audit log开发的审计插件

  下载地址:https://github.com/mcafee/mysql-audit/

#参考地址:

https://www.percona.com/blog/2016/02/15/mysql-mariadb-with-mariadb-auditing-plugin/

https://www.percona.com/blog/2015/09/10/percona-server-audit-log-plugin-best-practices/

八、MySQL 性能测试工具

1、SysBench

  SysBench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。

    下载地址:https://github.com/akopytov/sysbench?hmsr=aladdin1e5

2、tpcc-mysql

  tpcc-mysql用于MySQL基准测试,percona基于TPC-C(下面简写成TPCC)衍生出来的产品。

    下载地址:https://github.com/Percona-Lab/tpcc-mysql

3、mysqlslap

    mysqlslap是MySQL自带的基准测试工具。

九、MySQL 高可用架构

1、主从

  主从复制也是最常用和最简单的高可用的架构。复制是从一个MySQL数据库服务(主)复制数据到另外一个或者多个MySQL数据库服务(从),在复制的时候,可以根据配置复制所有数据库、选择数据库、表。这种复制主要是基于MySQL的二进制日志 (binary log),复制用的二进制的格式通常为Row Based Replication (RBR),可以根据不需求和场景,设置参数实现延迟主从、多级主从、多主一从、多从一主、只读从库等解决方案。

  参考网址:https://dev.mysql.com/doc/refman/5.7/en/replication.html

2、MHA

  MHA(Master High Availability)目前在 MySQL 高可用方面是一个相对成熟的解决方案,它由日本 DeNA 公司的 youshimaton(现就职于 Facebook 公司)开发,是一套优秀的作为 MySQL 高可用性环境下故障切换和主从提升的高可用软件。

在 MySQL 故障切换过程中,MHA 能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA 能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

该软件由两部分组成:MHA Manager(管理节点)和 MHA Node(数据节点)。MHA Manager 可以单独部署在一台独立的机器上管理多个 master-slave 集群,也可以部署在一台 slave 节点上。MHA Node 运行在每台 MySQL 服务器上,MHA Manager 会定时探测集群中的 master 节点,当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 master,然后将所有其他的 slave 重新指向新的 master。整个故障转移过程对应用程序完全透明。

在 MHA 自动故障切换过程中,MHA 试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,MHA 没法保存二进制日志,只进行故障转移而丢失了最新的数据。使用 MySQL 5.5 的半同步复制,可以大大降低数据丢失的风险。MHA 可以与半同步复制结合起来。如果只有一个 slave 已经收到了最新的二进制日志,MHA 可以将最新的二进制日志应用于其他所有的 slave 服务器上,因此可以保证所有节点的数据一致性。

目前 MHA 主要支持一主多从的架构,要搭建 MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当 master,一台充当备用 master,另外一台充当从库,因为至少需要三台服务器,出于机器成本的考虑,淘宝也在该基础上进行了改造,目前淘宝TMHA已经支持一主一从。

  下载地址:https://github.com/yoshinorim/mha4mysql-manager/

3、PXC

  Percona XtraDB Cluster(PXC)是一个MySQL数据库集群解决方案。它确保高可用性,防止停机和数据丢失,并为不断增长的环境提供线性可伸缩性。

  下载地址:https://www.percona.com/downloads/Percona-XtraDB-Cluster-LATEST/

4、MGR

  MGR(MySQL Group Replication)是一个MySQL Server插件,可用于创建弹性,高可用、容错的MySQL集群方案。

    参考网址:https://dev.mysql.com/doc/refman/5.7/en/group-replication.html

5、Galera Cluster

Galera Cluster是由Codership开发的MySQL多主集群,包含在MariaDB中,同时支持Percona xtradb、MySQL,是一个易于使用的高可用解决方案,在数据完整性、可扩展性及高性能方面都有可接受的表现。MariaDB Galera Cluster集成Galera复制功能提供一个版本的集群。

          下载地址:https://galeracluster.com/downloads/

6、MySQL NDB Cluster

  MySQL NDB Cluster其主要功能是在无共享存储的系统中部署基于内存的数据库Cluster,其主要是通过NDB Cluster(简称NDB)存储引擎来实现的。

  下载地址:https://dev.mysql.com/downloads/cluster/

  参考网址:https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster.html

7、InnoDB Cluster

        InnoDB Cluster主要由MySQL Shell、MySQL Router和MySQL服务器集群组成,三者协同工作,共同为MySQL提供完整的高可用性解决方案。MySQL Shell 对管理人员提供管理接口,可以很方便的对集群进行配置和管理(只少三个节点组成的MGR集群)。MySQL Router 可以根据部署的集群状况自动的初始化,是客户端连接实例。如果有节点down机,集群会自动更新配置。集群包含单点写入和多点写入两种模式。在单主模式下,如果主节点down掉,从节点自动替换上来,MySQL Router会自动探测,并将客户端连接到新节点。

          下载地址:https://www.mysql.com/downloads/

8、MyCAT

  MyCat是目前最流行的基于Java语言编写的数据库中间件,是一个实现了MySql协议的服务器,其核心功能是分库分表。配合数据库的主从模式还可以实现读写分离。

  MyCat是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服务。 由于前面讲的对数据进行分片处理之后,从原有的一个库,被切分为多个分片数据库,所有的分片数据库集群构 成了整个完整的数据库存储。

  下载地址:http://www.mycat.org.cn/

9、KingShard

  Kingshard 是一个由Go开发高性能MySQL Proxy项目,kingshard在满足基本的读写分离的功能上,致力于简化MySQL分库分表操作;能够让DBA通过kingshard轻松平滑地实现MySQL数据库扩容。

    下载地址:https://github.com/flike/kingshard

10、DBLE

    dble是上海爱可生信息技术股份有限公司基于mysql的高可扩展性的分布式中间件,是基于开源项目MyCat开发的。

    下载地址:https://github.com/actiontech/dble

11、proxySQL

ProxySQL 是基于 MySQL 的一款开源的中间件的产品,是一个灵活的 MySQL 代理层,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。

下载地址:https://github.com/sysown/proxysql/releases

参考网址:https://proxysql.com/documentation/installing-proxysql/

12、ShardingSphere

    Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款相互独立,却又能够混合部署配合使用的产品组成。 它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。

Apache ShardingSphere 定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。 它通过关注不变,进而抓住事物本质。关系型数据库当今依然占有巨大市场,是各个公司核心业务的基石,未来也难于撼动,我们目前阶段更加关注在原有基础上的增量,而非颠覆。

Apache ShardingSphere 5.x 版本开始致力于可插拔架构,项目的功能组件能够灵活的以可插拔的方式进行扩展。 目前,数据分片、读写分离、多数据副本、数据加密、影子库压测等功能,以及 MySQL、PostgreSQL、SQLServer、Oracle 等 SQL 与协议的支持,均通过插件的方式织入项目。 开发者能够像使用积木一样定制属于自己的独特系统。Apache ShardingSphere 目前已提供数十个 SPI 作为系统的扩展点,仍在不断增加中。

ShardingSphere 已于2020年4月16日成为 Apache 软件基金会的顶级项目。

下载地址:https://github.com/apache/shardingsphere

参考地址:http://shardingsphere.apache.org/index_zh.html 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容