mysql从备份中部分还原

Mul*_*ner 2 mysql sql backup

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

要选择有问题的行,我计划从backupdatabase执行以下操作:

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)
)
Run Code Online (Sandbox Code Playgroud)

如何将结果行插入实时数据库?

Arn*_*anc 6

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

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

SELECT * FROM [rest of your query] INTO OUTFILE '/tmp/outfile'
Run Code Online (Sandbox Code Playgroud)

将outfile复制到其他服务器

在另一台服务器上:

LOAD DATA INFILE /tmp/outfile' INTO TABLE access;
Run Code Online (Sandbox Code Playgroud)

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