首页 > 数据库 >mysql8.x通过备份文件及binlog日志恢复数据

mysql8.x通过备份文件及binlog日志恢复数据

时间:2023-11-09 10:33:05浏览次数:42  
标签:binlog mysql8 09 29 备份文件 还原 2022 mysql 日志

问题简述

记一次mysql数据库被误删(是整个库被删了)后的还原

前提条件

  • 数据库版本为mysql8.x以上
  • 具有库被删除前的完整备份
  • 数据库开启binlog

还原步骤

第一步:通过完整备份还原被删的库

注意事项:还原后切勿让其他用户连接,操作数据库。待使用binlog日志恢复数据后再对库进行操作,否则可能会丢失数据

第二步:查找日志位于哪个文件

进入binlog日志所在目录,根据最近修改时间,大致判断需要还原的位置处于哪个日志文件,因为我们在每日凌晨1点有做全量备份,所以对应找到00:25到当前时间所在的那份日志mysql-bin.000335

image.png

第三步:查看数据被破坏时间点

通过第二步找到的binlog日志文件,我们可以将其转为SQL文件查看(PS:直接用notepad打开会乱码),或者使用专有工具打开,此处将其转为SQL文件

/usr/bin/mysqlbinlog /var/lib/mysql/mysql-bin.000335 > /var/lib/mysql/mysql-bin.000335.sql

通过搜索drop关键字查看破坏数据的时间点在2022-09-29 10:21:24,我们选择将数据还原到2022-09-29 10:20:59
image.png

第四步:还原数据

还原前还需要大致确定我们需要还原的时间范围,此处我们选择还原2022-09-29 08:00:002022-09-29 10:20:59之间的数据,可以使用以下命令

#还原指定数据库
/usr/bin/mysqlbinlog  --database=istrong_portal --start-datetime="2022-09-29 08:00:00" --stop-datetime="2022-09-29 10:20:59" /var/lib/mysql/mysql-bin.000335 | mysql -h127.0.0.1 -uroot -pPWDxxxxx

#还原所有数据库
/usr/bin/mysqlbinlog  --start-datetime="2022-09-29 08:00:00" --stop-datetime="2022-09-29 10:20:59" /var/lib/mysql/mysql-bin.000335 | mysql -h127.0.0.1 -uroot -pPWDxxxxx

注意事项

1、建议还原的时候停止系统,或者切断系统与数据库的连接,否则可能会出现系统日志实时写入库中,还原时报记录不一致错误

2、还原时需要找准对应的时间起止点,否则还原会出现数据不一致,还原的结果不是想要的情况

标签:binlog,mysql8,09,29,备份文件,还原,2022,mysql,日志
From: https://www.cnblogs.com/privateLogs/p/17819139.html

相关文章

  • 凝思80安装MySQL8.0.30
    概述本文记录在凝思80虚拟机上安装MySQL8.0.30。步骤下载MySQL8.0.30下载链接:https://downloads.mysql.com/archives/community/卸载已有MySQL查看当前已安装Mysqldpkg—get-selections|grepmysql卸载已安装的其他版本MySQLapt-get--purgeremovemysql-client-5.5apt-get--......
  • mysql binlog常用脚本(解析与反解析)
     解析binlog方法1:mysqlbinlogmysqlbinlog--no-defaults--base64-output=decode-rows-vv--database=dboop--start-datetime='2020-10-1100:00:00'--stop-datetime='2020-10-1115:00:00'mysql-bin.000075>75.sql 常用参数database:只列......
  • mysql教程:binlog日志和数据备份
    DMLDDL数据恢复、主从复制数据备份:全量备份、增量备份数据恢复的步骤:备份数据库–还原数据文件–应用binlog–验证数据mysqlbinlog工具、将备份后的修改操作应用到数据库,将数据库恢复到最新的状态数据库的完整性、一致性binlog和数据备份数据备份是将数据库的数据文件复制到另......
  • Windows Server2019安装MySQL8.0.32
    安装包下载:https://downloads.mysql.com/archives/community/下载mysql-8.0.32-winx64.zip1、制定目录配置basedir=D:\\mysql8.0.32#mysql数据存放目录datadir=D:\\mysql8.0.32\\data将.zip压缩包解压到D盘,并重命名为mysql8.0.322、编辑my.ini文件[client]#max_a......
  • Mac安装mysql8.0.35
    安装步骤(详细步骤)打开官网https://dev.mysql.com/downloads/mysql/选择自己mac需求的版本以及适合自己mac的版本#查看mac型号架构命令#先commond+空格搜索terminal回车进入终端uname-a先双击打开dmg文件,然后会跳转到pkg里面,双击即可一路下一步即可选......
  • Redhat8.2二进制安装mysql8.0,启动报错
    报错信息:bin/mysql:errorwhileloadingsharedlibraries:libtinfo.so.5:cannotopensharedobjectfile:Nosuchfileordirectory解决办法:ll/usr/lib64/libtinfo.so.6[root@zabbixservermysql]#ln-s/usr/lib64/libtinfo.so.6.2/usr/lib64/libtinfo.so.5[root@zab......
  • 63.mysql8.0.22安装
    网址:https://dev.mysql.com/downloads/MySQLCommunityServerLinux-Generic1)切换到/data目录下2)创建mysql文件夹mkdirmysql83)切换到mysql文件夹下4)解压下载好的mysql8安装包5)重命名解压出来的文件夹,这里改成mysqlmvmysql-8.0.22mysql86)/data文件夹下创建d......
  • docker-compose安装mysql8+踩坑版
    一、拉取MySQL镜像我这里使用的是MySQL8.0.18,可以自行选择需要的版本。dockerpullmysql:8.0.18二、创建挂载目录mkdir-p/home/docker/mysql8/logmkdir-p/home/docker/mysql8/datamkdir-p/home/docker/mysql8/conf.d三、添加配置文件my.cnf(没有特殊需求可以跳......
  • linux 安装 mysql8
    安装查看版本查看状态......
  • 【转载】Mysql8授予某个用户某个数据库的权限
    参考chatgpt3.5环境软件/系统版本说明mysql8.0.28正文要在MySQL中授予某个用户对某个数据库的权限,你可以使用以下SQL语句:GRANT权限列表ON数据库名.表名TO'用户名'@'主机名';下面是这个语句的各个部分的解释:权限列表:这是你要授予用户的权限列表,可......