当前位置:首页 » 数据仓库 » ibdata数据库恢复
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

ibdata数据库恢复

发布时间: 2022-12-12 18:20:34

① 如何从 ibdata文件 恢复 Mysql 数据库

已试过的方法:
1、停止MySQL服务
2、修改my.ini,在[mysql] 中追加 innodb_force_recovery=4 配置
3、启动MySQL服务,能正常启动服务,但数据库并没有恢复,完成的.err日志如下:

130205 16:01:26 [Note] Plugin 'FEDERATED' is disabled.
130205 16:01:26 InnoDB: The InnoDB memory heap is disabled
130205 16:01:26 InnoDB: Mutexes and rw_locks use Windows interlocked functions
130205 16:01:26 InnoDB: Compressed tables use zlib 1.2.3
130205 16:01:26 InnoDB: Initializing buffer pool, size = 554.0M
130205 16:01:26 InnoDB: Completed initialization of buffer pool
130205 16:01:26 InnoDB: highest supported file format is Barracuda.
130205 16:01:26 InnoDB: Waiting for the background threads to start
130205 16:01:27 InnoDB: 1.1.8 started; log sequence number 1595675
130205 16:01:27 InnoDB: !!! innodb_force_recovery is set to 4 !!!
130205 16:01:28 [Note] Event Scheler: Loaded 0 events
130205 16:01:28 [Note] H:\MySQL Server\bin\mysqld: ready for connections.
Version: '5.5.22' socket: '' port: 3306 MySQL Community Server (GPL)
---------------------------------------------------------------------------------------------------

② mysql ibdata1删除了,怎么恢复数据

昨天,有个朋友对公司内部使用的一个MySQL实例开启binlog,但是在启动的过程中失败了(他也没提,为何会失败),在启动失败后,他删除了ibdata1和ib_logfile,后来,能正常启动了,但所有的表通过show tables能看到,但是select的过程中却报“Table doesn't exist”。
于是,建议他试试可传输表空间。
同时,自己也测试了下,确实可行。
测试版本 MySQL 5.6.32 社区版

恢复的基本步骤
1. 将原来的数据文件COPY到其它目录下。
2. 创建同名表,表结构必须保持一致。
3. 导出表空间
mysql> ALTER TABLE t DISCA

③ mysql8 ibdata文件丢失怎么恢复数据

因为磁盘空间不足,我的一个虚拟机服务器崩溃了。结果数据库服务器进程无法启动,数据也就无法导出。只能想办法从数据库原始文件 ibdata 和 frm 文件中恢复数据库。
因为没有经验,好不容易才找到了恢复方法。特此记录,以备后用。
磁盘空间不足之后,mysqld 进程无法启动,提示“Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)”。这真是让人无比头大,数据库根本连接不上。
目录 Contents
1. 保存原始数据库文件
2. 恢复方法
3. 参考资料:
1. 保存原始数据库文件¶
好在数据库原始文件还在。在我的系统环境和配置情况下,这些文件位于 /var/lib/mysql/ 文件夹下面。假设数据库名是 test,则这些文件表现为:
--mysql
|--test
|--1.frm
|--2.frm
|...
|--mysql
|...
|--ib_logfile0
|--ib_logfile1
|--ibdata1
|...
这些就是原始数据库文件,可以用来恢复数据库。将这些文件额外保存一份,以防万一。
2. 恢复方法¶
我的原始虚拟机完全没有磁盘空间而无法启动数据库服务器进程。虽然试着删除一些不需要的文件,但是数据库却始终无法连接。于是我新建了一个几乎一样的虚拟机(当然磁盘加大了),试图将这些数据库文件导入并恢复数据库。
在经历了很多错误之后,终于找到了正确的方法:
安装完成新服务器之后,通过命令行新建了与原来一样的数据库:数据库名称、用户名、密码都一样。如果有多个数据库需要恢复,就都给建好。(跟配置新服务器一样,参见安装和配置 MYSQL 数据库服务器。)
停止 mysqld 进程
service mysqld stop
将备份的原始数据库文件中的所有 .frm 文件(保持原来的目录结构)和 ibdata1 文件复制到新服务器的数据库文件目录中(如果新服务器操作系统和配置环境一样,那么目录结构也一样),其它文件不要。
使用 -innodb_force_recovery=6参数启动数据库服务器进程,这里是
/etc/init.d/mysqld start -defaults-file=/etc/my.cnf -standalone -console -innodb_force_recovery=6
OK,数据库恢复完成。

④ mysql ibdata1删除了,怎么恢复数据

在innodb的buffer
pool中,有许多dirty
page(就是内存中的数据已经被修改,但是没有写回文件中),
如果直接把文件复制回去,轻则数据丢失,重则ibdata1文件损坏。
备份mysql数据的时候,也不能直接备份这几个文件,是同样的道理。
我们必须保证所有buffer
pool中的数据修改都保存到了硬盘文件上面,
为此,首先要停止更多的写入/更新/删除操作,然后等待innodb
flush
pages
to
disk.
停止写入的话,可以把网站应用关闭,或lock
tables:

⑤ 怎么通过data来恢复mysql数据

可以尝试:
1、新建一个一样名字的数据库;
2、关掉mysql,把备份的data数据覆盖进现在mysql的data中
3、启动mysql进去看看

⑥ 如何通过mysql的data文件恢复数据库

mysql数据恢复过程
从另一台机上把mysql数据库的mysql文件夹拷贝到本地机上,目的是恢复本地机对数据的访问和操作。经过如下几种情况的操作。
1.
在本地重装mysql(安装目录d:\program
files\mysql\mysql
server
5.0),直接把mysql文件夹拷贝至d:\program
files\mysql\mysql
server
5.0\。结果,失败:数据库连接错误。
2.
卸载后重装mysql,将d:\program
files\mysql\mysql
server
5.0\下的数据备份,只把mysql\data文件夹全部内容拷贝到d:\program
files\mysql\mysql
server
5.0\data下。结果,失败:数据库连接错误。将备份的数据还完覆盖。结果,失败,还是连接不上数据库。
3.
卸载后重装mysql,将mysql\data文件夹里的cf1,last文件夹(这两个是原来mysql里的数据库)拷贝进d:\program
files\mysql\mysql
server
5.0\data。连接成功,在navicat
for
mysql里看到数据库cf1和last,但是不能访问,因为数据全为零。明白了原来data里以数据库命名的文件存储的是数据库的表结构,不是元数据。下一步,把data文件夹里的ibdata1文件(3.4g大,明显存储了元数据)拷贝到d:\program
files\mysql\mysql
server
5.0\data里,代替原来的ibdata1文件。重启电脑,打开navicat
for
mysql,连接成功,数据可以访问操作。
至此,操作终于成功。其实当初在那台机上把数据导出来,而不是现在直接把文件夹mysql复制过来会更容易恢复。但那台机已经重装了系统,也就是说mysql失效了。

⑦ 怎样恢复data目录中的mysql数据库

参考这篇文章

http://blog.163.com/kwzong@126/blog/static/4719260520086244915955/

大概意思就是 把数据库 kidd 和元数据 复制过去就ok了