mysql的备份与还原操作

Mysql的备份与还原的操作步骤


mysql备份与还原

@1:物理备份:

1.备份
#关闭mysql,备份data目录
service mysqld stop
yum -y install xz 

#压缩备份data目录
tar Jcvf /opt/mysql_all_$(date +%F).tar.xz data目录
 

 
2. 恢复
#解压之前备份的数据库data目录,不用删除原目录,会自动替换

tar Jxvf /opt/mysql_all_2021-11-28.tar.xz -C ./
# 解压恢复之后重启mysql数据库服务

service mysqld start

@2:命令备份

#>1备份出数据库脚本文件
mysqldump -u root -p[密码] --databases 库名1 [库名2] … > /备份路径/备份文件名.sql	

#>2全库备份
mysqldump -u root -p[密码] --all-databases > /备份路径/备份文件名.sql

#3备份指定的数据库表
mysqldump -u root -p[密码] 库名 [表名1] [表名2] … > /备份路径/备份文件名.sql


恢复:
   mysql -u root -p <  /备份路径/备份文件名.sql
   mysql -u root -p 数据库名 <  /备份路径/备份文件名.sql

@3:binlog(二进制)恢复方式

## 二进制binlog恢复方式主要需要先开启binlog
@1:开启binlog
vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin
#指定二进制日志(binlog)的记录格式为 MIXED
binlog_format = MIXED	

@2:重启mysql服务
service mysqld restart

@3:查看是否生成binlog日志 可进入数据库的data目录下进行查看
目录下回生成 mysql-bin.00001 mysql-bin.00002等的文件

@4执行命名刷新最新的二进制备份
mysqladmin -u root -p flush-logs

@5:查看二进制日志文件的内容
mysqlbinlog --no-defaults --base64-output=decode-rows -v /数据文件目录/mysql-bin.000001


二进制恢复
@1:一般恢复
mysqlbinlog --no-defaults /数据文件目录/mysql-bin.000001 | mysql -u root -p
重启mysql服务
service mysqld restart
这样会恢复在mysql-bin.00001文件中删除的数据

@2:基于位置点恢复数据
# 刷新生成新的二进制日志文件
mysqladmin -u root -p flush-logs 	
# 进入到data目录
cd /data目录/	
#查看二进制日志文件

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.0000002	
# at 88948										#断点
#211551  7:58:18 								#时间
insert into message values(1,'测试','new','hello')     #插入的数据


恢复到插入数据之前的数据情况,先刷新下二进制日志
mysqladmin -u root -p flush-logs 

进行恢复操作:
mysqlbinlog --no-defaults --stop-position='88948' mysql-bin.000002 | mysql -u root -p




posted on 2022-09-13 22:06  晨哥  阅读(321)  评论(0编辑  收藏  举报

导航