《高性能MySQL第3版》读书笔记(四)

Published: 11 Feb 2019 Category: mysql

十二、 高可用性

归根结底,高可用性实际上意味着“更少的宕机时间”。然而糟糕的是,高可用性经常和其他相关的概念混淆,例如冗余、保障数据不丢失,以及负载均衡。

12.1 宕机原因

首先对宕机事件按表现方式而非导致的原因进行分类。一般来说,“运行环境”是排名第一的宕机类别,大约35%的事件属于这一类。运行环境可以看作是支持数据库服务器运行的系统和资源集合,包括操作系统、硬盘以及网络等。

性能问题紧随其后,也是约占35%;然后是复制,占20%;最后剩下的10%包含各种类型的数据丢失或损坏,以及其他问题。

12.2 如何实现高可用性

首先,可以尝试避免导致宕机的原因来减少宕机时间。许多问题其实很容易避免,例如通过适当的配置、监控,以及规范或安全保障措施来避免人为错误。

第二,尽量保证在发生宕机时能够快速恢复。最常见的策略是在系统中制造冗余,并且具备故障转移能力。这两个维度的高可用性可以通过两个相关的度量来确定:平均失效时间(MTBF)和平均恢复时间(MTTR)。

MySQL的同步复制可以通过两种集群方案解决: MySQL Cluster(NDB Cluster)和Percona XtraDB Cluster。

十三、 云端的MySQL

pass

第14章 应用层优化

pass

第15章 备份与恢复

还原和恢复。在本章中它们有其特定的含义。还原意味着从备份文件中获取数据,可以加载这些文件到MySQL里,也可以将这些文件放置到MySQL期望的路径中。恢复一般意味着当某些异常发生后对一个系统或其部分的拯救。包括从备份中还原数据,以及使服务器完全恢复功能的所有必要步骤,例如重启MySQL、改变配置和预热服务器的缓存等。

关于备份的建议:

  • 在生产实践中,对于大数据库来说,物理备份是必需的:逻辑备份太慢并受到资源限制,从逻辑备份中恢复需要很长时间。基于快照的备份,例如Percona XtraBackup和MySQL Enterprise Backup是最好的选择。对于较小的数据库,逻辑备份可以很好地胜任。
  • 保留多个备份集。
  • 定期从逻辑备份(或者物理备份)中抽取数据进行恢复测试。保存二进制日志以用于基于故障时间点的恢复。expire_logs_days参数应该设置得足够长,至少可以从最近两次物理备份中做基于时间点的恢复,这样就可以在保持主库运行且不应用任何二进制日志的情况下创建一个备库。备份二进制日志与过期设置无关,二进制日志备份需要保存足够长的时间,以便能从最近的逻辑备份进行恢复。
  • 完全不借助备份工具本身来监控备份和备份的过程。需要另外验证备份是否正常。
  • 通过演练整个恢复过程来测试备份和恢复。测算恢复所需要的资源(CPU、磁盘空间、实际时间,以及网络带宽等)。
  • 对安全性要仔细考虑。如果有人能接触生产服务器,他是否也能访问备份服务器?反过来呢?

第16章 MySQL用户工具

接口工具: MySQL Workbench、SQLyog、phpMyAdmin、Adminer

命令行工具集: Percona Toolkit、Maatkit and Aspersa、MySQL Workbench工具集

SQL实用集:common_schema、mysql-sr-lib、MySQL Forge

16.1 监测工具

大多数MySQL商店需要提供两种类型的监测工具:健康监测工具——检测到异常时告警——和为趋势、诊断、问题排查、容量规划等记录指标的工具。

Nagios也许是开源世界中最流行的问题检测和告警系统。它周期性检测监控的服务器并将结果与默认或自定义的阈值相比较。如果结果超出了限制,Nagios会执行某个程序并且(或)把问题的告警发给某些人。

Zabbix是一个同时支持监控和指标收集的完整系统。例如,它将所有配置和其他数据存储到数据库而不是配置文件中。它存储了比Nagios更多的数据类型,因而可以得到更好的趋势和历史报表。

Zenoss是用Python写的,拥有一个基于浏览器的用户界面,使用了Ajax,这使它更快和更高效。它可以自动发现网络上的资源,并将监控、告警、趋势、绘图和记录历史数据整合到了一个统一的工具中。

Hyperic HQ是一个基于Java的监控系统,比起同级别的其他大部分系统,它更称得上是企业级监控。

OpenNMS也是用Java开发,有一个活跃的开发社区。它拥有常规的特性,例如监控和告警,但同样也增加了绘图和趋势功能。它的目标是高性能、可扩展、自动化和灵活。

Groundwork Open Source用一个可移植的接口把Nagios和其他几个工具整合到了一个系统中。对于这个工具最好的描述是:如果你是Nagios、Cacti和其他几个工具方面的专家,并且花了许多时间将它们整合一起,那很可能你是在闭门造车。

商业监控系统: MySQL Enterprise Monitor、MONyog、Splunk、Pingdom

全书完。