我在一个ec2-instance上运行mysql,tableau使用这个数据库。 mysqldump每4小时从生产服务器运行一次,在此期间系统由于转储而下降大概10-15分钟。我打算让另一个运行mysql的ec2实例和elb放在这两个实例之上,这样系统就不会通过转储了。为此,我可能必须在转储期间从elb取消注册实例,并在转储后将它们注册回来。这是在这种情况下做到这一点的正确方法吗?
答案 0 :(得分:1)
您无法在MySQL服务器上使用ELB。 ELB不知道哪个服务器是主服务器,哪个服务器是从服务器,因此它不知道将更新发送到哪个服务器。
您是否有任何理由不将Amazon的RDS服务用于数据库服务器?它提供的自动快照不会造成任何停机。它还可以轻松创建一个读取副本,您可以在不影响主服务器的情况下执行mysqldump。
答案 1 :(得分:1)
目前,您每4小时对系统进行一次逻辑备份。大多数情况下的逻辑备份只应在最坏的情况下使用。如果还原,与快照和二进制备份等备选方案相比,逻辑备份速度非常慢。如果在您的环境中使用Amazon RDS或任何其他众多替代品进行快照不是一种选择,我会调查Xtrabackup。这是一个免费的独立HOT在线二进制备份工具,可以与MySQL的Vanilla安装一起使用。假设您使用的是InnoDB而不是MyISAM等替代存储引擎,则不应关闭生产服务器。我个人将它用于热门在线二进制备份,并在我以前的工作环境中自动构建从站。二进制备份瓶颈是恢复过程中的网络速度,并且比逻辑备份指数级快。
如果设置另一个MySQL实例是您唯一的选择,请查看GTID复制和/或主被动HA环境,以便将mysqldump从辅助非活动生产服务器上移除,以便您的生产环境不会出现故障。
最重要的是,你不应该让生产每4小时进行一次逻辑备份。这在任何生产环境中都不理想。
答案 2 :(得分:1)
查看Amazon Database Migration Service(https://aws.amazon.com/dms/)。它允许您执行零停机数据库迁移或仅仅同步。