问题1 关于热备份 仅对MyISAM表
首先我就用了一下mysqldump -h127.0.0.1 -uxxx -pxxx -B testdata > test01.sql
在这个mysqldump执行的过程中,我开了一个session ,并且向这个数据库的表插入数据。
插入显示的成功的.
但我在test01.sql文件里面并没有看到我用session插入的数据。但是在select * from testdata;
里面却是有了这些数据。。
请问,在这个过程了。mysqldump做了一个什么样的操作实现的这一点。。
问题2
如果数据库中有MyISAM和InnoDB两种存储引擎(里面有大量表),我要进行热备份,是要对2种存储引擎
分别采用不同的机制备份吗?。。也就是需要2次mysqldump 操作进行备份吗?
解决方案 »
- pgsql 存储过程返回集合的问题
- 查询一个表的数据写到一个新的表中,这样写错了么?
- SQL语句问题,从来没有遇到过
- how to read data from mysql except "select * from mysql.database" sentens?
- 还是mysql数据获取乱码的问题,tomcat环境下使用
- 请教大家一个关于多类型数据库的问题,分不够再加
- SQL中含有特殊字符,进行查询时会出错,怎么办?
- 300分求救怎样在Powerbuilder中连接MySql?
- 两个表链接的问题
- 源码编译安装mysql-5.7.14的时候出现错误
- mysql 与javaweb开发时,向MySQL插入中文显示??
- mysqldump 两种存储引擎热备份
这也是为什么mysqldump 有一个参数 -lock-all-tables 的原因。
mysqldump 一个表一个表的导出,比如已经导出了 t1,t2,t3, 此刻你新插入t1的数据自然不会体现
============================================================== 那么说 ,我在mysqldump 的时候 ,还没有开始导出到t3的时候,我在一个session里面插入的数据t3的数据。这些数据是可以进入 *.sql文件里面的?,,,(我想也是、、) 对吗? 那么,我在对myisam进行热备份的时候,只用先--lock-all-tables 才能起到热备份的作用了?
======================================================================= 关于问题2 我的意思是,如果说数据库中既有myisam和innodb 两种存储引擎 如果说MYISAM进行备份的时候,需要进行--lock-all-tables操作。必然也锁定了innodb表。。 可是我对innodb表进行热备份的时候根本不需要进行lock table...。 我对innodb热备份使用 --single-transaction ... 也是就说。如果一起备份。我锁了全部的表,不是对innodb的表的插入有影响吗?
2、mysqldump不区分引擎 。
至于是否要加 --lock-all-tables这和你的备份策略相关,你自己要决定是否要备份同一时刻数据库中所有表的快照。另一贴已经解释这个问题了。同样是由你的备份策略决定。