2011-04-19 76 views
0

所以我正在研究在非常基本的主/从设置中设置MySQL复制。我们主要关注服务器故障而不是灾难恢复,所以我主要关心故障转移。我们所有的应用程序都是用PHP编写的,所以我认为在MySQL连接中设置一些东西相当简单,所以如果主数据库无法连接,我们将编写一个文件并故障转移到从服务器上,使用它。MySQL复制恢复的最佳实践

我的问题是在什么重新synching的最佳做法数据后,故障切换会,或者如果有一个更好的解决方案。

故障转移本身应该是自动化的,但恢复过程可以是手动,我们正在寻找这样做了广域网。在此先感谢您的帮助

编辑

念叨主/从与主/从架构后,我真的不任何更清晰上的设置是最适合我的方案。数据库本身相当大(我目前没有确切的大小)并主要表示事务/日志数据(有一些小的身份验证和重复检查)。大部分行不会被改变,只会被添加到数据库中。

我对复制服务器的主要关注/使用是故障转移,因此,尽管主 - 主复制似乎是实现这些目的的理想选择,但阅读这些复制服务器听起来好像是实际发生故障转移一样,并且记录是添加到数据库B中,恢复数据库A比在主从关系中更加困难。

项目不从任何数据库除了汇总/归档过程中删除,我们可以只添加功能来验证这两个服务器在此期间的主/从设置可供选择。在故障恢复发生的灾难恢复情况下,15-20分钟的恢复时间可能没有问题,但不是每晚保持一致。希望这些帮助能够澄清这种情况。

+2

这听起来更像是你想要一种Master-Master类型的复制。 – 2011-04-19 19:44:43

+0

经过进一步的审查,它看起来更像是师父......我不知道这是一个选择。我会进一步研究并根据需要进行编辑。谢谢埃德 – DaOgre 2011-04-19 20:08:25

回答

0

很多因素进来放在这里。根据数据库的大小,您可以创建一种算法来抓取已更改的内容(IE存储移至故障转移或MAX ID时的日期/时间),并仅使用该数据填充新数据库。这会导致问题,并删除项目。如果项目实际上被删除,并且不仅仅在被删除时设置了日期。

根据大小,您可以关闭站点进行维护15-30分钟,执行SQL转储并截断表并通过MySQL CLI界面重新导入数据,但这可能需要一些时间,具体取决于关于数据。

哪个更好,这一切都取决于你的需要。后者可能会被编写到可以关闭站点进行维护的位置,然后将数据从FailOverServer提取到RegServer,然后实现一系列MySQL命令以截断RegServer并在完成后从FailServer导入数据。重新打开站点。

我从来没有做过,所以不能来,如果它是一个很好的路要走说话。但只要在FailOverServer上没有修改表,它应该可以正常工作。

+0

感谢布拉德,我已经更新了原始问题的一些答案。你能否澄清你提到的维护不会是夜间正确的?如果我们触发了故障转移,只是在需要的基础上?(我之前没有设置复制) – DaOgre 2011-04-19 23:20:30

+0

是的,这将是一个需要的基础。但是您需要不断更新FailOver服务器才能进行故障转移。我不确定最好的方法是什么,因为我之前没有这样做。当我有机会的时候,我会看看我是否无法做更多的挖掘同步。 – 2011-04-20 14:01:26