1.1还原使用mysqldump命令备份的数据库的语法如下:

mysql -u root -p [dbname] < backup.sq

示例:

mysql -u root -p < C:\backup.sql

1.2还原直接复制目录的备份

通过这种方式还原时,必须保证两个MySQL数据库的版本号是相同的。MyISAM类型的表有效,对于InnoDB类型的表不可用,InnoDB表的表空间不能直接复制

2.1 时间点的恢复建立在一下规则的基础上:

1 mysql服务器需要开启二进制日志--log-bin

查看所有binlog文件

mysql> SHOW BINARY LOGS;

查看当前binlog文件信息(包含文件名,当前位置等)

mysql> SHOW MASTER STATUS;

2 mysqlbinlog工具将binary log文件由二进制转换为可读的文本文件,可以选择基于时间或位置的事件。

3 从binary log文件中执行事件会导致数据的修改,表示要重做数据。命令为:

[root@localhost /]# mysqlbinlog binlog_files | mysql -u root -p

4 查看binlog的时间及位置信息我们可以讲binlog内容输出到终端或文本文件

[root@localhost /]# mysqlbinlog binlog_files | more

[root@localhost /]# mysqlbinlog binlog_files > tmpfile

5 将二进制日志输出到文件非常有用,比如我们想要删除某些我们不想执行的语句。

通过文本文件导入到数据库

[root@localhost /]# mysql -u root -p

2.2 多个binlog log日志的还原最好将所有文件使用一个连接完成,如果使用不同连接的话有时会导致不安全

例如:

[root@localhost /]# mysqlbinlog binlog.000001 | mysql -u root -p # DANGER!!

[root@localhost /]# mysqlbinlog binlog.000002 | mysql -u root -p # DANGER!!

如果第一个日志包含创建临时表语句CREATE TEMPORARY TABLE,第二个日志要使用该临时表,第一个导入binlog日志的进程退出后临时表会被删除,执行第二个日志文件要使用临时表时会因找不到而报 “unknown table.”

建议的方法:

方法1:

所有二进制文件放在单个连接里

[root@localhost /]# mysqlbinlog binlog.000001 binlog.000002 | mysql -u root -p

方法2:

将所有二进制文件写在一个文件里执行

[root@localhost /]# mysqlbinlog binlog.000001 >  /tmp/statements.sql

[root@localhost /]# mysqlbinlog binlog.000002 >> /tmp/statements.sql

[root@localhost /]# mysql -u root -p -e "source /tmp/statements.sql"

使用方法二如果二进制文件里包含GTID信息需要过滤掉

[root@localhost /]# mysqlbinlog --skip-gtids binlog.000001 >  /tmp/dump.sql

[root@localhost /]# mysqlbinlog --skip-gtids binlog.000002 >> /tmp/dump.sql

[root@localhost /]# mysql -u root -p -e "source /tmp/dump.sql"

3 通过时间点或位置点的恢复

如果我们要跳过某个时间段或位置段,需要指定起止时间或位置信息

3.1 通过事件的时间来恢复

我们可以通过参数--start-datetime 和 --stop-datetime指定恢复binlog日志的起止时间点,时间使用DATETIME格式。

比如在时间点2005-04-20 10:00:00我们删除掉一个库,我们要恢复该时间点前的所有日志

[root@localhost /]# mysqlbinlog --stop-datetime="2005-04-20 9:59:59" /usr/local/mysql/data/binlog.123456 | mysql -u root -p

我们可能几个小时后才发现该错误,后面又有一系列的增删查改等操作,我们还需要恢复后续的binlog,我们可以指定起始时间

[root@localhost /]# mysqlbinlog --start-datetime="2005-04-20 10:01:00" /usr/local/mysql/data/binlog.123456 | mysql -u root -p

通过该种方法恢复我们需要通过查看binlog日志知道发生误操作的确切时间点,查看日志我们可以先将日志输出到文本里

[root@localhost /]# mysqlbinlog /usr/local/mysql/data/binlog.123456 > /tmp/mysql_restore.sql

3.2 通过事件的位置来恢复

我们可以通过参数--start-position 和 --stop-position指定恢复binlog日志的起止位置点,通过位置的恢复需要我们有更加精细的操作,例如在某个时间点我们执行了错误的语句,且这个时间点前后都有大并发操作,要确定破坏性sql的时间点,我们可以先导出大致的时间段的日志到文件以缩小查找范围,再去分析和确定

[root@localhost /]# mysqlbinlog --start-datetime="2005-04-20 9:55:00"  --stop-datetime="2005-04-20 10:05:00" /usr/local/mysql/data/binlog.123456 > /tmp/mysql_restore.sql

确定好需要跳过的位置之后,我们就可以进行恢复了

[root@localhost /]# mysqlbinlog --stop-position=368312 /usr/local/mysql/data/binlog.123456 | mysql -u root -p

[root@localhost /]# mysqlbinlog --start-position=368315 /usr/local/mysql/data/binlog.123456 | mysql -u root -p

注:mysqlbinlog工具的输出会在每条sql语句前增加 SET TIMESTAMP语句,恢复的数据及mysql日志反映当前时间。

