• 1
  • 2
  • 3
  • 4
  • 5
mysql数据库问题 首 页  »  帮助中心  »  数据库  »  mysql数据库问题
MySQL RDS 的设计与功能体验
发布日期:2016-4-21 16:4:54

  MySQL RDS 的设计与功能体验

   我在前边几篇文章都没涉及很多技术,所以希望这篇文章计划介绍下 Amazon 的 RDS ,帮助大家了解。若你是云服务研发人员或者产品人员,可以关注一下 Amazon RDS 的设计理念。如果你是普通研发人员或互联网创业公司的 CTO 可以关注一下 RDS 的功能与优缺点。如果要我来说说亚马逊云服务里哪个模块省心,莫过于 RDS了 。本篇文章主要说 MySQL 的 RDS 。因为MySQL 大概是大部分公司或者团队的最佳选择,它使用广泛,几乎成了创业公司标配。以下是本片文章的目录:

  •   监控系统
  •   参数配置系统
  •   备份系统
  •   跨 IDC 高可用
  •   安全体系
  •   数据回滚和恢复
  •   自动维护和更新
  •   活动日志
  •   错误和慢查询日志
  •   型号选择
  •   主从同步
  •   长期租用

  一、监控系统

  亚马逊提供了 RDS 数据库的重要指标的实时查看功能。包括:

  •   CPU 使用率
  •   连接数
  •   磁盘可用空间
  •   内存可用空间
  •   读写 IOPS
  •   Binlog 大小
  •   读写吞吐量
  •   网络吞吐量。

  RDS 数据库支持在 Web 控制页面实时查询这些图表;并且支持同一组服务器的图表对比。

  RDS 的监控建立在 AWS CloudWatch 基础之上;监控图表服务完全由 CloudWatch 提供。CloudWatch 是亚马逊云服务的统一监控组件,支持图表与报警接口。

  这样,几乎不再需要借助其他工具对 RDS 数据库进行监控。当然,在某些情况下可以通过命令行链接数据库,进行 SHOW FULL PROCESSLIST 类似的操作。

  二、参数配置系统

  这是一个参数模板系统。AWS 的 RDS 提供一个称为 Parameter Groups 的系统进行 RDS MySQL 参数配置与模板管理。用户可以根据自己需要建立多个参数模板;在创建新 RDS 服务器的时候使用这些模板。可以在 AWS 模板基础上修改一些比如以下的重要参数:

  •   query_cache_size
  •   max_allowed_packet
  •   slow_query_log
  •   long_query_time
  •   max_connections
  •   tmp_table_size
  •   max_heap_table_size

  另外如果有自己的其他组件需要用 RDS 的 BINLOG,还可以修改 binlog_format ROW 或者 MIXED 。MySQL 的其他所有参数都可以进行配置。

  需要注意的是某些参数可以在运行时修改,但是某些参数在 RDS 运行情况下修改的话,需要 reboot 服务器。假如手动创建 RDS 实例的话一定记得选择自己创建的 PG 。

  三、备份系统

  备份系统包括三部分,如以下所示:

  •   定期创建镜像;
  •   定期 DUMP 数据库;
  •   RDS 的时间点回滚日志。

  数据库镜像可以随时用来恢复整个数据库实例,并且速度很快。定期创建镜像需要通过 AWS 命令或者接口实现;也可以通过界面操作完成。镜像的创建完全不影响数据库的服务和使用。

  DUMP 数据库和其他地方一样,连接数据库并且用命令 DUMP。

  回滚日志:RDS 提供一个功能回滚到之前一段时间范围内的时间点。注意这个回滚非常耗时间,猜测其中包含了 RDS 自己维护的定期镜像恢复和相应时间段 BINLOG 的日志恢复。其中 BINLOG 的恢复非常耗时。

  四、跨 IDC 高可用

  跨区域高可用这个是 RDS 最大的亮点。创建一个 RDS 实例,可以选择是否支持 Multi-AZ 即跨区域 IDC 的高可用。即使一个 IDC 不可用仍然不影响 RDS 服务。我们都知道跨 IDC 的任何系统都非常难以维护,AWS RDS 正解决了这个问题。但是同时,跨区域高可用会维护一个 Hot standby 服务器在另外一个机房,价格会翻倍,并且另外一个服务器不可提供服务。高可用不是完全可用,没错。假如一个 IDC 的 RDS 出现问题,会有一个 Failover 的过程,根据应用特点大约 1-2 分钟。期间最好情况下也需要 query cache 的预热的完成。

  强制 Failover:由于跨 IDC 的网络延迟,也许你需要 RDS 和其他服务器工作在同一个或者 2 个 Region。如果 RDS Failover 到不是期望的区域,可以通过 reboot 来强制 Failover 到其他 Region。高可用 RDS 的区域基本在 2 个 Region 之间互相 Failover 切换。

  五、安全体系

  AWS 提供了以下两种选择:

  1.   和 EC2 类似的安全组
  2.    VPC 的安全模式。

  可以定义开放端口服务给哪些服务器。AWS Security Groups 是另一个庞大的体系。

  六、数据回滚和恢复

  数据回滚之前已经提到可以一键选择恢复到之前的一个时间点。另外可以通过镜像的方式进行恢复。或用自己导出的 SQL 备份文件进行传统方式恢复。

  可以选择备份时间窗口,选择在业务低峰期进行自动备份。

  七、自动维护和更新

  可以自定义每周的维护时间窗口,AWS 会在这个时间段内进行 PATCH 、安全升级等操作。选择自己的业务低峰期即可。另外假如有安全更新之类 AWS 会邮件预告,并且会现在在待执行列表中。

  八、活动日志

  大部分界面的手动操作与自动操作比如 reboot 都会显示在活动日志中,比如自动备份、强制 Failover 等等。

  九、错误和慢查询日志

  尽管不能进入运行 RDS 的服务器,但是也可以获取慢日志进行分析,但是 AWS 会每小时滚一个日志文件,这些文件可以在 AWS 下载或实时查看。

  十、型号选择

  型号选择类似 EC2 的选择,可以根据以下的参数选择型号:

  •   CPU
  •   内存大小
  •   网络带宽大小

  另外可以选择是否 SSD 磁盘,以及磁盘 IOPS 的规格。

  磁盘类型主要分普通磁盘和 SSD 。但是都可以选择 IOPS 的提升。这个可以根据需要选择,假如是读多,非交易系统,普通 IOPS 完全可以满足要求。

  十一、主从同步

  创建主服务器的时候可以创建多个从服务器,这个跟传统的主从读写分离架构类似。与传统的主从读写分离架构的区别是你不再需要手动操作主从同步,更加安全。主从延迟图表也可以从界面监控系统看到。

  十二、长期租用

  亚马逊支持年付或更长时间租用模式,价格往往只有一半。

  亚马逊云平台大大降低了运维成本,并且不再需要人工进行复制的数据库优化。性能甚至比人工优化过的更好。但 MySQL 数据库的原理未变, DBA 之前的经验仍然可以帮你作出正确判断。