将数据从1个DB复制到另一个DB

时间:2010-08-03 23:02:33

标签: mysql

我必须删除prod中的一些表数据。 db和要删除的记录应将记录备份复制到另一个本地数据库。这涉及两个数据库,驻留在两个不同的服务器/实例中。

是否可以通过sql(mysql)查询来执行此操作?

2 个答案:

答案 0 :(得分:1)

我会使用mysqldump和where条件来获取记录。保存完所有内容后,即可将其从prod中删除。这些命令应该在命令行中起作用,包括密码以避免提示是可选的。

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"'

答案 1 :(得分:0)

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

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

  1. 将数据复制到本地数据库,然后将该数据库复制到另一台服务器
  2. 使用Federated存储引擎
  3. 两者都需要对我们的服务器进行一些严格的重新配置,因为未启用联合或二进制日志记录(复制所需)。这需要时间,最好能找到其他解决方案。

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

    也许第三种选择是使用cron作业自动化事物:

    • 将数据复制到同一服务器上的单独数据库
    • 使用mysqldump在另一台服务器上链接的文件夹中备份该数据库
    • 在第二台服务器上,从sql dump恢复数据库