Mysql逻辑备份mysqldump

发布时间 2023-06-20 16:52:41作者: 灬夜露沁心灬

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来完成。