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来完成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程