二进制恢复数据库

恢复数据库

利用二进制日志,还原数据库最新状态
1在恢复数据库前期准备:
1.1
完全备份,并记录备份的二进制位置
mysqldump -A -F --master-data=2 | gzip > /data/binlog/all_date +%F.sql.gz
1.2二进制日志独立存放
[mysqld](在配置文件中添加)
log-bin=/data/binlog(随便一个目录,不要和安装程序在一个目录)
[root@localhost ~]#chown mysql.mysql /data/binlog/(修改权限和组)
[root@localhost ~]#systemctl restart mariadb.service (重启服务)
(备份二进制文件)
[root@localhost ~]#cd /data/binlog/
[root@localhost binlog]#ls (查看备份)
mysql-bin.000001 mysql-bin.index
2数据库修复
数据库加锁(在mysql程序里)
在恢复数据库之前先加锁,恢复完成后再解锁。
加写锁
MariaDB [hellodb]> lock tables students write;
解锁
MariaDB [hellodb]> unlock tables;
2.1生成数据库相关文件
先停服务stop
在7里要是二进制安装的MySQL需要在/usr/local/mysql
的目录下执行./scripts/mysql_install_db --user=mysq
要是8就执行mysql_install_db ⠀–user=mysql
2.2重启服务
systemctl restart mariadb
2.3数据还原解压缩
gzip -d all_2019-11-25.sql.gz(选择解压到某个目录)
2.4进入服务(没修复完一定不能退出)
mysql
2.4.1关闭二进制(如果不关闭,修复会生成一些没必要的二进制)
select @@sql_log_bin;(查当前二进制情况1是启用0是禁用)
MariaDB [(none)]>set sql_log_bin=0;(临时禁用)
2.4.2数据库文件进行还原
MariaDB [(none)]>source /data/binlog/all_2019-11-25.sql(完全备份)
{只还原了完全备份的文件,并没有还原 未备份的二进制文件}
2.4.3还原二进制的文件
查看丢失前的文件大小(在另一个窗口执行)
Vim /data/all_2019-11-25.sql
或用grep找到文件
[root@centos8 ~]#grep ‘^-- CHANGE MASTER TO’ /data/all_2019-11-25.sql(文件)
– CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000001’, MASTER_LOG_POS=328;
(找到这个备份前的文件大小,查看之前的大小)
2.5进行二进制文件备份导入
[root@centos8 ~]mysqlbinlog mysql-bin.000001 --start-position=328 > inc.sql(只要328以后的数据)
[root@centos8 ~]mysqlbinlog mysql-bin.00000 >> inc.sql (所有内容全要)
MariaDB [(none)]>source /data/binlog/inc.sql
还原二进制
MariaDB [(none)]>set sql_log_bin=1;(也可以直接退出)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值