2008-12-18 81 views
0

我正在使用的應用程序會隨使用情況動態生成文件。這使得分期,開發和生產之間的備份和同步成爲一項真正的重大挑戰。我們可以得到順利解決方案(如果可行)的一種方法是在備份數據庫時可以備份動態生成的文件,並在恢復時可以將這些文件從數據庫中移出文件系統。如何將文件系統中的文件導入/導出MySQL DB?

我想知道是否有任何可用(付費或免費)應用程序可以用作腳本來實現這一點。

基本上,如果我有

/usr/share/appname/server/dynamicdir 
/usr/share/appname/server/otherdir/etc/resource.file 

然後採取以上,並與腳本把他們mysql數據庫的例子。

如果您需要更多信息,請讓我知道。

回答

0

使用PHP,Perl,Python等應該是微不足道的,你是否在尋找某人爲你寫這篇文章?

+0

我的問題的主要目的是要知道這是否微不足道,並已經在開源社區。我正在尋找一種簡單的方法來備份我們的應用程序,該應用程序由於設計缺陷而構建,並且很難進行備份。如果我們需要進一步開發,那麼我們必須重新考慮。 Thks – Geo 2008-12-19 16:13:20

1

您的意思是說應用程序將文件存儲爲MySQL數據庫中的Blob和/或創建大量臨時表?或者你只是想臨時文件 - 它們自己與數據庫無關 - 將作爲備份存儲在MySQL中?

我不確定嘗試使用MySQL作爲文件備份的網絡新中介是個好主意。如果應用程序已經使用它,那麼有一件事,如果不是的話,MySQL在這裏不是正確的工具。

無論如何。如果您有興趣在時間點捕獲文件系統,則答案是利用LVM snapshots。您可能必須重新構建服務器才能將文件系統導入到LVM中,並且有足夠的空閒存儲空間來存儲您認爲需要的快照。

我建議爲這個應用臨時文件創建一個新的掛載點。如果你的MySQL表使用的是InnoDB,一個簡單的腳本來在後臺運行mysqldump --single-transaction,然後是lvm快照過程,那麼你可以將這些腳本同步到少於一秒的時間。