2010-08-03 118 views
1

我必须删除prod中的一些表数据。数据库和要删除的记录应备份的记录应复制到另一个本地数据库。这涉及两个数据库,分别位于两个不同的服务器/实例中。将数据从1 DB复制到另一个数据库

是否有可能通过sql(mysql)查询来做到这一点?

+0

@Sharpeye:我相信你可以通过mysql查询。但你也可以通过phpmyadmin来完成,只是简单的导出然后导入我害怕? – 2010-08-03 23:05:46

+0

只是另一个数据库,或另一个MySQL服务器(实例)? – Wrikken 2010-08-03 23:05:49

+1

它位于两个不同服务器中的两个数据库之间。 – Sharpeye500 2010-08-03 23:07:33

回答

1

我会用mysqldump用where条件得到记录了。一旦你保存了所有的东西,你就可以从产品中删除它们。这些命令应该从命令行工作,包括密码以避免提示是可选的。

mysqldump -u user -pPassword -h hostname1 dbname tablename 
    --where 'field1="delete"' 
    --skip-add-drop-table --no-create-db --no-create-info > deleted.sql 
mysql -u user -pPassword -h hostname2 dbname < deleted.sql 
mysql -u user -pPassword -h hostname1 dbname -e 'DELETE FROM tablename WHERE field1="delete"' 
0

我正在尝试做同样的事情,将数据从表中复制到另一台服务器,然后从原始中删除它。

到目前为止,我看到两个选项:

  1. 将数据复制到本地数据库,然后复制该数据库到另一台服务器
  2. 使用Federated存储引擎

这都需要一些严重的重构我们的因为未启用Federated或二进制日志记录(复制所需的)服务器。这需要时间,如果能找到其他解决方案,这将是最好的。

该过程需要每天执行,因此需要完全自动化。

也许第三个选择是使用cron作业自动化的事情:

  • 复制的数据在同一台服务器上一个单独的数据库
  • 备份数据库与文件夹中的mysqldump这是对链接其他服务器的第二个服务器上太
  • ,从SQL转储恢复数据库
相关问题