Perl:从不同的服务器同步两个表

时间:2016-04-18 13:50:09

标签: mysql perl

我已经创建了一个可以执行sql命令的脚本。问题是,当它处理两个不同的服务器时,我似乎无法使其工作。例如。

将数据从服务器1的表A插入到服务器2的表A中。

我在数据库之前指定了服务器

insert into `server2`.`database`.`table` select * from `server1`.`database`.`table` where [conditions];

在这里申请样本: http://www.tutorialspoint.com/perl/perl_database_access.htm

问题在于,在尝试将serverA命令发送到serverB时,我似乎无法使其正常工作。

2 个答案:

答案 0 :(得分:1)

你不能这样做。 您需要2个DB连接,每个服务器一个。 使用一个连接从源DB读取数据,使用另一个连接将其插入目标DB。

inser / select是DB命令,由MySQL执行。如果您能够发出这样的命令,您可以从MySQL控制台执行它,并且不需要Perl(或其他语言)

答案 1 :(得分:0)

您需要将此问题分解为两部分:

  1. 为Server1&创建两个DBI对象。 Server2,并连接。
  2. 将server1.tableA中的数据读入结果集。
  3. 迭代ResultSet并将数据插入server2.tableA。
  4. 如果您的问题陈述只是为了同步两个或更多个数据库,请考虑使用以下工具:pt-table-sync:https://www.percona.com/doc/percona-toolkit/2.1/pt-table-sync.html