MySQL数据库恢复过程

  MySQL数据库恢复过程

  某客户更新数据的时候,误删了数据库的内容,因为数据库做了主从,但是没有做备份(备份很重要啊!)幸好开启了bin-log。之后只好把整个日志的记录拿回来本地进行恢复。之后自己也做了一个简单的测试,对数据进行恢复,具体如下:

  binlog是什么?

  binlog日志用于记录所有更新且提交了数据或者已经潜在更新提交了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改

  1、新建一个表

  CREATE TABLE `lynn`.`sn_test` ( `name` VARCHAR( 10 ) CHARACTER SET utf8
COLLATE utf8_bin NOT NULL , `age` INT( 3 ) NOT NULL ) ENGINE = MYISAM;

  2、插入多条数据

  INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES (‘lynn1‘, ‘1‘);

  INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES (‘lynn2‘, ‘2‘);

  INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES (‘lynn3‘, ‘3‘);

  INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES (‘lynn4‘, ‘4‘);

  3、查看数据并删除

  mysql> select * from sn_test;

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

  | name | age |

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

  | lynn1 | 1 |

  | lynn2 | 2 |

  | lynn3 | 3 |

  | lynn4 | 4 |

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

  4 rows in set (0.00 sec)

  mysql> delete from sn_test;

  Query OK, 4 rows affected (0.00 sec)

  mysql> select * from sn_test;

  Empty set (0.00 sec)

  4、mysqlbinlog恢复数据

  mysqlbinlog mysql-bin.000006 > 1.sql

  查看1.txt里面数据插入的纪录,把删除之前的数据进行恢复

  mysqlbinlog mysql-bin.000006 --start-position=2471 --stop-position=2876 |
mysql -uroot -p123

  重新登录,查看数据,OK,已经成功恢复了

  对于数据库操作,应该注意如下问题:

  1、要常备份(全备,增量备份),出了问题可以最快恢复数据;

  2、操作数据库前,要把需要操作的数据库或者表dump出来;

  3、使用备份工具:多备份。数据自动备份,需要时一键恢复即可。数据上传到多个云端平台,丢失风险基本为零

  4、需要把bin-log打开,就算没有做上面的两步,也可以通过日志恢复数据

时间: 2024-10-25 02:56:16

MySQL数据库恢复过程的相关文章

MySQL数据库恢复(使用mysqlbinlog命令)

MySQL数据库恢复(使用mysqlbinlog命令) 1:开启binlog日志记录 修改mysql配置文件mysql.ini,在[mysqld]节点下添加 复制代码代码如下: # log-bin log-bin = E:/log/logbin.log 路径中不要包含中文和空格.重启mysql服务.通过命令行停止和启动mysql服务 复制代码代码如下: c:\>net stop mysql; c:\>net start mysql; 进入命令行进入mysql并查看二进制日志是否已经启动 Sql

阿里云RDS-Mysql物理备份数据库文件,在本地windows下数据库恢复过程

记录一次阿里云RDS-Mysql备份文件,本地windows数据库恢复过程 - hbh112233abc的博客 - CSDN博客 https://blog.csdn.net/hbh112233abc/article/details/80941263 --------------------- 恢复后,账号是root,密码是root 其它账号.密码与RDS上的一样 原文地址:https://www.cnblogs.com/pangchunyu/p/11994506.html

MySQL崩溃恢复过程常见错误分析

最近在和一个同事争论MySQL崩溃恢复中的一些常见错误时出现了一些分歧,他认为一些参数的设置会导致MySQL出现崩溃后恢复不起来的问题,但对此,我却不认同,虽然一些参数的设定会导致数据丢失,但应该不会引起数据库崩溃之后无法恢复的情况,因此,就想整理出MySQL崩溃恢复的过程来加深学习! 图一 mysql WAL过程 在正常情况下,数据写入会先写入redo_buffer_pool,然后在写入redo_log_file,这中间如果由于参数设置不当,可能会发生丢失,但不影响主机的崩溃恢复,但有以下两种

MySQL数据库编译过程

编译安装MySQL 准备工作 卸载rpm方式安装的mysql-server.mysql 安装ncurses-devel和cmake包 yum -y install ncurses-devel cmake tar xf cmake-2.8.6.tar.gz -C /usr/src cd /usr/src/cmake-2.8.6/ ./configure && gmake && gmake install 这个过程需要时间 源码编译及安装 增加程序用户mysql useradd

SQLSERVER最简单的同名数据库恢复过程.

一. 冷备份恢复 1. net stop mssqlserver # 如果是安装的默认数据库实例 关闭 sqlserver的数据库 2. copy sqlserver的数据文件 主要是mdf 数据文件以及ldf 的磁盘文件. 3. 如果数据库采取完整日志模式 日志文件比较多的情况下可以先处理一下日志文件. 1. checkpoint 2. 任务-收缩-日志文件. 修改大小 3. 报表-按照磁盘大小排序-展示所有的表 4. 将不需要的日志表 以及 备份表 truncate 掉 5. 收缩mdf 数

mysql数据库无法启动恢复 mysql数据库崩溃恢复 mysql数据库恢复

客户名称 保密 数据类型 mysql 5.5 innodb 数据容量 1500 MB 故障类型 服务器断电导致mysql无法启动.客户自己尝试innodb崩溃恢复从参数1-6无效. InnoDB: for more information. InnoDB: Error: trying to access page number 805281720 in space 0, InnoDB: space name .\ibdata1, InnoDB: which is outside the tabl

使用Memcache缓存mysql数据库操作的原理和缓存过程浅析

转载自脚本之家 http://www.jb51.net/article/51831.htm  作者:忙碌的松鼠 对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的服务器,完全可以通过配置Memcache提高网站访问速度和减少数据库压力,这里主要讨论一下Memcache和MySQL数据库交互过程的流程关系,了解Memcache的中间缓存层作用,从而深入了解Memcache机制原理. Memcache和MySQL

MySQL数据库建模部分重要过程

MySQL数据库建模过程可以分为 需求分析阶段.概要设计阶段.详细设计阶段.代码编写阶段.软件测试阶段 下面主要介绍一下概要设计阶段的E-R模型图的设计以及三大范式. E-R图设计 在E-R图中,实体用矩形表示,属性用椭圆表示,关系用菱形表示. 实体之间的关系: 一对一(1:1):一个实体最多只能能另一个实体相关联,另一个实体如是. 例:一个只能有一张身份证. 一对多(1:n): 一个实体可以和别的实体任意关联(他们只能和前面的实体关联) 例:一个班有多名学生. 多对多:(n:n):一个实体可以

mysql增量恢复

mysql增量恢复过程 创建一张用于测试的表 mysql> create table user (name char(10),age int(3)); Query OK, 0 rows affected (0.07 sec) mysql> desc user; +-------+----------+------+-----+---------+-------+ | Field | Type     | Null | Key | Default | Extra | +-------+-----