我如何可以同步具有相同结构的两个MySQL表和不同的服务器
问题描述:
我有两个Ubuntu的服务器,并安装了MySQL 4.0,服务器A和服务器B我如何可以同步具有相同结构的两个MySQL表和不同的服务器
我想服务器A的MySQL表同步到服务器B(复制ServerATable到ServerBTable,保持ServerATable和ServerBTable等于)
该怎么办?
(shell脚本或Java或Linux MySQL的工具)
谢谢:)
答
有几个选项。一种方法是在MySQL中设置replication,它将自动在服务器之间来回复制数据并自动同步数据,并且数据在数据周围飞行时的粒度为几秒。缺点是您必须至少将主服务器公开到网络以允许TCP连接。
外部你可以在服务器A上执行常规的mysqldumps,拷贝到服务器B,加载到mysql中,然后离开你。这将有你运行转储/复制/加载序列的时间间隔的粒度。下面是mysqldump锁定表,因为它正在工作。如果您有一个大型数据库,则在转储过程中您将被锁定在serverA的表之外,并且在加载数据时锁定在serverB之外。加载转储比首先执行转储要慢得多,因为mysql在加载期间会执行各种内部管理(关键更新,表元数据更新等)。
对于第三个选项,您可以编写一个同步器,用于比较两个数据库之间的行,并根据需要进行更新。然而,那么你将一台服务器的内容翻到另一台服务器上并进行逐行操作。此外,还必须处理任何相关的外键/子关系更新,这会变得很匆忙。那时你可能会更好地使用mysqldump选项。
当然,你应该升级你的MySQL到更现代的东西。 v4.x非常过时。您应该至少运行5.0版本,最好是5.1版本。