MySQL备份恢复

发布时间:2022-06-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了MySQL备份恢复脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

数据库备份

因数据量庞大,所以我们采用物理方式对MySQL数据库进行备份。
使用xtrabackup工具包对mySQL数据库进行物理备份:
特点:
	备份过程快速、可靠;
	备份过程不会打断正在执行的事务;
	能够基于压缩等功能节约磁盘空间和流量;
	自动实现备份检验;
	还原速度快

原理:

MySQL备份恢复

备份开始时首先会开启一个后台检测进程,实时检测mysql redo的变化,一旦发现redo中有新的日志写入,立刻将日志记入后台日志文件xtrabackup_LOG中。之后复制innodb的数据文件和系统表空间文件ibdata1,待复制结束后,执行flush tables wITh read lock操作,复制.frm,MYI,MYD,等文件(执行flush tableswith read lock的目的是为了止数据表发生DDL操作,并且在这一时刻获得binlog的位置)最后会发出unlock tables,把表设置为可读可写状态,最终停止xtrabackup_log。

步骤:
1、	执行备份命令
 innobackuPEx --user=backup --password=*** --socket=/tmp/mysqld.sock --defaults-file=/etc/my.cnf /data/backup/
2、检查备份文件完整性
	1)、查看以下文件是否存在
	backup-my.cnf、	xtrabackup_binary、xtrabackup_binlog_info 、xtrabackup_checkpoints xtrabackup_logfile  xtrabackup_info

	2)、检查文件
xtrabackup_checkpoints —— 备份类型(如完全或增量)、备份状态(如是否已经为PRepared状态)和LSN(日志序列号)范围信息;

MySQL备份恢复

xtrabackup_binlog_info —— mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置。

MySQL备份恢复

backup-my.cnf —— 备份命令用到的配置选项信息;

MySQL备份恢复

xtrabackup_info ——记录备份的基本信息,uuid、备份命令、备份时间、binlog、LSN、以及其他加密压缩等信息。

MySQL备份恢复

数据库恢复

原理:

MySQL备份恢复

这一阶段会启动xtrabackup内嵌的innodb实例,回放xtrabackup日志xtrabackup_log,将提交的事务信息变更应用到innodb数据/表空间,同时回滚未提交的事务(这一过程类似innodb的实例恢复)。
步骤:
要先关闭mysql数据库,重命名或者删除原数据文件目录都可以,再创建一个新的数据文件目录,将备份数据复制到新的数据文件目录下,赋权,修改权限,启动数据库
	1、/etc/init.d/mysqld stop
	2、mv /data/mysql /data/mysql_bak
	3、mkdir /data/mysql
	4、innobackupex --apply-log /data/backup/2018-05-21_10-05-04/
	5、innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync /data/backup/2018-05-21_10-05-04/
	6、chown -R mysql.mysql /data/mysql
	7、/etc/init.d/mysqld start

脚本宝典总结

以上是脚本宝典为你收集整理的MySQL备份恢复全部内容,希望文章能够帮你解决MySQL备份恢复所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。