欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > MySQL数据库备份和恢复

MySQL数据库备份和恢复

2025/5/26 9:35:39 来源:https://blog.csdn.net/2401_85983616/article/details/143021460  浏览:    关键词:MySQL数据库备份和恢复

一、备份类型

物理备份:直接对数据库的物理文件(数据文件、日志文件等)进行备份。

       物理备份的方法:

  • 冷备份(脱机备份):是在关闭数据库的时候进行的;
  • 热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件;
  • 温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作。

逻辑备份:对数据库对象(库、表)的数据SQL语句的形式导出进行备份。

二、备份策略

完全备份:也叫全量备份,每次都备份完整的库或表数据。

差异备份:只备份上一次完全备份后的更新数据。

增量备份:只备份上一次完全备份或增量备份后的数据,即每次都只备份最新的数据。

三、备份方法与工具

  • 使用tar等方式压缩打包数据文件(完全备份,物理冷备)
  • 使用MySQL自带的备份工具 mysqldump(完全备份,逻辑热备)、mydqlhotcopy(完全备份,逻辑热备,仅支持MyISAM和ARCHIVE表)
  • 刷新二进制日志(增量备份)
  • 使用第三方备份工具 Percona XtraBackup(PXB)(完全备份、增量备份、物理热备)

四、完全备份步骤

1.物理冷备

1) 先关闭mysql数据库

systemctl stop mysqld

2) 使用tar命令压缩打包备份数据库的数据目录和文件(看mysql配置文件种的datadir配置参数)

恢复:

使用tar命令解压备份文件压缩表,将数据目录进行替换

2.mysqldump逻辑热备

mysqldump -u 用户 -p密码  --databases 库1 [库2 ....]  >  XXX.sql    #备份一个或多个指定的库及库中所有的表
mysqldump -u 用户 -p密码  --all-databases  >  XXX.sql    #备份所有库
mysqldump -u 用户 -p密码  库名  >  XXX.sql    #只备份指定库中的所有表(不包含库对象本身)
mysqldump -u 用户 -p密码  库名 表1 [表2 ....]  >  XXX.sql    #只备份指定库中的一个或多个指定的表(不包含库对象本身)#其它选项:-d 只备份表结构     -F 备份后生成新的二进制日志文件    --lock-tables  备份前锁定表

恢复:

第一种方法:

mysql -u 用户 -p密码 [库名]  <  XXX.sql     
cat  XXX.sql |  mysql -u 用户 -p密码 [库名]

第二种方法:

登录到Mysql数据库,再执行 source  XXX.sql文件路径   (注:如果sql文件里只备份了表,需要先 use 切换库再执行 source 恢复)

五、增量备份步骤

1.通过刷新二进制日志实现增量备份

mysqldump -u root -p密码 flush-logs
mysqlbinlog --no-defaults --base64-output=decode-rows -v  二进制日志文件路径    #查看二进制日志内容
  • 使用二进制日志文件增量恢复:
mysqlbinlog --no-defaults  二进制日志文件路径 | mysql -u 用户 -p密码
  • 断点恢复:

基于位置点恢复:

mysqlbinlog --no-defaults  --start-position='起始位置点'  --stop-position='结束位置点'  二进制日志文件路径 | mysql -u 用户 -p密码

基于时间点恢复:

mysqlbinlog --no-defaults  --start-datetime='YYYY-mm-dd HH:MM:SS'  --stop-datetime='YYYY-mm-dd HH:MM:SS'  二进制日志文件路径 | mysql -u 用户 -p密码

断点恢复原则:

  • 如果要恢复某条SQL语句及其之后的所有数据,就从这个语句的位置点或时间点开始 start
  • 如果要恢复到某条SQL语句之前的所有数据,就stop在这个语句前一个的位置点或时间点

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词