共计 1877 个字符,预计需要花费 5 分钟才能阅读完成。
最近在看 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 的官方文档:http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html,当然有部分参数选项有版本限制,还有平时用的比较多的连接数据库时用的参数选项,想必都知道,在这里就不一一赘述了,常用的参数如下:
–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 的备份 http://www.linuxidc.com/Linux/2015-07/120294.htm
使用 mysqldump 导出数据库 http://www.linuxidc.com/Linux/2014-10/108192.htm
基于 mysqldump 快速搭建从库 http://www.linuxidc.com/Linux/2015-04/116170.htm
恢复 mysqldump 创建的备份集 http://www.linuxidc.com/Linux/2015-02/113631.htm
使用 mysqldump 命令行工具创建逻辑备份 http://www.linuxidc.com/Linux/2015-02/113629.htm
mysqldump 实现数据库逻辑备份 http://www.linuxidc.com/Linux/2015-08/121551.htm
MySQL 的逻辑备份 (mydumper+mysqldump) http://www.linuxidc.com/Linux/2016-12/137854.htm
mysqlpump 与 mysqldump 及 mydumper 的备份速度测试 http://www.linuxidc.com/Linux/2016-12/138170.htm
mysqldump 快速搭建特定库主从架构 (GTID) http://www.linuxidc.com/Linux/2016-10/136127.htm
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-02/140456.htm