Mysql逻辑备份mysqldump
mysqldump
是一种逻辑备份形式,在工作中,用来实现轻量级的快速迁移或恢复数据库。mysqldump
是将数据表导成SQL脚本文件,在不同的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法之一
1、mysqldump进行备份
执行mysqldump --help
可以查看其基本语法:
一般常用的选项有:
- -u -p 用于执行的用户名和密码
- -A 全库备份 -B 单库或者多库
- -R 备份存储过程和函数
- --triggers 备份触发器
- --single-transaction 只在dump开始时短暂获取global read lock,不添加的话备份中全程锁表
- --master-data 生成整个备份文件的检查点,1表示执行,2表示不执行
- --set-gtid-purged 我所接触的日常生产环境中多数都会开启Gtid,此选项为ON/AUTO时会在输出文件中显示Gtid,仅做普通的本机备份时可以设置选项为OFF
例如进行全库备份:
mysqldump -uroot -p -A -R --triggers --single-transaction --master-data=2 --set-gtid-purged=OFF > /database/mysql/tmp/backup.sql
[NOTE]
mysqldump还有很多其他的选项,在日常工作中可以根据需要选用,如add-drop-database等
2、mysqldump恢复数据库
mysqldump导出的是SQL文件,在恢复时直接执行即可:
- 可以登录数据库后执行:
source /database/mysql/tmp/backup.sql
- 或者在数据库外执行:
mysql -uroot -p -e "source /database/mysql/tmp/backup.sql"
[NOTE]
实际生产环境若需要恢复数据库时仅仅只靠mysqldump的备份文件是不够的,它只能将数据库恢复到执行备份的那一刻,而之后数据的恢复还需要结合binlog来完成。