mysql还原数据的方法_MySQL 数据还原相关推荐

  1. hbase集群 数据写入_一种构建HBase集群全文索引方法,数据读取方法以及数据写入方法与流程...

    本发明涉及HBase集群领域,尤其涉及一种构建HBase集群全文索引方法,数据读取方法以及数据写入方法. 背景技术: 随着云计算技术的不断发展,云计算技术不断落地成为支撑各行业信息技术发展的重要支柱. ...

  2. mysql数据转储方法_Mysql数据库各种导出导入数据方式的区别(我的理解错误还望指正)...

    mysqldump,NAVICAT转储,select * outfile在千级数据,万级,百万级数据下的表现. 千级数据 mysqldump导出sql文件 导出是出了拒绝访问的错误:为对应目录(.sq ...

  3. mysql还原数据库报错_MySQL数据库还原

    当数据库中的数据,遭到破坏时,可以通过备份好的数据文件进行还原 还原 是指还原数据库中的数据,然后,库是不能被还原的 备份文件,实际上就是由多个CREATE.INSERT和DROP语句组成,因此,只要 ...

  4. mysql表只有frm文件_MYSQL数据文件--.frm文件(只有.frm文件时的表结构恢复)

    了解MYSQL的都知道,在MYSQL中建立任何一张数据表,在其数据目录对应的数据库目录下都有对应表的.frm文件,.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,.frm ...

  5. mysql数据表操作_MySQL数据表基本操作实例详解

    本文实例讲述了MySQL数据表基本操作.分享给大家供大家参考,具体如下: 数据表的基本操作 1.主键约束要求主键列的数据唯一,并且不允许为空.主键能够唯一地识别表中的一条记录,可以结合外键来定义不同数 ...

  6. mysql导到相对位置_MySQL数据备份与恢复

    **无论备份还是恢复,都要验证用户及权限** 一.数据备份 1.数据备份的备份方式 物理备份:cp.tar.tar+gzip  -> 兼容性差,目标地址空间大,耗时 系统自带物理备份工具mysq ...

  7. mysql 视图怎么调用方法_mysql 视图的使用

    mysql视图的作用(详细) 测试表:user有id,name,age,sex字段 测试表:goods有id,name,price字段 测试表:ug有id,userid,goodsid字段 视图的作用 ...

  8. 数学建模最新教育数据分享及数据查询方法(数据来源:世界银行、世界数据图册、联合国教科文组织、国家统计局)

    授人以鱼不如授人以渔,分享最新数据获取方法,持续更新,点关注不迷路! 世界银行教育数据下载链接:https://download.csdn.net/download/qq_37372155/15081 ...

  9. 数据可视化方法:数据图表展示

    ​相信大多数公司的领导都已失去了一字一句看表格和文字的耐心,简化数据信息的方式之一就是图表,图表能够直观地展示数据,支撑观点,图表已经成了报表中最常用的数据展现方式之一.人类大脑对视觉信息的处理优于对 ...

最新文章

  1. redis面试精华指南pdf
  2. java se程序设计课后答案,JAVA SE程序设计及实践
  3. Ext4.1 Grid 分页查询
  4. 智安网络丨漫画人工智能:人工智能简史
  5. con排插与单片机相连_单片机与电路绘图自学手册
  6. win10linux双系统时间,win10与linux双系统切换时间不一致的调整
  7. Git报错The requested URL returned error: 403
  8. 电子邮箱是什么?注册邮箱163、tom、qq等品牌有什么好处?
  9. php自学多久可以上岗,自学php多久能找工作,PHP要自学多久才能找到工作
  10. untiy的http请求
  11. 重装操作系统的20条原则
  12. s3fs挂载对象存储到本地
  13. 一起Talk Android吧(第五百零七回:图片滤镜ImageFilterView)
  14. 笔记本计算机故障排除,笔记本电脑开机黑屏的原因及故障排除方法
  15. 英语学习APP—百词斩
  16. 汇编指令: JO、JNO、JB...
  17. 『运筹OR帷幄』CSDN官方账号正式上线啦| 运筹学/优化理论/人工智能/数据科学的学习交流社区
  18. 2021-07-16(Kotlin学习笔记 -->享学课堂vip课程)
  19. 2019.08_【FSGAN】_Subject Agnostic Face Swapping and Reenactment 论文翻译
  20. android时间格式am pm,将字符串在12(PM / AM)小时AM PM时间转换为24小时时间android

热门文章

  1. python——pytest单元测试
  2. DSO missing from command line
  3. 【C语言 数据结构】树
  4. windows10和kali双系统(从uefi启动)
  5. 鼻尖上的嗅觉经济,如何掌握破局密码?
  6. Python_算术运算符
  7. 从同事朋友的电脑里,搜刮来的 10 个 Chrome 插件
  8. 正则表达式 正向前瞻
  9. 编写程序,键盘输入一个正整数,求该整数的各位数字平方之和。若输入的整数值为1274,则计算12+22+72+42,结果为70。
  10. 五台山风景区旅游模拟漫游系统的设计与实现_kaic