在mysql的同一服务器上进行数据库同步

时间:2011-10-14 10:01:09

标签: mysql replication

我需要在同一个mysql服务器上同步放置两个数据库。 此同步不用于复制,但对于统计信息,第二个基础上的信息不一定是“新鲜”。

目前,我每个人都在做一个简单的mysqldump,这可能是一个解决方案,但好吧,它很脏。

所以我想到了使用mysql复制,并遇到了两个主要问题: - 如果两个数据库在同一台服务器上,我无法弄清楚如何使它工作。 - 我不知道如何每天只在精确的时间执行一次复制。

我在Windows上使用mysql 5.1.49(好吧,仅用于我的测试,生产服务器在linux上),这是我在my.ini文件中尝试的内容

# Replication
server-id = 1

report-host = master-is-slave-host
log-bin = "d:/localhost-binlog"
log-error = "d:/localhost-errorlog"
relay-log = "d:/localhost-relaylog"

binlog-do-db = dev_nbe_msg_metier
replicate-rewrite-db = base1->base2

replicate-same-server-id = 1

日志工作正常,不幸的是,这是我能得到的,我尝试了几种选择,但无法使其正常工作。

如果有人有解决方案或更好的方法来进行同步,我会很高兴听到它。

2 个答案:

答案 0 :(得分:2)

MySQL中的开箱即用复制假设每个涉及的服务器都是服务器;)

这意味着您只能使用两个MySQL实例在同一台物理计算机上的数据库之间进行复制,每个实例都有自己的服务器标识。

令人高兴的是,你几乎可以随意暂停/重启复制,所以每晚你都会在奴隶机器上运行:

start slave;

...让它运行一段时间,然后当它再次开始生产时,运行:

stop slave;

如果你感觉聪明,你可以使用UNTIL的{​​{1}}条款(参见here)来避免不得不停止奴隶,并且一旦你做到了,就让它自动发生赶上了。

还有其他解决方案,但有了OOTB功能,这可能是最佳选择。

答案 1 :(得分:0)

您可以使用Schema and Data Comparison tools中的dbForge Studio for MySQL同步两个数据库。

还有独立的工具: