2016-09-06 回答

它是逻辑备份,优点可以备份各种存储引擎

1.备份所有的数据库

#mysqldump -uroot -p --all-database >all.sql

2.备份指定的数据库

#mysqldump -uroot -p test > test.sql

3.备份指定数据库中的表

#mysqldump -uroot -p test s > test_s.sql

备份完全恢复实例

(1)上午9点备份数据库

#mysqldump -uroot -p -l -f student > student.dmp

-l 给所有表加读锁

-f 生成一个新的日志文件

此时s表数据如下:

mysql> select * from s;

+------+-------+------+-----------+

| sno | sname | sex | address |

+------+-------+------+-----------+

| 0901 | jim | 1 | shanghai |

| 0902 | helun | 2 | beijing |

| 0903 | sam | 1 | sichuan |

| 0904 | keke | 1 | xizang |

| 0905 | gugu | 1 | suzhou |

| 0906 | tang | 2 | guangdong |

+------+-------+------+-----------+

6 rows in set (0.00 sec)

备份完毕等到了student.dmp文件,还有mysql-bin.000012

(2)9点半备份完毕,然后插入新的数据

mysql> insert into s values('0907','liu','1','jiangxi');

query ok, 1 row affected (0.00 sec)

mysql> insert into s values('0908','wang','2','wuxi');

query ok, 1 row affected (0.00 sec)

(3)10点,数据库突然故障,数据无法访问.需要恢复备份:

#mysql -uroot -p student < student.dmp

恢复后的数据:

mysql> select * from s;

+------+-------+------+-----------+

| sno | sname | sex | address |

+------+-------+------+-----------+

| 0901 | jim | 1 | shanghai |

| 0902 | helun | 2 | beijing |

| 0903 | sam | 1 | sichuan |

| 0904 | keke | 1 | xizang |

| 0905 | gugu | 1 | suzhou |

| 0906 | tang | 2 | guangdong |

+------+-------+------+-----------+

6 rows in set (0.00 sec)

(4)使用mysqlbinlog 恢复mysqldump 备份以来的binlog

#mysqlbinlog mysql-bin.000012 |mysql -uroot -p student

查询完全恢复后的数据:

mysql> select * from s;

+------+-------+------+-----------+

| sno | sname | sex | address |

+------+-------+------+-----------+

| 0901 | jim | 1 | shanghai |

| 0902 | helun | 2 | beijing |

| 0903 | sam | 1 | sichuan |

| 0904 | keke | 1 | xizang |

| 0905 | gugu | 1 | suzhou |

| 0906 | tang | 2 | guangdong |

| 0907 | liu | 1 | jiangxi |

| 0908 | wang | 2 | wuxi |

+------+-------+------+-----------+

8 rows in set (0.00 sec)

恢复完成!

基于时间点的恢复(不完全恢复)

由于误操作,比如删除了一张表,使用完全恢复是没有用的,我们需要的是恢复到误操作之前的状态,然后跳过误操作语句,再恢复后面执行的语句,完成恢复;

例:

(1)上午10点发生误操作,可以用如下语句备份和binlog将数据恢复到故障前

#mysqlbinlog --stop-date="2010-10-31 9:59:59" /usr/local/mysql/var/mysql-bin.000013 |mysql -uroot -p

(2)跳过故障时间点,继续执行后面的binlog,完成恢复

#mysqlbinlog --start-date="2010-10-31 10:01:00" /usr/local/mysql/var/mysql-bin.000013 |mysql -uroot -p

基于位置恢复(不完全恢复)

和基于时间点恢复类是,但是更加精确.因为同一时间点可能有多条sql语句执行;

例:

#mysqlbinlog --start-date="2010-10-31 9:55:00" --stop-date="2010-10-31 10:05:00" /usr/local/mysql/var/mysql-bin.000013 > /tmp/mysql_restore.sql

该命令将在/tmp/目录下创建小的文件,编辑它找到错误语句前后的位置号,例如前后位置号分别是368312 和 368315

(2)恢复了以前的备份文件后,输入

#mysqlbinlog --stop-position="368312" /usr/local/mysql/var/mysql-bin.000013 |mysql -uroot -p

#mysqlbinlog --start-position="368315" /usr/local/mysql/var/mysql-bin.000013 |mysql -uroot -p

mysql 没有开启binlog_mysql binlog没有开启数据怎么恢复相关推荐

  1. mysql之 binlog维护详细解析(开启、binlog相关参数作用、mysqlbinlog解读、binlog删除)...

    binary log 作用:主要实现三个重要的功能:用于复制,用于恢复,用于审计. binary log 相关参数: log_bin 设置此参数表示启用binlog功能,并指定路径名称 log_bin ...

  2. 记录:mysql的binlog日志开启与数据恢复

    1.测试使用mysql版本: mysql-5.6.43 2.以下为方便学习所以做了记录,除了第一部分是我自己的环境配置,第二部分大家可参考一下博文. <平头哥的技术博文>平头哥的技术博文 ...

  3. Mysql是否开启binlog日志开启方法

    运行sql   show variables like 'log_bin'; 如果Value 为 OFF 则为开启日志文件 如何开启mysql日志? 找到my,cnf 中 [mysqld]  添加如下 ...

  4. mysql data目录 清空_Mysql binlog备份数据及恢复数据,学会这个,我在也不怕删库跑路啦~...

    导读 我一直都主张,技多不压身(没有学不会的技术,只有不学习的人),多学一项技能,未来就少求人一次.网上经常听到xxx删库跑路,万一真的遇到了,相信通过今天的学习,也能将数据再恢复回来~~~ 介绍 记 ...

  5. Canal监听mysql的binlog日志实现数据同步

    Canal监听mysql的binlog日志实现数据同步 1. canal概述 1.1 canal简介 1.2 技术选型 1.3 原理分析 1.3.1 MySQL主备复制原理 1.3.2 canal原理 ...

  6. MySQL慢查询(一) - 开启慢查询

    MySQL慢查询(一) - 开启慢查询 文章出自:https://www.cnblogs.com/luyucheng/p/6265594.html 一.简介 开启慢查询日志,可以让MySQL记录下查询 ...

  7. mysql slave lock 跳过_slave开启MTS时执行mysqldump引发死锁案例

    出现这种问题除非手动干预,杀掉FTWRL的session,复制线程方可以继续进行.版本社区版5.7.26. 二.堵塞图 如果分析上面的堵塞可以画图如下: 三.关于woker线程w1和w3的等待 这里我 ...

  8. elasticsearch 数据类型_基于 MySQL Binlog 的 Elasticsearch 数据同步实践

    来源;马蜂窝 一.背景 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品.订单等数据的多维度检索. 使用 Elasticsearch 存 ...

  9. 基于 MySQL Binlog 的 Elasticsearch 数据同步实践

    一.为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品.订单等数据的多维度检索. 使用 Elasticsearch 存储业务数 ...

最新文章

  1. assert()函数用法总结【转】
  2. Python 入门【常规设置】
  3. 【jQuery】使用Ajax提单表单数据
  4. PHP对Json字符串解码返回NULL的一般解决方案
  5. 电脑软件:推荐八款提高工作效率的软件,值得收藏!
  6. 几个WMS的问题处理
  7. 阿里巴巴发布智能运维故障管理AI+生态计划
  8. ICCV 2019 | 商汤科技57篇论文入选,13项竞赛夺冠
  9. Eclipse导入Elasticsearch源码
  10. python编程常用代码-Python编程常见问题与解答
  11. 卸载软件后,win10应用与功能中仍有残留,解决方案。
  12. 7个开源的SNS社交网络平台
  13. 网站搭建 (第03天) 分页功能
  14. update set命令用来修改表中的数据
  15. 7-1 输出n个数 (10 分)
  16. html中hover的作用,hover在css中的用法
  17. 数仓工具—Hive实战之占比同比环比(10)
  18. 【内网穿透服务器】使用FRP实现内网穿透,远程访问内网服务器
  19. C++-Cmake指令:cmake_minimum_required
  20. mysql8.0 1064_MySQL 8.0.x 用户授权报错 1064 (42000)

热门文章

  1. 唯众本科Web前端专业解决方案
  2. 小游戏-在评论留下你的运行结果吧
  3. Microsoft Edge浏览器插件(1)
  4. CPU(AMD)2020.10购买推荐
  5. 爱快docker青龙面板保姆级
  6. 世界技能大赛夺冠背后,亚马逊云科技如何培养云计算技能人才?
  7. 清北学堂培训2019.4.6
  8. 如果推动世界进步的是魔法,世界将会怎样?
  9. 深入理解激活函数之softmax
  10. Scrapy爬取贝壳网并存入csv