我們的Java服務器應用程序將數據記錄到SQL數據庫,該數據庫可能位於同一臺計算機上,也可能不在同一臺計算機上。目前我們使用MS SQL Server,現在我們正在移植到MySQL。用戶在我們的應用服務器上配置數據庫備份參數,例如時間來運行備份,並且應用程序服務器通過sproc在適當的時間執行SQL Server的BACKUP DATABASE命令。它每天進行增量備份和每週完整備份。MySQL數據庫的遠程備份
MySQL缺乏相同的功能來告訴數據庫從客戶端連接恢復自己。我們正在考慮的選項包括:
- 創建一個UDF以外殼化爲mysqldump(或複製數據庫文件),可以通過sproc從我們的應用服務器調用它。本質上,我們將爲MySQL實施一個BACKUP DATABASE版本。
- 創建一個服務在MySQL框上運行,該框可以從應用服務器獲取備份設置並在本地運行mysqldump(或文件複製)。
- 創建一個模擬mysqldump的備份sproc,例如顯示每個表的CREATE TABLES和SELECT INTO OUTFILE。
設置一個cron作業,Perl腳本,第三方應用程序或其他在數據中心工作的技巧並不是首選;這是一個收縮包裝包,需要非常強大,才能實現。
數據庫大小的範圍可以從大約10MB到10GB。
我知道增量片的二進制日誌。如果我們決定使用它們,我認爲一般的解決方案也可能適用於他們。
這都是在Windows 2003 32位或2008R2 64位MySQL 5.1上。
UDF選項似乎是最適合我的。 UDF倉庫(http://www.mysqludf.org/)有mysqludf_sys,這可能是我們需要的,但我認爲我會徵求意見,因爲廣泛的谷歌搜索後,似乎沒有其他人已經達到了相同的結論,或者我們的需求剛剛結束普通的。我們的應用程序是MySQL中唯一的應用程序,所以我不擔心其他用戶訪問我們的UDF。
我忽略的任何解決方案?以這種方式使用UDF的經驗?
感謝, 埃裏克
它可能更便宜,但是與mssql相比,有一百萬件小事讓MySQL很難處理。我喜歡並一直使用它,但是從mssql到mysql是邁向低級的一步。 – 2010-09-02 21:48:26
@Byron Whitlock:不僅僅是備份證明MySQL是從SQL Server中退出的...... – 2010-09-02 21:53:35
@OMG Ponies,yep在datetime字段上沒有微秒精度,不允許在時間戳的表定義中使用默認的GETDATE()一個挑剔的查詢優化器,強迫你重寫你的查詢。這個清單不勝枚舉:( – 2010-09-02 22:03:50