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