MySQL 備份和檢查修復問題?
問題描述
1、mysqlcheck 和 myisamchk 是不是只能檢查和修復MyISAM引擎的表呢?如果要檢查,修復,優(yōu)化Innodb表的話,這兩個命令可以用嗎?看網上還像說這兩個命令只能針對MyISAM表做操作,Innodb不行的,求解,這個到底是怎么回事呢?
2、我知道MyISAM表備份是可以直接導出的,或者直接復制data文件夾就可以了。但是innodb備份的時候,如果復制data文件夾,則需要先停止mysqld服務。
---------------那么問題來了:
-------------------1、MyISAM和innodb這兩種表是否都可以通過導出sql的方式進行備份,因為我以前導出過,發(fā)現之后導入是用也是正常的??墒窃趧e的地方說這種方式innodb有時候會出問題
-------------------2、如果是直接復制data文件夾的話,那么停止mysqld服務后,是否就能確保這兩種表都能完美備份?
-------------------* 一般我喜歡直接.sql形式導出備份數據表,那么假如一個數據庫中涉及到這兩種表,我該怎么備份比較好呢?
求解,謝謝大神。
問題解答
回答1:你看你是熱備還是冷備
如果你是熱備的話可以用mysqldump進行熱備,但是這樣會鎖表,應用無法向數據庫進行寫操作,如果必須有寫操作的話,可以使用xtrabackup熱備工具,支持在線熱備,對innodb表不會有讀寫影響,但是對myisam表會鎖住,如果你庫里面大部分是myisam表的話,還是直接mysqldump吧。
如果是冷備,可以關閉服務的話,那么就直接邏輯備份了,(假如是myisam引擎表,那么就很爽了,直接備份datadir里面的數據文件即可,可以物理恢復數據的),innodb引擎表需要備份ibdata文件、*.frm文件和my.cnf,設置innodb_data_file_path來制定原先的ibdata路徑
相關文章:
