2011-01-26 110 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