返回顶部
首页 > 资讯 > 数据库 >误删除InnoDB ibdata数据文件怎么办
  • 778
分享到

误删除InnoDB ibdata数据文件怎么办

2024-04-02 19:04:59 778人浏览 薄情痞子
摘要

这篇文章主要介绍了误删除InnoDB ibdata数据文件怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 下边这个案例模拟人

这篇文章主要介绍了误删除InnoDB ibdata数据文件怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

 下边这个案例模拟人为误删除数据文件和重做日志文件。
1)删除数据文件和重做日志文件
cd /Mysql/data
rm -rf ib*
2)若此时数据库可以正常工作,数据可以正常写入,千万不要将mysqld杀死,否则没法挽救,找到mysqld的pid
[root@mysql data]# netstat -nltp |grep mysqld
tcp        0      0 :::3306                     :::*                        LISTEN      29691/mysqld
这里是29691
[root@mysql mysql]# ll /proc/29691/fd |egrep 'ib_|ibdata'
lrwx------ 1 root root 64 Aug  8 13:32 10 -> /mysql/ib_logfile1 (deleted)
lrwx------ 1 root root 64 Aug  8 13:32 4 -> /mysql/ibdata1 (deleted)
lrwx------ 1 root root 64 Aug  8 13:32 9 -> /mysql/ib_logfile0 (deleted)
10,4,9就是需要我们恢复的文件。
3)关闭前端业务或者执行:
flush tables with read lock;
目的是让数据库没有写入操作。
4)执行以下命令使脏页尽快刷入磁盘
set global innodb_max_dirty_pages_pct=0;
5)然后查看binlog日志写入情况,确保file和position的值没有变化。
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000004 |      980 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
6)查看InnoDB状态信息,确保脏页已经刷入磁盘。
mysql> show engine innodb status \G
*************************** 1. row ***************************
  Type: InnoDB
  Name: 
Status: 
=====================================
2017-08-08 13:46:24 7f4d3e2b2700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 10 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 3 srv_active, 0 srv_shutdown, 8043 srv_idle
srv_master_thread log flush and writes: 8046
----------
SEMAPHORES
----------
OS WaiT ARRAY INFO: reservation count 9
OS WAIT ARRAY INFO: signal count 9
Mutex spin waits 2, rounds 60, OS waits 2
RW-shared spins 6, rounds 180, OS waits 6
RW-excl spins 0, rounds 30, OS waits 1
Spin rounds per wait: 30.00 mutex, 30.00 RW-shared, 30.00 RW-excl
------------
TRANSACTIONS
------------
Trx id counter 31247
Purge done for trx's n:o < 31242 undo n:o < 0 state: running but idle
##确保后天purge进程把undo log全部清除掉,事务ID要一致
History list length 969
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0, not started
MySQL thread id 4, OS thread handle 0x7f4d3e230700, query id 151 10.10.10.1 root
---TRANSACTION 31246, not started
MySQL thread id 2, OS thread handle 0x7f4d3e2b2700, query id 160 localhost root init
show engine innodb status
--------
FILE I/O
--------
I/O thread 0 state: waiting for i/o request (insert buffer thread)
I/O thread 1 state: waiting for i/o request (log thread)
I/O thread 2 state: waiting for i/o request (read thread)
I/O thread 3 state: waiting for i/o request (read thread)
I/O thread 4 state: waiting for i/o request (read thread)
I/O thread 5 state: waiting for i/o request (read thread)
I/O thread 6 state: waiting for i/o request (write thread)
I/O thread 7 state: waiting for i/o request (write thread)
I/O thread 8 state: waiting for i/o request (write thread)
I/O thread 9 state: waiting for i/o request (write thread)
Pending nORMal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] ,
 ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
Pending flushes (fsync) log: 0; buffer pool: 0
404 OS file reads, 25 OS file writes, 22 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s
-------------------------------------
INSERT BUFFER AND ADAPTIVE HASH INDEX
-------------------------------------
Ibuf: size 1, free list len 0, seg size 2, 0 merges
##insert buffer合并插入缓存等于1
merged operations:
 insert 0, delete mark 0, delete 0
discarded operations:
 insert 0, delete mark 0, delete 0
Hash table size 276671, node heap has 2 buffer(s)
0.00 hash searches/s, 0.00 non-hash searches/s
---
LOG
---
Log sequence number 3401065960
Log flushed up to   3401065960
Pages flushed up to 3401065960
Last checkpoint at  3401065960
##确保这4个值不在变化
0 pending log writes, 0 pending chkp writes
16 log i/o's done, 0.00 log i/o's/second
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 137363456; in additional pool allocated 0
Dictionary memory allocated 63833
Buffer pool size   8191
Free buffers       7802
Database pages     387
Old database pages 0
Modified db pages  0
##确保脏页数量为0
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 0, not young 0
0.00 youngs/s, 0.00 non-youngs/s
Pages read 387, created 0, written 10
0.00 reads/s, 0.00 creates/s, 0.00 writes/s
No buffer pool page gets since the last printout
Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 387, unzip_LRU len: 0
I/O sum[0]:cur[0], unzip sum[0]:cur[0]
--------------
ROW OPERATIONS
--------------
0 queries inside InnoDB, 0 queries in queue
0 read views open inside InnoDB
Main thread process no. 29691, id 139969685923584, state: sleeping
Number of rows inserted 1, updated 1, deleted 0, read 31
0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s
##确保插入、更新、删除为0
----------------------------
END OF INNODB MONITOR OUTPUT
============================
1 row in set (0.03 sec)
7)开始恢复工作
[root@mysql mysql]# ll /proc/29691/fd |egrep 'ib_|ibdata'
lrwx------ 1 root root 64 Aug  8 13:32 10 -> /mysql/ib_logfile1 (deleted)
lrwx------ 1 root root 64 Aug  8 13:32 4 -> /mysql/ibdata1 (deleted)
lrwx------ 1 root root 64 Aug  8 13:32 9 -> /mysql/ib_logfile0 (deleted)
cd /proc/29691/fd
cp 10 /mysql/ib_logfile1
cp 4 /mysql/ibdata1
cp 9 /mysql/ib_logfile0
8)更改数据文件和重做日志文件权限
cd /mysql/
chown mysql:mysql ib*
9)重启MySQL服务

感谢你能够认真阅读完这篇文章,希望小编分享的“误删除InnoDB ibdata数据文件怎么办”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,更多相关知识等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: 误删除InnoDB ibdata数据文件怎么办

本文链接: https://lsjlt.com/news/62632.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 误删除InnoDB ibdata数据文件怎么办
    这篇文章主要介绍了误删除InnoDB ibdata数据文件怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 下边这个案例模拟人...
    99+
    2024-04-02
  • mysql ibdata文件 误删除 恢复
    1 当我们误删除ibdata 文件时 千万不要慌张 此时只要不重启服务 mysql数据库还是可以使用的 如何恢复 前提 不要把mysqld进程杀死,且不能关闭mysql服务  查到mysql...
    99+
    2024-04-02
  • Mysql中误删ibdata ib_logfile等文件怎么办
    这篇文章主要介绍了Mysql中误删ibdata ib_logfile等文件怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • mysql5.7.33误删除ibdata文件找回数据的方法
    一、场景说明: 很多时候因为 MySQL 数据库不能启动而造成数据无法访问,但应用的数据通常没有丢失,只是系统表空间等其它文件损坏了,或者遇到 MySQL 的 bug。 这个时候如果没有备份,很多人就以为数据丢失...
    99+
    2022-05-14
    mysql误删ibdata mysql ibdata找回 mysql ibdata恢复
  • mysql中怎么删除ibdata文件
    本篇文章给大家分享的是有关mysql中怎么删除ibdata文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 在数...
    99+
    2024-04-02
  • MySQL数据误删除怎么办
    小编给大家分享一下MySQL数据误删除怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!概述Binlog2sql是一个Pyth...
    99+
    2024-04-02
  • oracle数据文件误删除怎么恢复
    如果Oracle数据文件被误删除,可以尝试以下方法来恢复数据文件: 使用Oracle RMAN恢复工具:Oracle Recov...
    99+
    2024-04-09
    oracle
  • mysql误删除表内数据怎么办
    这篇文章主要介绍了mysql误删除表内数据怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 #添加数据 insert into te...
    99+
    2024-04-02
  • mysql数据库误删除后怎么办
    小编给大家分享一下mysql数据库误删除后怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!首先,要确保mysql开启了binlog日志功能在/etc/my.cnf文件里的[mysqld...
    99+
    2024-04-02
  • linux下怎么恢复误删除oracle的数据文件
    本篇内容介绍了“linux下怎么恢复误删除oracle的数据文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • linux怎么恢复rm误删除的数据库文件
    这篇文章主要介绍“linux怎么恢复rm误删除的数据库文件”,在日常操作中,相信很多人在linux怎么恢复rm误删除的数据库文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux怎么恢复rm误删除的数据...
    99+
    2023-06-13
  • Linux下误删文件怎么办
    这篇文章主要为大家展示了“Linux下误删文件怎么办”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下误删文件怎么办”这篇文章吧。把删除创建为 rm -i 的别名当 -i 选项配合 rm...
    99+
    2023-06-16
  • MySQL误删数据怎么办
    MySQL误删数据怎么办,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先看下MySQL误删数据排名最前的几种是:1.误删文件2.误删库、表3...
    99+
    2024-04-02
  • Oracle11g数据库参数文件误删除恢复
    本文测试了误删除spfile,pfile,init.ora等文件后的恢复方法,考虑多种场景,在不同场景下进行参数文件恢复。   第一步:连上数据库,查看spfile文件所在路径 ...
    99+
    2024-04-02
  • sqlite数据库文件怎么删除
    要删除SQLite数据库文件,可以按照以下步骤操作: 关闭与数据库文件相关的所有连接和应用程序,确保数据库文件没有被占用。 打开命...
    99+
    2024-04-09
    sqlite
  • Oracle中删除数据报ORA 02292错误怎么办
    这篇文章给大家分享的是有关Oracle中删除数据报ORA 02292错误怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体代码如下所示:--查询表TP_MENU有哪些约束 ...
    99+
    2024-04-02
  • 达梦数据库DM7数据文件误删除恢复
    在DM7中,有两个与数据文件恢复有关的特性。 数据文件失效检查  在DM.ini中参数FIL_CHECK_INTERVAL的值指定dm7系统检查数据文件还存在的时间间隔,设为0表示不检查...
    99+
    2024-04-02
  • 添加和删除InnoDB数据和日志文件的方法
    这篇文章主要介绍“添加和删除InnoDB数据和日志文件的方法”,在日常操作中,相信很多人在添加和删除InnoDB数据和日志文件的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • oracle误删除表怎么办
    oracle误删表可分四步恢复:1. 检查回收站;2. 执行查询恢复表;3. 提交恢复使更改永久化;4. 检查恢复表以验证数据完整性。 Oracle 误删除表如何恢复? 简介误删除 O...
    99+
    2024-04-18
    oracle 数据丢失
  • ubuntu12.04误删dpkg文件夹怎么办
    本篇内容介绍了“ubuntu12.04误删dpkg文件夹怎么办”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!错误如下:正在读取软件包列表.....
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作