mysqldump工具的常用选项及锁表

最近在看MySQL锁表的帮助文档时发现以前使用mysqldump备份时锁表有一点问题,以前在做备份写脚本时是这样锁表的mysql -A -Bse "flush tables with read lock;",后面看了官方文档知道其实这样是无效的,因为flush tables with read lock;语句在mysql的session退出后会隐式执行unlock tables,那么flush tables with read lock;只有在mysql的session不退出的情况下在开启一个session的时候才能真正的生效,而在平时我们自己手动备份的时候是可以这样操作的,但是如果是写脚本做定时备份,那么就不行了。

最后呢就去看了下mysqldump的文档大致总结出了一些在备份中比较常用的参数选项,当然,如果要查看mysqldump所有的参数选项可以去参看mysql的官方文档:,当然有部分参数选项有版本限制,还有平时用的比较多的连接数据库时用的参数选项,想必都知道,在这里就不一一赘述了,常用的参数如下:

--add-locks#在转储前锁定库表,并且在结束转储结束后unlock,这个参数选项在备份中比较常用
--all-databases#转储所有的库表
--lock-all-tables,-x#锁定数据库中所有的库表,这里加的是只读锁
--lock-tables,-l#在转储之前锁表
--flush-logs,-F#在转储之前刷新MySQL服务器日志文件
--flush-privileges#在转储之前刷新MySQL服务器的权限表
--routines,-R#在转储的数据库中转储存储程序(函数和程序),这个如果有定义时间戳肯定会用到
--xml,-X #输出成xml格式
--opt#它可以给出很快的转储操作并产生一个可以很快装入MySQL服务器的转储文件。该选项默认开启,但可以用--skip-opt禁用
--allow-keywords#允许创建关键字列名。应在每个列名前面加上表名前缀

当然mysqldump是mysql中比较古老的备份和导入工具,平时备份还有很多的工具可以使用,如mysqlbackup、xtraback等等,这里就不一一列举,还有mysqldump是作为mysql的默认工具,那么它也追寻mysql读取配置文件my.cnf的规则,my.cnf会依次从4个路径的顺序读取,要注意的是后面的my.cnf会与前面的my.cnf内容比对,如有相同选项的不同配置或多出配置,或者会覆盖前者,my.cnf文件读取路径如下:

/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
~/.my.cnf#最后这个是家目录下的隐藏文件

使用mysqldump进行MariaDB 的备份 

使用mysqldump导出数据库 

基于mysqldump快速搭建从库 

恢复mysqldump创建的备份集 

使用mysqldump命令行工具创建逻辑备份 

mysqldump实现数据库逻辑备份

MySQL的逻辑备份(mydumper+mysqldump) 

mysqlpump与mysqldump及mydumper的备份速度测试 

mysqldump 快速搭建特定库主从架构(GTID) 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ffe9cbf432937df9f3b905fd5af8500b.html