sql - mysql从备份部分恢复

标签 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)
)

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

最佳答案

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

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

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

将输出文件复制到其他服务器

在另一台服务器上:

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

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

关于sql - mysql从备份部分恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4805341/

相关文章:

mysql - 使用 JOIN 时如何优化 COUNT 个子查询

sql - 使用 ms Access 中的查询从表中选择并插入到另一个表的不同类型的列

mysql - 如何选择仅存在于数据条目范围之间的值?

database - 每天将 Postgresql 数据库从小型 SSD 自动备份到多个硬盘

sql - 存储具有可变列数的大型 SQL 数据集

php - 新手MySQL和php的问题

mysql - SQL 未知列,尽管它确实存在 - SQL 错误 (1054)

MySQL 将返回值赋给变量

curl - curl命令在 Elasticsearch 中一次关闭所有索引

Mysql Windows "mysqldump -t"恢复