2011-06-04 118 views
2

我对MySQL/SQL的总体经验很少 - 总共n00b!在不同的服务器(同一ISP)上同步两个mysql数据库

我有一个活的网站和开发站点,这两个站点都由同一个ISP托管,但在不同的服务器上,即mysql1.foo.net和mysql2.foo.net。

我想弄清楚同步两个数据库的简单可能的方式 - 无需导出整个东西擦除开发数据库和恢复。

+1

如果您实时需要它,复制就是答案,但导出/恢复是更新开发数据库的常用方法。毕竟你*已经得到了产品的夜间备份,你可以使用...对吧? – Paolo 2011-06-04 08:25:33

+0

我将如何去启用复制? – toomanyairmiles 2011-06-04 10:39:06

回答

1

恐怕有不是“简单”的解决方案。除了相当小的数据库在夜间转储生产和恢复。 Small被定义为将< 12小时用于备份还原操作,这仍然非常大。

复制可能不会削减它,因为只读副本的价值有限,并且我假设您不希望将dev db上的更改传播到prod。

转储 - 还原(如果可行的话)方面具有优势,虽然 - 您定期测试备份实际工作 - 你需要编写,并定期测试您的架构迁移脚本 - 你需要让他们“放手”,让他们可以作为定时任务运行

这些做法使IT运营的生活变得更加轻松,并且是让客户更好地睡眠的良好风险缓解措施。

在大数据库中,我不认为有简单(或便宜!)的方法。

0

MySQL支持master + slave和master + master复制,但您的托管服务提供商需要为您设置。

这里看到更多的信息,如果你有兴趣: http://www.howtoforge.com/mysql_master_master_replication

如果你想两者看作是一次客每同步现在,然后,只需使用:

mysqldump -h server1.example.com -u user -p password database | mysql -u user -p database 
0

除了复制之外,还应该从MySQl Utilities中查看MySQLdbcopy。您的数据库可能足够小,可以使用MySQLdbcopy进行复制,并且您可以将其置于cron作业中进行自动化

0

我看到此问题正在通过创建只将新信息从表格移动到每晚表格或15分钟的作业取决于它是备份还是报告服务器。

有问题,主要是由于如何填充标识列,但除了设计头痛之外,像这样的过程可以让您获得良好的速度。听起来这两个盒子彼此接近,因此数据传输速率应该很好。

我会通过创建一个ssis作业来解决它,你可以使用各种工具,但是你必须确保你的表中有一些东西可以用来识别什么是新数据。时间戳不能使用,因为该过程需要一秒以上的时间,并且这使得它不可靠,我会设置导出列,或者如果表格足够小,并且您的索引每个表格少于3 GB,则可以使用这些列来完成任务。最终你比我们更了解数据,因此是最佳解决方案。

这样做的方式很难,但您将节省大量的服务器时间。 加上它是版本控制你的服务器的好方法,因为每次你的数据类型将被截断时,它们都会抱怨。

相关问题