mysql备份、恢复之mysqldump
发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等mysqldump 语法 :默认配置读
千家信息网最后更新 2025年11月12日mysql备份、恢复之mysqldump
mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等
mysqldump 语法 :
默认配置读取路径: /etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
常用参数 : -u, --user=name 指定用户 -h, --host=name 指定主机 -p, --password[=name] 指定密码 -A, --all-databases 指定所有库,-A与--all-databases不同时使用 -B, --databases 只指定--databases表示备份单个数据库;多数据库之间使用空格隔开; 如果不指定--databases表示备份整个数据库;只指定dbname表示备份单张表;多表之间使用空格隔开 --master-data[=#] 0 表示关闭,默认值为 0 1 表示开头打印CHANGE MASTER命令信息,在复制场景中有用 2 表示添加注释信息,记录当前所处二进制日志及所处位置 --single-transaction 如果全部为 InnoDB引擎表,则不需要使用 --lock-all-tables; 基于此选项能实现热备InnoDB表;会启动单个大事务,对全局服务影响可能是持久的 --lock-all-tables 执行备份前请求锁定表,一般只锁定当前要备份的数据库及表 --add-drop-database 在恢复之前先删除已经存在的对应数据库 --add-drop-table 在恢复之前先删除已经存在的对应表 -C, --compress 将数据先压缩后通过网络传输 -E, --events 备份数据同时,备份事件调度器代码 -R, --routines 备份数据同时,备份存储过程和存储函数 -d, --no-data 表示只备份表结构不备份数据,复制表结构、空库至其它服务器时有用.其它任何时候不可用 --opt 同时启动各种高级选项
备份方式 :
全量+增量+二进制日志
前提需要在配置中添加参数 :
default-storage-engine = InnoDB 设置默认存储引擎为InnoDB
innodb_file_per_table=1 设置每表单个表空间
log-bin=mysql-bin 启用二进制功能
备份过程 : 全量备份 : 使用InnoDB引擎,备份使用--single-transaction选项不需要锁定表即实现热备;使用非InnoDB引擎,备份需要使用--lock-all-tables选项进行请求锁定所有表后开始备份 mysqldump -uroot -pmypass --single-transaction --all-databases --master-data=2 > /backup/mysql_fullbak.sql 增量备份 : mysql>SHOW MASTER STATUS; 查看当前处于哪个日志文件及位置 less /backup/mysql_fullbak.sql 查看从哪个位置开始 mysqlbinlog --start-position=4579 --stop-position=4868 mysql-bin.000015 > /backup/increment.sql 指定开始及结束位置导出成增量备份 二进制日志备份: mysql>INSERT INTO test (Name,Age) VALUES ('tom',18); 增量备份后,插入一条数据 mysql>DROP DATABASE hello; 此时删除数据库 mysql>SHOW MASTER STATUS; 查看当前处于哪个日志文件及位置 mysqlbinlog --start-position=4868 mysql-bin.000015 查看数据库崩溃前二进制日志开始位置,结束位置必须是数据库删除之前位置 mysqlbinlog --start-position=4868 --stop-position=5062 mysql-bin.000015 > /tmp/hello.sql 将二进制日志启动时位置至崩溃前位置数据导出恢复过程 : 前提 : 清空数据目录下所有文件,重新初始化数据库 mysql>SET GLOBAL sql_log_bin=0; 恢复时需要临时关闭二进制日志,如不关闭,恢复数据将记录进二进制日志增加日志管理难度 mysql>FLUSH LOGS; 手动对二进制日志进行一次滚动 mysql < /backup/mysql_fullbak.sql 恢复全量备份 mysql < /backup/increment.sql 恢复增量备份 mysql < /tmp/hello.sql 恢复崩溃前导出二进制数据 mysql>SET GLOBAL sql_log_bin=1; 恢复完成开启二进制日志
恢复后需要使用 mysqlcheck -uroot -pmypass -c -all-databases 检查所有表是否存在问题,所有恢复完成后请记得对数据库做一次全量备份
至此,使用mysqldump备份恢复完成,如有错误请大家指教!
备份
数据
数据库
日志
二进制
位置
增量
同时
引擎
存储
文件
过程
之间
信息
前提
单个
参数
命令
有用
空格
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ai服务器市场预测
数据库创建失败原因
宁波一站式软件开发教程
网络连不上内网验证服务器
华南咨询软件开发涉密资质
北京惠普服务器维修维保多少钱
哪款手游服务器可以玩天涯明月刀
四川特美居网络技术有限公司
北京行所志软件开发有限公司
网络安全技术应用与实务
数据库课程设计的例子
matlab导入图像数据库
温州软件开发哪家正规
支持无线网络技术的标准有哪些
深圳通讯软件开发维修电话
服务器湿度过高危险吗
ca服务器访问超时
学软件开发到底好不好
软件开发工程师薪水
网络技术必看书籍知乎
常见的网络安全攻击类型
云服务器是一直运行状态的吗
宝可梦服务器牧场
软件开发立项论证
网络安全落子武汉
软件开发属于it行业
服务器web管理工具
迈瑞中心监护系统数据库
观网络安全有感心得体会
梦幻西游服务器开区多久