2010-12-19 23 views
0

如果我有兩個具有相同定義的表格,我將如何每天備份它的數據?我可以使用MySQL管理員這個從一個表格到另一個表格的mySQL日常備份

  • 上午12:00時每天演出一樣的東西,複製所有從MAIN_TABLE行至backup_table
  • 這將是最好,如果它是有些改變會在作出增量備份在backup_table中記錄,我不希望新的備份消除這些更改。

感謝

回答

2

讓我們從這開始:在同一臺服務器上將數據從一個表複製到另一個表不是備份。

現在,如果您有MySQL 5.1.6或更新版本,則可以使用事件調度程序來安排此類操作。

http://dev.mysql.com/doc/refman/5.1/en/events.html

它應該是爲運行這樣

INSERT INTO 
    secondarydatabase.tableName 
SELECT pr.* FROM 
    primarydatabase.tableName AS pr 
LEFT JOIN 
    secondarydatabase.tableName AS sec 
USING(primaryKeyColumn) 
WHERE sec.primaryKeyColumn IS NULL 

查詢一樣簡單(這將複製任何新行,在現有行的更改將不會被複制)

至於實際備份,請閱讀:

http://dev.mysql.com/doc/refman/5.1/en/backup-methods.html

+0

用於事件調度程序。 – rkg 2010-12-19 22:50:34

0

是的,你絕對可以做到這一點。看看這個頁面:http://dev.mysql.com/doc/refman/5.0/en/batch-mode.html

如果你仔細編寫你的腳本,這樣你不會丟掉表格並插入新行,你不必擔心丟失數據。如果您爲表格中的每一行都存儲了時間戳記,這使事情變得更容易。您可以使用時間戳來加載/更新自上次批處理以來更改或添加的新行。

但是,在執行插入操作之前,始終需要對當前表進行備份。如果導入成功,您可以清理備份表。

相關問題