当前位置: 首页 > article >正文

mysql 日志恢复

一:查看是否开启binlog日志

show variables like 'log_%'; 

二:查看日志存放目录:

SHOW VARIABLES LIKE '%datadir%';

三:查看日志列表

show binary logs; #获取binlog文件列表 
show master status; #查看当前正在写入的binlog文件

四:导出指定binlog日志

#把bin.00032日志转成temp.sql(时间是2024-09-11 8:54:402024-09-11 12:59:10范围内的)
mysqlbinlog  --no-defaults  -d test   --start-datetime='2024-09-11 8:54:40' --stop-datetime='2024-09-11 12:59:10'  bin.000032 >temp.sql

#恢复sql
source temp.sql; 

#指定位置(远程登录日志并且恢复指定日志的数据)
mysqlbinlog --start-position=312 --stop-position=647 --base64-output=decode-rows -vv  bin.000032 >temp.sql

五:binlog日志转成可读日志(把binlog日志下载下来放到本地,本地转成可读的)

mysqlbinlog --no-defaults -vv --base64-output=decode-rows D:\data.000501 > D:\temp.sql

六:把delte语句转成insert语句

#linux环境
cat temp.sql | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/;INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@17.*),/\1;/g' | sed 's/@1=//g'| sed 's/@[1-9]=/,/g' | sed 's/@[1-9][0-9]=/,/g' > mysqllogOK.sql

windows环境
'========================== 
'用VBS实现 MYSQL binglog DELETEINSERT 
'========================== 
function replaceregex(patern,str,tagstr) 
    dim regex,matches 
    set regex=new regExp 
    regex.pattern=patern 
    regex.IgnoreCase=true 
    regex.global=true 
    matches=regex.replace(str,tagstr) 
    replaceregex=matches 
end function
 
'======Mysql binlog DELETEINSERT================
'VBS打开文本文件
Set oldStream = CreateObject("ADODB.Stream")
oldStream.CharSet = "utf-8"
oldStream.Open
oldStream.LoadFromFile("temp.sql") 'binLog生成的DELETE原日志文件
oldText = oldStream.ReadText()
    newText=replace(oldText,"### DELETE FROM", ";INSERT INTO")
    newText=replace(newText,"### WHERE", "SELECT")
    newText=replace(newText,"###", "")
    newText=replace(newText,"@1=", "")
    newText=replaceregex("\@[1-9]=",newText, ",")
    newText=replaceregex("\@[1-9][0-9]=",newText, ",")
oldStream.Close
'VBS保存文件
Set newStream = CreateObject("ADODB.Stream")
newStream.Type = 2 'Specify stream type - we want To save text/string data.
newStream.Charset = "utf-8" 'Specify charset For the source text data.
newStream.Open 'Open the stream And write binary data To the object
newStream.WriteText newText
newStream.SaveToFile "temp1.sql", 2 'DELETE转成INSERT以后的新的SQL文件名
newStream.Close

http://www.kler.cn/a/303319.html

相关文章:

  • C#语言详解:从基础到进阶
  • 项目技术栈-解决方案-web3去中心化
  • SHA-256哈希函数
  • WLAN消失或者已连接但是访问不了互联网
  • SQL,力扣题目1127, 用户购买平台
  • 传奇996_21——龙岭事件
  • Python数据分析与可视化基础教程
  • Linux系统下配置和测试Redis服务
  • 探索未来住宿体验:酒店触摸开关的科技魅力
  • 【API安全】威胁猎人发布超大流量解决方案
  • SVN的使用技巧
  • [机器学习]聚类算法
  • Servlet学习详解--基本涵盖所有Servlet知识点
  • 取消Cursor的注释斜体字风格
  • Java8函数式接口全攻略
  • 北大阿里:新出炉的LLM偏好对齐方法综述
  • SAP Fiori-Vscode 环境搭建中npm报错
  • Ansible使用kubeadm方式一键安装k8s
  • 跨越日语障碍2024轻松实现日语阅读的好帮手
  • 旅游网站设计与实现:SpringBoot技术手册
  • buildroot移植qt报错Info: creating stash file (补充qt添加字库)
  • 第 1 0 章OpenCV
  • (微服务项目)新闻头条——Day1
  • 自动驾驶系列—掌握速度,驾驭安全,限速信息提醒功能(SLIF)介绍
  • ARM base instruction -- cset
  • 元素以及元素事件相关的位置及计算