MySQL 備份和檢查修復問題?
問題描述
1、mysqlcheck 和 myisamchk 是不是只能檢查和修復MyISAM引擎的表呢?如果要檢查,修復,優化Innodb表的話,這兩個命令可以用嗎?看網上還像說這兩個命令只能針對MyISAM表做操作,Innodb不行的,求解,這個到底是怎么回事呢?
2、我知道MyISAM表備份是可以直接導出的,或者直接復制data文件夾就可以了。但是innodb備份的時候,如果復制data文件夾,則需要先停止mysqld服務。
---------------那么問題來了:
-------------------1、MyISAM和innodb這兩種表是否都可以通過導出sql的方式進行備份,因為我以前導出過,發現之后導入是用也是正常的。可是在別的地方說這種方式innodb有時候會出問題
-------------------2、如果是直接復制data文件夾的話,那么停止mysqld服務后,是否就能確保這兩種表都能完美備份?
-------------------* 一般我喜歡直接.sql形式導出備份數據表,那么假如一個數據庫中涉及到這兩種表,我該怎么備份比較好呢?
求解,謝謝大神。
問題解答
回答1:你看你是熱備還是冷備
如果你是熱備的話可以用mysqldump進行熱備,但是這樣會鎖表,應用無法向數據庫進行寫操作,如果必須有寫操作的話,可以使用xtrabackup熱備工具,支持在線熱備,對innodb表不會有讀寫影響,但是對myisam表會鎖住,如果你庫里面大部分是myisam表的話,還是直接mysqldump吧。
如果是冷備,可以關閉服務的話,那么就直接邏輯備份了,(假如是myisam引擎表,那么就很爽了,直接備份datadir里面的數據文件即可,可以物理恢復數據的),innodb引擎表需要備份ibdata文件、*.frm文件和my.cnf,設置innodb_data_file_path來制定原先的ibdata路徑
相關文章:
1. android - 安卓做前端,PHP做后臺服務器 有什么需要注意的?2. mysql - ubuntu開啟3306端口失敗,有什么辦法可以解決?3. javascript - 從mysql獲取json數據,前端怎么處理轉換解析json類型4. mysql - C#連接數據庫時一直這一句出問題int i = cmd.ExecuteNonQuery();5. mysql replace 死鎖6. extra沒有加載出來7. 求救一下,用新版的phpstudy,數據庫過段時間會消失是什么情況?8. thinkPHP5中獲取數據庫數據后默認選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙9. javascript - 微信網頁開發從菜單進入頁面后,按返回鍵沒有關閉瀏覽器而是刷新當前頁面,求解決?10. django - Python error: [Errno 99] Cannot assign requested address
