【问题标题】:AWS architecture help for running database dumps用于运行数据库转储的 AWS 架构帮助
【发布时间】:2016-04-14 09:10:21
【问题描述】:

我在一个 ec2 实例上运行 mysql,并且 tableau 使用这个数据库。 mysqldump 每 4 小时从生产服务器运行一次,在此期间系统可能因转储而停机 10-15 分钟。我计划在这两个实例之上运行另一个运行 mysql 和 elb 的 ec2 实例,以便系统不会因转储而停机。为此,我可能必须在转储期间从 elb 注销实例,并在转储后重新注册它们。在这种情况下这样做是否正确?

【问题讨论】:

  • 请说明预期连接的样子。
  • @mootmoot ,我的意思是我想让 2 个 mysql 实例在不同的 linux 机器上运行,顶部有一个 ELB,并在不同时间在服务器上运行转储。这就是我的想法。正如马克所说,我不确定这是否可行!!!
  • 如果 mysqldump 正在关闭您的网站,那么您做错了。
  • 哦,我明白你在做什么了,现在。为什么不将一台机器设置为另一台机器的复制从属设备,这样只读机器上的数据基本上总是最新的?
  • 是的。它接近实时。如果你的从服务器足够强大来处理工作负载,复制延迟可能只有几毫秒。之所以称为“异步”,是因为它实际上不是瞬时的,并且因为主服务器不等待从服务器,或者需要知道从服务器是否已经赶上。但这是从主机到从机的连续事件流。 dev.mysql.com/doc/en/replication.html

标签: mysql amazon-web-services amazon-ec2 mysqldump amazon-elb


【解决方案1】:

您不能将 ELB 与 MySQL 服务器一起使用。 ELB 不知道哪个服务器是主服务器,哪个服务器是从服务器,因此它不知道向哪个服务器发送更新。

您是否有任何理由不将 Amazon 的 RDS 服务用于您的数据库服务器?它提供不会导致任何停机的自动快照。它还可以轻松创建一个只读副本,您可以在不影响主服务器的情况下对其执行 mysqldumps。

【讨论】:

  • AMAZON RDS 贵一点,这就是我们不想使用 RDS 的原因
【解决方案2】:

目前,您每 4 小时对系统进行一次逻辑备份。大多数情况下的逻辑备份只应在最坏的情况下使用。在还原的情况下,与快照和二进制备份等替代方案相比,逻辑备份非常慢。如果在您的环境中无法使用 Amazon RDS 或任何其他众多替代方案进行快照,我会考虑 Xtrabackup。这是一个免费的独立 HOT 在线二进制备份工具,可与 MySQL 的 Vanilla 安装一起使用。假设您使用的是 InnoDB 而不是 MyISAM 等替代存储引擎,这不会导致您的生产服务器宕机。我个人将它用于热在线二进制备份并在我以前的工作环境中自动构建从属。二进制备份的瓶颈是您在还原过程中的网络速度,并且比逻辑备份快得多。

如果设置另一个 MySQL 实例是您唯一的选择,请查看 GTID 复制和/或 Master-Passive HA 环境,以便从辅助非活动生产服务器中移除 mysqldump,这样您的生产环境就不会停机。

最重要的是,您不应该为了每 4 小时进行一次逻辑备份而降低生产。这在任何生产环境中都不是理想的。

【讨论】:

    【解决方案3】:

    查看 Amazon Database Migration Service (https://aws.amazon.com/dms/)。它允许您进行零停机时间的数据库迁移或同步。

    【讨论】:

      猜你喜欢
      • 2010-11-29
      • 2021-12-03
      • 2021-04-06
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多