xtrabackup备份期间为什么会锁住innodb表?

369 views
Skip to first unread message

蓝白

unread,
Jul 12, 2011, 4:18:07 AM7/12/11
to MySQLer
我的mysql数据库是mysql.5.5,xtrabackup版本是1.6,要备份的数据库都是innodb类型,为什么我在执行
xtrabackup热备份的时候,对其中的一个innodb表进行插入的时候无法插入,只有当备份完毕才能插入成功。
我的xtrabackup语句如下:
xtrabackup --backup --defaults-file=/etc/my.cnf --target-dir=/data/
xtra_allbak

李森

unread,
Jul 12, 2011, 5:38:51 AM7/12/11
to mys...@googlegroups.com
xtrabackup 是什么东东,我还没有用过。。。见笑了,学习下。

jinshuai dou

unread,
Jul 19, 2011, 3:17:08 AM7/19/11
to mys...@googlegroups.com
纠正一下上次回复的错误,今天在看innobackupex脚本时,才发现上次的理解是错误的,在没采用no-lock参数时,innobackupex脚本的mysql_lockall这个函数会执行FLUSH TABLES WITH READ LOCK;命令,这个会锁住所有的表,当然也就包括InnoDB表。
这个问题最近导致我的应用直接挂掉了两次,sad,以后大家用的时候也要小心。

在 2011年7月14日 下午1:00,jinshuai dou <douji...@gmail.com>写道:
检查一下你的数据库是发有MyISAM引擎的表,如果有,那么XtraBackup会在备份MyISAM表时,执行 FLUSH TABLE WITH READ LOCK;语句,只会导致所有的表都被锁住。 


--
MySQLer 邮件组
要发布讨论请发 Mail 至 邮件组邮件地址:mys...@googlegroups.com
要退订次邮件组请发 Email 至 mysqler+u...@googlegroups.com
要了解更多的信息,请访问:http://groups.google.com/group/mysqler?hl=en


jinshuai dou

unread,
Jul 14, 2011, 1:00:35 AM7/14/11
to mys...@googlegroups.com
检查一下你的数据库是发有MyISAM引擎的表,如果有,那么XtraBackup会在备份MyISAM表时,执行 FLUSH TABLE WITH READ LOCK;语句,只会导致所有的表都被锁住。 

在 2011年7月12日 下午4:18,蓝白 <lanb...@126.com>写道:

jun one

unread,
Jul 13, 2011, 3:10:10 AM7/13/11
to mys...@googlegroups.com

3.1 全量备份
# 指定mysql配置文件路径
mycnf=/etc/my.cnf
#指定备份根目录
backup_path=/data/mysqlbackup
# 开始备份
innobackupex-1.5.1 –user=username –password=password –host=127.0.0.1 –port=3306 –slave-info –tmpdir=$backup_path –defaults-file=$mycnf $backup_path 2> $backup_path/xtrabk.log

### 注意点:
在备份过程中,把INNODB数据文件备份完成后,会锁住整个库,并开始复制MYISAM等非事务引擎的数据和.frm;
所以如果你拥有比较多的MYISAM表,锁库的时候会持续很长。如果是在主库上运行,千万注意。


在 2011年7月12日 下午5:38,李森 <arse...@163.com>写道:
xtrabackup 是什么东东,我还没有用过。。。见笑了,学习下。
Reply all
Reply to author
Forward
0 new messages