【疑惑】我脚本里怎么就不能设全局读锁

要用脚本实现MySQL下的裸备份

先做了个测试

#!/bin/sh
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/bin/mysql:/usr/local/webserver/mysql/bin
mysql -S /var/lib/mysql/mysql3306.sock -e"flush tables with read lock;"
cd /data2/master
tar -zcvf 111 adw_ufo
echo `date`


结果执行后,发现无法上读锁,但是我如果进入mysql命令行运行flush tables with read lock是可以上读锁的

这是为什么


脚本执行上读锁没效果

作者: fan0124   发布时间: 2011-06-15

mysql -S /var/lib/mysql/mysql3306.sock -e"flush tables with read lock;"

这样一执行,然后就退出session了,那么这个锁也就自动释放了

要是对全是myisam引擎,可以借助mysqlhotcopy实现


若是innodb引擎,建议用xtrabackup 或者mysqldump+single-transaction

作者: jinguanding   发布时间: 2011-06-15

你的意思是不能直接用COPY文件这样的裸备份的形式了是吧,但是裸备份快啊

没想到不能锁表,这样会导致数据不一致性了

我是innodb引擎,那只能用xtrabackup来了不?

作者: fan0124   发布时间: 2011-06-15