mysql从备份中部分还原

时间:2011-01-26 13:57:57

标签: sql mysql backup

由于服务器崩溃,我需要将在一段时间内创建的一些行从备份(位于我的本地计算机上)恢复到服务器上的实时数据库。

要选择有问题的行,我打算从备份数据库中执行以下操作:

SELECT *
FROM access AS t1
WHERE AccessId IN (
SELECT AccessId FROM access_completed AS t1
WHERE (TIMEDIFF(CCompleteDateTime, "2011-01-24 02:00:00") < 23 AND TIMEDIFF(CCompleteDateTime, "2011-01-24 02:00:00") > 0)
)

如何将生成的行插入实时数据库?

1 个答案:

答案 0 :(得分:6)

您可以在备份上使用SELECT ... INTO OUTFILE,并使用LOAD DATA INFILE加载数据。

INTO OUTFILE将所选数据转储到本地文件,格式为MySQL可以使用LOAD DATA INFILE解析回来的格式。所以你只需要像这样转储和加载:

SELECT * FROM [rest of your query] INTO OUTFILE '/tmp/outfile'

将outfile复制到其他服务器

在另一台服务器上:

LOAD DATA INFILE /tmp/outfile' INTO TABLE access;

它也适用于FEDERATED个表。这将允许从主服务器查询备份数据库;所以你可以做INSERT INTO access ... SELECT ... FROM federated_access ...