如何同步具有相同结构和不同服务器的两个MySQL表

如何同步具有相同结构和不同服务器的两个MySQL表,mysql,Mysql,我有两台ubuntu服务器,安装了Mysql 4.0、ServerA和ServerB 我想将ServerA的mysql表同步到ServerB(将ServerATable复制到ServerBTable,保持ServerATable和ServerBTable相等) 怎么做 (shell脚本、java或linux mysql工具) 谢谢:)有几个选择。一种是在MySQL中进行设置,它将自动在服务器之间来回复制数据,并使它们自动保持同步,随着数据的传播,其粒度为几秒钟。缺点是您必须至少向网络公开主服务器

我有两台ubuntu服务器,安装了Mysql 4.0、ServerA和ServerB

我想将ServerA的mysql表同步到ServerB(将ServerATable复制到ServerBTable,保持ServerATable和ServerBTable相等)

怎么做

(shell脚本、java或linux mysql工具)


谢谢:)

有几个选择。一种是在MySQL中进行设置,它将自动在服务器之间来回复制数据,并使它们自动保持同步,随着数据的传播,其粒度为几秒钟。缺点是您必须至少向网络公开主服务器以允许TCP连接

在外部,您可以在服务器A上执行常规MySQLdump,复制到服务器B,加载到mysql,然后离开。这将具有运行转储/复制/加载序列的任何时间间隔的粒度。缺点是mysqldump会在工作时锁定表。如果您有一个大型数据库,则在转储过程中,您将被锁定在serverA的表之外,而在加载数据时,您将被锁定在serverB之外。加载转储要比一开始进行转储慢得多,因为mysql在加载过程中会执行各种内部管理(键更新、表元数据更新等)

对于第三个选项,您可以编写一个同步器来比较两个数据库之间的行,并根据需要进行更新。但是,然后将一台服务器的内容悄悄地传递给另一台服务器,并执行逐行操作。此外,还必须处理任何依赖的外键/子关系更新,这将很快变得复杂。此时,您最好使用mysqldump选项

当然,您应该将MySQL升级到更现代的版本。v4.x非常过时。您应该至少运行5.0版本,最好是5.1版本