精华内容
下载资源
问答
  • 删除了数据库还能恢复吗
    千次阅读
    2021-02-02 12:10:42

    MySQL 数据库误删除后的数据恢复

    MySQL 数据库误删除后的数据恢复

    在日常运维工作中,对于数据库的备份是至关重要的!数据库对于网站的重要性使得我们对 MySQL 数据库的管理不容有失!

    然而是人总难免会犯错误,说不定哪天大脑短路了,误操作把数据库给删除了,怎么办?

    下面,就 MySQL 数据库误删除后的恢复方案进行说明。

    ### 一、工作场景

    (1)MySQL数据库每晚12:00自动完全备份。

    (2)某天早上上班,9点的时候,一同事犯晕drop了一个数据库!

    (3)需要紧急恢复!可利用备份的数据文件以及增量的binlog文件进行数据恢复。

    ### 二、数据恢复思路

    (1)利用全备的sql文件中记录的CHANGE MASTER语句,binlog文件及其位置点信息,找出binlog文件中增量的那部分。

    (2)用mysqlbinlog命令将上述的binlog文件导出为sql文件,并剔除其中的drop语句。

    (3)通过全备文件和增量binlog文件的导出sql文件,就可以恢复到完整的数据。

    ### 三、实例说明

    首先,要确保mysql开启了binlog日志功能。在/etc/my.cnf文件里的[mysqld]区块添加:

    log-bin=mysql-bin

    然后重启mysql服务

    #### (1)在ops库下创建一张表customers

    mysql> use ops;

    mysql> create table customers(

    -> id int not null auto_increment,

    -> name char(20) not null,

    -> age int not null,

    -> primary key(id)

    -> )engine=InnoDB;

    Query OK, 0 rows affected (0.09 sec)

    mysql> show tables;

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

    | Tables_in_ops |

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

    | customers |

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

    1 row in set (0.00 sec)

    mysql> desc customers;

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

    | Field | Type | Null | Key | Default | Extra |

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

    | id | int(11) | NO | PRI | NULL | auto_increment |

    | name | char(20) | NO | | NULL | |

    | age | int(11) | NO | | NULL | |

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

    3 rows in set (0.02 sec)

    mysql> insert into customers values(1,"wangbo","24");

    Query OK, 1 row affected (0.06 sec)

    mysql> insert into customers values(2,"guohui","22");

    Query OK, 1 row affected (0.06 sec)

    mysql> insert into customers values(3,"zhangheng","27");

    Query OK, 1 row affected (0.09 sec)

    mysql> select * from customers;

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

    | id | name | age |

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

    | 1 | wangbo | 24 |

    | 2 | guohui | 22 |

    | 3 | zhangheng | 27 |

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

    3 rows in set (0.00 sec)

    #### (2)现在进行全备份

    [root@vm-002 ~]# mysqldump -uroot -p -B -F -R -x --master-data=2 ops|gzip >/opt/backup/ops_$(date +%F).sql.gz

    Enter password:

    [root@vm-002 ~]# ls /opt/backup/

    ops_2016-09-25.sql.gz

    #### 参数说明:

    -B:指定数据库

    -F:刷新日志

    -R:备份存储过程等

    -x:锁表

    –master-data:在备份语句里添加CHANGE MASTER语句以及binlog文件及位置点信息

    #### (3)再次插入数据

    mysql> insert into customers values(4,"liupeng","21");

    Query OK, 1 row affected (0.06 sec)

    mysql> insert into customers values(5,"xiaoda","31");

    Query OK, 1 row affected (0.07 sec)

    mysql> insert into customers values(6,"fuaiai","26");

    Query OK, 1 row affected (0.06 sec)

    mysql> select * from customers;

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

    | id | name | age |

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

    | 1 | wangbo | 24 |

    | 2 | guohui | 22 |

    | 3 | zhangheng | 27 |

    | 4 | liupeng | 21 |

    | 5 | xiaoda | 31 |

    | 6 | fuaiai | 26 |

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

    6 rows in set (0.00 sec)

    #### (4)此时误操作,删除了test数据库

    mysql> drop database ops;

    Query OK, 1 row affected (0.04 sec)

    此时,全备之后到误操作时刻之间,用户写入的数据在binlog中,需要恢复出来!

    #### (5)查看全备之后新增的binlog文件

    [root@vm-002 ~]# cd /opt/backup/

    [root@vm-002 backup]# ls

    ops_2016-09-25.sql.gz

    [root@vm-002 backup]# gzip -d ops_2016-09-25.sql.gz

    [root@vm-002 backup]# ls

    ops_2016-09-25.sql

    [root@vm-002 backup]# grep CHANGE ops_2016-09-25.sql

    -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=106;

    这是全备时刻的binlog文件位置,即mysql-bin.000002的106行,因此在该文件之前的binlog文件中的数据都已经包含在这个全备的sql文件中了

    (6)移动binlog文件,并导出为sql文件,剔除其中的drop语句,查看mysql的数据存放目录,有下面可知是在/var/lib/mysql下

    [root@vm-002 backup]# ps -ef|grep mysql

    root 9272 1 0 01:43 pts/1 00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql

    mysql 9377 9272 0 01:43 pts/1 00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock

    [root@vm-002 backup]# cd /var/lib/mysql/

    [root@vm-002 mysql]# ls

    ibdata1 ib_logfile0 ib_logfile1 mysql mysql-bin.000001 mysql-bin.000002 mysql-bin.index mysql.sock test

    [root@vm-002 mysql]# cp mysql-bin.000002 /opt/backup/

    将binlog文件导出sql文件,并vim编辑它删除其中的drop语句

    [root@vm-002 backup]# mysqlbinlog -d ops mysql-bin.000002 >002bin.sql

    [root@vm-002 backup]# ls

    002bin.sql mysql-bin.000002 ops_2016-09-25.sql

    [root@vm-002 backup]# vim 002bin.sql #删除里面的drop语句

    注意:在恢复全备数据之前必须将该binlog文件移出,否则恢复过程中,会继续写入语句到binlog,最终导致增量恢复数据部分变得比较混乱

    #### (7)恢复数据

    [root@vm-002 backup]# mysql -uroot -p < ops_2016-09-25.sql

    Enter password:

    [root@vm-002 backup]#

    查看数据库,看看ops库在不在

    mysql> show databases;

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

    | Database |

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

    | information_schema |

    | mysql |

    | ops |

    | test |

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

    4 rows in set (0.00 sec)

    mysql> use ops;

    Reading table information for completion of table and column names

    You can turn off this feature to get a quicker startup with -A

    Database changed

    mysql> select * from customers;

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

    | id | name | age |

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

    | 1 | wangbo | 0 |

    | 2 | guohui | 0 |

    | 3 | zhangheng | 0 |

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

    3 rows in set (0.00 sec)

    此时恢复了全备时刻的数据。接着,使用002bin.sql文件恢复全备时刻到删除数据库之间,新增的数据

    [root@vm-002 backup]# mysql -uroot -p ops <002bin.sql

    Enter password:

    [root@vm-002 backup]#

    再次查看数据库,发现全备份到删除数据库之间的那部分数据也恢复了!!

    mysql> select * from customers;

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

    | id | name | age |

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

    | 1 | wangbo | 24 |

    | 2 | guohui | 22 |

    | 3 | zhangheng | 27 |

    | 4 | liupeng | 21 |

    | 5 | xiaoda | 31 |

    | 6 | fuaiai | 26 |

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

    6 rows in set (0.00 sec)

    以上就是mysql数据库增量数据恢复的实例过程!

    最后,总结几点:

    1)本案例适用于人为SQL语句造成的误操作或者没有主从复制等的热备情况宕机时的修复

    2)恢复条件为mysql要开启binlog日志功能,并且要全备和增量的所有数据

    3)恢复时建议对外停止更新,即禁止更新数据库

    4)先恢复全量,然后把全备时刻点以后的增量日志,按顺序恢复成SQL文件,然后把文件中有问题的SQL语句删除(也可通过时间和位置点),再恢复到数据库。

    更多相关内容
  • 有个朋友很着急地打电话给我,他用delete语句误删除了SQL Server 2008数据库中两个表中的所有记录,而这个数据库之前没有任何备份。让我帮他解决一下,不然他要赔偿客户很多钱。 SQL Server中误删除数据的恢复本来...
  • 今天有个朋友很着急地打电话给我,他用delete语句误删除了SQL Server 2008数据库中两个表中的所有记录,而这个数据库之前没有任何备份。让我帮他解决一下,不然他要赔偿客户很多钱
  • 通常情况睛,SQLServer2000正在使用的数据库(有数据库连接),是不能删除或被恢复的,可以将数据库设置为单用户模式,即可删除: ALTER DATABASE IpaddrDB SET SINGLE_USER with ROLLBACK IMMEDIATE GO DROP...
  • thinkphp3.2数据库备份下载恢复删除,在网上也是搜索了大量的信息,才弄出适合自己的数据库管理功能,提取出所需文件,大家学习进步
  • 本文主要研究服务器及非WINDOWS平台下的数据灾难恢复。  [数据恢复故障描述]  一台重要的MYSQL数据库服务器,146GB*2,RAID1,约130GB DATA卷,存储了大约200~300个数据库。... 要求恢复mysql数据库文件,即
  • Sqlite 数据库删除恢复

    热门讨论 2015-10-14 23:58:04
    一款可以恢复sqlite db 数据库删除信息的工具。如果删掉了sqlite db里面的数据,可以用这个工具查看已删除的记录,上传到资源里面了,可以去下载
  • MySQL删除数据库恢复方法分享.pdfMySQL删除数据库恢复方法分享.pdfMySQL删除数据库恢复方法分享.pdfMySQL删除数据库恢复方法分享.pdfMySQL删除数据库恢复方法分享.pdfMySQL删除数据库恢复方法分享.pdf
  • Mysql的Bin log数据恢复:不小心删除数据库 前言:因为不小心删除了测试机器上Mysql的一整个数据库Schema,因为是测试机所以没有做备份,现在通过MySQL的Bin log方式恢复删除以前的数据库。 当然做Bin log的数据...
  • 批量执行SQL SERVER数据库的备份、恢复删除,对于用友T3、T6数据库删除时支持年度或整个账套,并可同时删除对应的账套参数信息。 适用于在重做系统或更换电脑时,需要进行大量数据的备份和恢复操作。 如果数据库...
  • 适用于2008-2014以内的SQLSERVER数据库 亲测2008r2完美恢复,简单明了 误删除、更新、修改都可恢复 原理是通过读取数据库日志
  • 数据库删除了,如何恢复

    千次阅读 2021-09-24 18:29:17
    记录一下今天下午的谜之操作,不小心把数据库删除掉了,而且没有备份,差点真是删库跑路了。(一切源于一言难尽),我的案例是在宝塔环境下面执行的,所以仅供参考。 第一步:登录数据库,查看是否开启了binlog...

    记录一下今天下午的谜之操作,不小心把数据库给删除掉了,而且没有备份,差点真是删库跑路了。(一切源于一言难尽),我的案例是在宝塔环境下面执行的,所以仅供参考。

    第一步:登录数据库,查看是否开启了binlog日志

    [root@iZwz9cir5blv91u0r6eyboZ ~]# mysql -u root -p
    Enter password: ****
    mysql> SHOW VARIABLES LIKE 'LOG_BIN%';
    +---------------------------------+----------------------------------+
    | Variable_name                   | Value                            |
    +---------------------------------+----------------------------------+
    | log_bin                         | ON                               |
    | log_bin_basename                | /www/server/data/mysql-bin       |
    | log_bin_index                   | /www/server/data/mysql-bin.index |
    | log_bin_trust_function_creators | OFF                              |
    | log_bin_use_v1_row_events       | OFF                              |
    +---------------------------------+----------------------------------+
    5 rows in set (0.00 sec)
    
    mysql> show master logs; # 查看日志文件
    +------------------+-----------+
    | Log_name         | File_size |
    +------------------+-----------+
    | mysql-bin.000007 |   5476353 |
    | mysql-bin.000008 |       167 |
    | mysql-bin.000009 |       143 |
    | mysql-bin.000010 |       143 |
    | mysql-bin.000011 |  45125413 |
    +------------------+-----------+
    5 rows in set (0.00 sec)
    
    
    mysql> show master status; # 查看最后更新日志文件 一般都是用于恢复
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000011 | 45164856 |              |                  |                   |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    

     log_bin为on 就是开启状态,off 就是关闭状态。(宝塔默认是开启的)

    如果你的数据库开处于关闭状态建议你马上开启。

    # 找到你的mysql 配置文件 添加下面三行
    log_bin=ON
    log_bin_basename=/var/lib/mysql/mysql-bin   # 日志存储地址
    log_bin_index=/var/lib/mysql/mysql-bin.index  # 日志索引存储地址
    
    # 重启mysql服务
    

    三个参数来指定,

    第一个参数是打开binlog日志 on

    第二个参数:binlog日志存储地方以及命名

    第三个参数:binlog文件的索引文件

    还有一种简单的配置 就是把 log-bin=mysql-bin

    #在数据库配置文件中添加,log-bin = 数据库命令执行目录的bin中
    log-bin=mysql-bin # /var/lib/mysql/mysql-bin

    第二步:利用使用 mysqlbinlog工具 提取 binlog 内容

     由于binlog日志是二进制的,所以是无法查看的,需要借助 mysqlbinlog工具进行提取操作。

    # 进入到
    cd  /www/server/data/
    
    [root@iZwz9cir5blv91u0r6eyboZ data]# ll
    total 649792
    -rw-rw---- 1 mysql mysql   5476353 Apr 29 16:04 mysql-bin.000007
    -rw-rw---- 1 mysql mysql       167 Apr 29 16:06 mysql-bin.000008
    -rw-rw---- 1 mysql mysql       143 Apr 29 16:09 mysql-bin.000009
    -rw-rw---- 1 mysql mysql       143 Apr 29 16:26 mysql-bin.000010
    -rw-rw---- 1 mysql mysql  45111211 Sep 24 16:16 mysql-bin.000011
    -rw-rw---- 1 mysql mysql        95 Apr 29 16:27 mysql-bin.index
    
    
    以 mysql-bin 命名的就是 binlog文件了。
    
    # 查看 mysqlbinlog 工具所在的位置
    [root@iZwz9cir5blv91u0r6eyboZ log]# find / -name mysqlbinlog
    /www/server/mysql/bin/mysqlbinlog
    
    # 查看日志文件
    [root@iZwz9cir5blv91u0r6eyboZ log]/www/server/mysql/bin/mysqlbinlog
    /www/server/data/mysql-bin.000007
    
    # 执行提取文件命令
    # 语法 mysqlbinlog  -v --base64-output=decode-rows  
    --start-datetime='开始时间' 
    --stop-datetime = '结束时间' 
    -d '数据库名称' 日志文件 > 写入的sql文件
    
    
    /www/server/mysql/bin/mysqlbinlog -v --base64-output=decode-rows
     --start-datetime='2021-08-03 11:00:00'
    --stop-datetime='2021-09-24 16:50:00'
    -d 'card' /www/server/data/mysql-bin.000011 > /home/log/data_3.sql
    
    
    
    # 参数说明
    方式一、按照时间提取(一般都是按照这个方式筛选)
    --start-datetime 指定开始日期
    --stop-datetime  指定结束时间
    
    方式二、按照文件的行数提取
    
    --start-position(指定开始位置,恢复到此位置之后的数据,包括此位置)
    
    --stop-position(指定结束位置,恢复此位置之前的数据,不包括此位置)
    
    -d 指定库
    
    -v --base64-output=decode-rows
    # 看得到dml语句具体做了什么操作(例如:insert时具体插入了什么数据)
    # 看不到dml语句的完整sql语句(例如:insert into t1(id) values(1);)
    # 看不到dml语句的"伪"sql语句 无所谓的
    
    -vv --base64-output=decode-rows
    # 看得到dml语句具体做了什么操作(例如:insert时具体插入了什么数据)
    # 看得到dml语句的完整sql语句(例如:insert into t1(id) values(1);),但是被注释掉了的;
    # 看不到dml语句的"伪"sql语句 无所谓的这个
    
    # 导出文件以后,下载sql文件,然后打开

    打开文件后的样子

     本质就是一个sql文件,一些create 操作。搜索一下  drop database 关键字,把有关删除操作的sql 语句全部去掉, 直接下来在本地导入运行sql文件 测试。

    可以使用source 命令进行导入操作

    source C:/Users/Administrator/Desktop/card_3.sql;

    也可以使用PHPstorm 打开sql文件,右键运行。(建议这个操作)

     运行完成以后,你打开数据库,本地启动项目检测一下数据是否完全恢复了。

    展开全文
  • 当然,前提是你要把自己的数据库搞定后再去删除,否则组件删除后很多功能不用,为了安全,就得牺牲某些功能,当然,像我这类的,我除了把MSSQL导入后,基本上一年用不到两次,所以,我是会毫不犹豫地删除,嘿. 一, 将有安全...
  • 数据库恢复工具是一款针对oracle 数据库丢失进行恢复的工具,oracle数据库dbf ora文件被误删除,或者数据库文件所在分区误格式化,客户自行在网上下载的普通数据恢复软件恢复出来的
  • 这种删库后,实际的数据库表数据文件 存在磁盘 只是文件簇链接被破坏,所以看不到了,mysql4 .x 5.x 8.x mariadb 10.x 这种情况都可以很完美的恢复,前提是不要读写分区 覆盖数据。第一时间做快照;被黑删库 基本都...

    6月 mysql数据库被删库的太多了, 如果你也遇到了这个问题,那就保护好原始环境 不要尝试恢复了,赶紧联系专业人士处理。

    这种删库后,实际的数据库表数据文件 还存在磁盘 只是文件簇链接被破坏,所以看不到了,mysql

    4 .x 5.x 8.x mariadb 10.x  这种情况都可以很完美的恢复,前提是不要读写分区 覆盖数据。第一时

    间做快照;

    被黑删库 基本都是下面的情况 原库不见了,或者原库表都不见了, 新建的有 recover_xxx数据库 这就是典型的被黑删库。

     

     

     

     

     

     

    展开全文
  • 在做数据库修改或删除操作中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份很好地保护数据库。本篇文章主要讲述Navicat for MySQL定时备份数据库和数据恢复等功能,同时可以定时播放电影等设置,希望对...
  • 极佳SQL数据库丢失恢复工具,极佳SQL数据库删除恢复工具, 支持 SQL7.0 2000 2005 2008 2008R2 2012 版本数据库丢失 覆盖 误还原 所在分区误格式化 数据库文件被删除 分区改变 磁盘分区损坏 等情况 下的SQL数据库 ...
  • 优质数据库文件丢失覆盖恢复工具,本工具 针对微软ACCESS数据库开发 支持 误删除误格式化 误还原备份文件 等各种原因导致的数据库丢失恢复任务。支持 MDB ACCDB 文件恢复,根据 文件结
  • 下面按数据库类型分别列举数据恢复的方法。 mysql 恢复某个备份或者恢复到某时间点 恢复单个库或表,或者恢复多个库或表 恢复到其它地域,这个主要是用于快速在另一个地域建立数据库 sql server 恢复mssql备份或者...
  • mysql 数据库恢复是通过 MySQL 本身的 binlog 日志来恢复丢失或删除的数据,binlog 日志文件中记录着数据库中所有的操作,CRUD/Rollback 操作都会记录在日志中。该方式是通过通过 binlog 日志恢复,需要保证数据库...

    前言

    该方案针对于 linux 环境下恢复数据,windows 下不太清楚能不能用,可以参考下。

    mysql 数据库的恢复是通过 MySQL 本身的 binlog 日志来恢复丢失或删除的数据,binlog 日志文件中记录着数据库中所有的操作,CRUD/Rollback 操作都会记录在日志中。

    该方式是通过通过 binlog 日志恢复,需要保证数据库开启了 binlog 日志。

    一、恢复数据需要满足的条件

    查询是否开启 binlog 日志的 sql 脚本:
    如果没开启的话,这个方案恢复不了了的。

     show variables like '%log_bin%';
    

    在这里插入图片描述
    查看binlog存放日志文件目录

      show variables like '%datadir%';
    

    my2sql 插件使用的限制条件:

    • 使用回滚/闪回功能时,binlog格式必须为row,且binlog_row_image=full, DML统计以及大事务分析不受影响,只能回滚DML, 不能回滚DDL
    • 支持指定-tl时区来解释binlog中time/datetime字段的内容。开始时间-start-datetime与结束时间-stop-datetime也会使用此指定的时区, 但注意此开始与结束时间针对的是binlog event header中保存的unix timestamp。结果中的额外的datetime时间信息都是binlog event header中的unix timestamp
    • 此工具是伪装成从库拉取binlog,需要连接数据库的用户有SELECT, REPLICATION SLAVE, REPLICATION CLIENT权限

    插件下载地址,下载免费:my2sql下载地址免费
    在这里插入图片描述

    二、开始恢复数据

    1、第一步

    在mysql 安装目录 bin 目录中放入插件 my2sql,然后给 my2sql 赋权限。

      chmod 777 my2sql
    

    2、第二步

    创建一个空文件夹 “tmpdir”,然后给个 777 的权限。

     mkdir tmpdir
    

    3、第三步

    binlong文件下载到本地,然后转换成sql格式找到对应的节点(pos点),节点名(pos点)是纯数字的时间戳,根据节点可以恢复指定时间段的数据。
    binlog 文件格式转换,首先保证本地数据库与生产环境数据库版本要一致,然后输入以下命令(不要有换行符号):

    mysqlbinlog --no-defaults --base64-output=decode-rows -v 
    --start-datetime="2022-08-09 08:00:00" --stop-datetime="2022-08-17 10:35:00" 
    C:\MySQL\MySQL8.0\Desktop\mysql-bin.000039 -r ./output1.sql
    

    说明:

    mysqlbinlog --no-defaults --base64-output=decode-rows -v 
    --start-datetime="开始时间" --stop-datetime="结束时间"  
    'binlog文件的绝对路径' -r ./'转换后的文件名称'
    

    转换后的sql文件中的节点(pos点):
    可以根据binlog文件中的时间找到对应的节点,有了开始节点与结束节点,就可以恢复指定时间段的数据了。
    在这里插入图片描述

    4、第四步

    在bin目录,输入以下命令(不要有换行):

    ./my2sql -user root -password 123456 -host 127.0.0.1 -port 3308  
    -mode file -local-binlog-file ./mysql-bin.000038  -work-type 2sql  
    -start-file mysql-bin.000038  -start-pos 606463342  -
    stop-file mysql-bin.000038 -stop-pos 651675557  -output-dir ./tmpdir
    

    说明:

    ./my2sql -user '账号' -password '密码' -host 'ip (bin 目录就是127)' -port '端口'  -mode file -local-binlog-file ./'binlog 文件名'  -work-type 2sql  -start-file 'binlog 文件名'  -start-pos '开始节点(节点数字在binlog日志中有)'  -stop-file 'binlog 文件名' -stop-pos '结束节点(节点数字在binlog日志中有)'  -output-dir ./tmpdir
    

    执行成功后,会将 binlog 文件中对应节点的 sql 语句提取到文件中,我本次共生成了三个文件,分别为 biglong_trx.txt 、binlog_status.txt 、forward.38.sql

    文件说明:
    biglong_trx.txt:
    该文件没什么内容,没去深入了解,没什么用,暂不关注。
    binlog_status.txt:
    该文件是说明 binlog 文件的DML统计信息,比如开始节点到结束节点中,都执行了哪些 sql ,什么时候执行的,执行了什么操作,影响了几行数据,什么执行结束的。
    forward.38.sql:
    该文件存的是从 binlog 中提取出来的 sql 语句,这个语句是可以在数据库中执行的sql文件。

    5、第五步

    将提取出的文件,在文本编辑器中打开,检查对应的 sql 是否正确且完整,要注意 delete 与 rollback语句

    6、 第六步

    sql 审查没问题了,然后在库里面将 sql 文件执行下就好了,推荐使用 navicat 15 工具,选运行 sql 文件来执行sql,到此,数据就算恢复完成了。

    结束语:

    涉及正式数据一定要慎重,请不要在生产环境执行任何修改生产环境的 sql 脚本,要定期备份,或者做主从复制的模式,主机只对应用程序开放连接,其余需要数据库的,都连接从库。
    附一个 my2sql 工具详解的博客地址,有兴趣的可以了解一下 my2sql 工具。
    地址:https://blog.csdn.net/liuhanran/article/details/107425016


    展开全文
  • 十分详细,亲自做实验得出来的结论及步骤,直接下载。十分详细,亲自做实验得出来的结论及步骤,直接下载。
  • SQL Server 数据库之备份和恢复数据库

    千次阅读 2022-04-11 22:14:48
    数据库的备份 数据库恢复
  • 昨日,服务器一磁盘意外故障,c盘数据... 您可能感兴趣的文章:Oracle数据库的备份与恢复Oracle误删除表数据后的数据恢复详解oracle冷备份恢复和oracle异机恢复使用方法oracle如何恢复被覆盖的存储过程Oracle数据库数据
  • 数据库删除后的两种恢复方法(二)详细操作
  • 数据库表误删恢复

    千次阅读 2021-07-22 16:40:32
    利用表空间的recycle特性(默认开启),show parameter recycle查看...1.查看recyclebin里被删除的表: select original_name,object_name from recyclebin ; 2.恢复: flashback table “***” to before drop‘;
  • 希贝Access数据库恢复软件是一款支持误删除 误格式化 误覆盖 等各种原因丢失的 MDB accdb文件恢复 页面级恢复 ,超越常规恢复。希贝Access数据库恢复软件可以处理微软ACCESS数据库丢失,
  • ApexSQL Log 2018是一款实用的sql数据库误操作恢复工具,之前小编为大家提供过ApexSQL Log 2016版本的下载,这个版本增加了对sql2008,sql2012...同时可以完整地恢复已经删除和损坏的数据,是您管理数据库的好帮手。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 339,412
精华内容 135,764
热门标签
关键字:

删除了数据库还能恢复吗

友情链接: 分页.rar