2011-01-26 70 views
1

由于服务器崩溃,我需要恢复一些行,在一定的时间期限内产生,从备份(位于我的本地机器上)到服务器上实时数据库恢复。MySQL的部分从备份

要选择问题,我打算从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) 
) 

如何插入结果行到现场分贝?

+0

你想在同一时间做同一查询?如果是,那么你更好创建一个过程来完成这项工作,perheps一个触发器开始在希望的时间..Ÿ想做什么exctly? – B4NZ41 2011-01-26 14:05:48

回答

5

您可以使用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 ...

+0

辉煌 - 你刚才救了我一晚上 – Muleskinner 2011-01-26 14:17:57