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. 在windows下安装docker Toolbox 启动Docker Quickstart Terminal 失败!2. font-family - 我引入CSS3自定义字体没有效果?3. docker start -a dockername 老是卡住,什么情况?4. macos - mac下docker如何设置代理5. dockerfile - [docker build image失败- npm install]6. objective-c - iOS开发支付宝和微信支付完成为什么跳转到了之前开发的一个app?7. PHP中的$this代表当前的类还是方法?8. angular.js - 求一款angular插件9. java - 我用Tomcat访问SQL server数据库时,出现以下错误,该怎么解决?10. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?