免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7666 | 回复: 21
打印 上一主题 下一主题

想要备份ibdata1这个文件夹时,不小心把它复制成一个简单的文件了。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-05 17:27 |只看该作者 |倒序浏览
大家好,

正在管理的Centreon/Nagios 网页管理界面突然down掉了,

上网一查好像是Mysql把硬盘吃光了,所以跑不动了。

于是自己跑去想要清理一下,查到/var/lib/mysql/ibdata1这个文件高达37G, /var/lib/mysql/centstorage有54G,

太naive 地想要把 /var/lib/mysql/ibdata1转移到另外一个稍空一点的盘,用cp 的时候结果没有指明它是个文件夹,结果复制到新的盘是以 一个二进制文件存在的,但是已经把原来的/var/lib/mysql/ibdata1 rm 掉,又新建了一个空的同名文件夹,这样是不是是说明已经丢失所有数据文件了啊? (理论上应该用dump,我太傻了)

虽然网上有方法恢复http://www.linuxidc.com/Linux/2012-09/71432.htm 但是我尝试这么做的时候,/var/lib/mysql/ 总是说容量不够了,说 92G/92G全部用完了,但明明我把那个37G删掉了,现在只是想恢复过去,就显示装不下了。

期间不敢停掉mysql,不敢停掉Centreon/Nagios,也不确定少了这个文件,他们还正常工作不,所以不确定有没有成功停止写入,如果真的丢失了这个/var/lib/mysql/ibdata1文件夹,意味着什么,整个mysql要重装?mysql重装跟原来的Nagios/Centreon有关系吗?

谢谢大神打救!!

论坛徽章:
0
2 [报告]
发表于 2014-06-09 13:15 |只看该作者
数据库不能关,你删除了37G的ibdata1,但是因为MYSQL没有关,文件实际上还是存在的 并没有释放空间
另外,ibdata1,它就是个二进制文件
停止业务写入,但不要关mysql,这个时候应该还可以使用mysqldump把表数据导出来的
你要是机器空间不足,可以使用其他机器远程dump数据。

论坛徽章:
0
3 [报告]
发表于 2014-06-09 19:42 |只看该作者
回复 2# 逸馆小菜鸟


    嗯呐,数据库没有关,一旦我在/var/lib/mysql里还有ibdata1这个名字的文件,它就好像还会写入东西。

    但是如何在保证数据库运作的情况下,停止业务写入呢??其实说数据库不能关是因为关掉就彻底删除了那个二进制文件了是吗?但其实我删除ibdata1之前倒是把它拷贝到另外一个盘了,可以把这个备份的复制过来么?只是现在盘还是显示满的,复制不进去。。

    关于mysqldump你有更详细的做法吗?  目前我/var/lib/mysql里面的东西包括
   
   


   我不太明白, centreon、centstorage、ibdata1、mysql 和 ndo  都是存放数据的地方吗?

   网上介绍dump 要 dump 掉除 mysql 外的所有表是什么意思呢?



终于有人理我了,泪流满面!灰常感谢!

论坛徽章:
0
4 [报告]
发表于 2014-06-10 01:38 |只看该作者
关闭数据库,数据文件就真的删除了。
ibdata1这个文件,是不能直接复制出来的,达不到备份目的,除非是使用的innobackupex这样的程序进行热备。
你现在还可以在这个机器上登陆mysql吧~~~
有没有其他服务器,在其他机器上远程备份数据吧
        mysqldump -uroot -p密码 -hip地址 -P端口  -A -F>filename.sql
        备份需要账号,密码,ip地址,端口,-A是备份所有库,-F是刷新日志,可不做。这个在另一台机器上操作,需要在那个数据库机器上登陆mysql创建一个账号来备份,简单的建账号命令如下
        grant all privileges on *.* to root@ip identified by 'password';
         需要账号名,ip地址,和密码
        
网上介绍dump 要 dump 掉除 mysql 外的所有表。这是谁说你,你全导出来也没关系的。

另外,你数据库是否有做日常的完全备份?是否开启binlog日志?

论坛徽章:
0
5 [报告]
发表于 2014-06-10 15:30 |只看该作者
非常感谢您详细的解决方案,但是还存在一些问题。

linux服务器倒是一直处于开启状态,只要我没输入关闭数据库的命令,它应该就没有关闭的吧?

这台linux服务器据我所知是唯一一台linux设备了,如果需要另一台机器,windows的话,两者能沟通吗?我最多只能在windows机上装一个linux桌面版。。。

然后,我刚接手这个机子不久,不清楚数据库有无日常的完全备份和开启binlog日志,有什么命令能看出来吗?

然后您提到的账户密码都是指的在新机器上创建的账号吧,无需知道现在这台的登陆账号和密码吧???

哦,还有为什么直接复制不行呀? ibdata1 原来好像是个文件夹,它底下有个名叫 3 的二进制文件,虽然我不小心把文件夹复制成文件了,但对比了一下二进制的内容好像保持了呀。。。。

小菜鸟问题比较多,但是很幸运碰到您这样对问题特别理解和在行的人呐,再次谢谢!

论坛徽章:
0
6 [报告]
发表于 2014-06-10 21:59 |只看该作者
如果你在windows机器上,可以连接那个linux机器的数据库的话,也可以直接dump出来~~~
像navicat等windows下的数据库图形工具,都能备份数据的。

你不关数据库,它就还在。

日常备份这个你要问交接的人,binlog日志的话登陆数据库执行show master logs或者show global variables like '%log_bin%'看log_bin是否为ON。

我说的账号密码,是让你在linux机器上的数据库,为远程机器创建一个账号以便在其他机器登陆linux的数据库,如果你本来就可以在其他机器登陆linux上的数据库的话就不需要创建了。

复制过程需要一些时间,所以这期间如果数据文件有改动,那么将会使数据库处于一个不同的时间点。

我挺好奇你说的把文件夹复制成了文件,我就没试成功过。。。

论坛徽章:
0
7 [报告]
发表于 2014-06-11 17:49 |只看该作者
不对,后来发现ibdata1好像就是个简单的文件。。。

目前又bug了,数据库老师说 连接数过多, 我登不上去 给远程的机子 创建账户上面的。。。

如今距离我移除这个文件已经过去了整整一周,不知道恢复了以后还能正常么= =!!

恢复以后还得把整套数据库搬到新装的 Fully Automatic Nagios上><  

论坛徽章:
0
8 [报告]
发表于 2014-06-11 23:25 |只看该作者
贴出错误提示等信息
连接数过多,使用root账号是可以登陆的唉。MySQL留了一个连接给root登陆。

你要是有任意一个账号可以查看到数据库你需要的内容,就可以备份出来的。

论坛徽章:
0
9 [报告]
发表于 2014-06-11 23:45 |只看该作者
回复  逸馆小菜鸟

错误:
8#

    恩 我也看到会留一个连接给管理者这个说法了,但好像mysqladmin也不好用= =

mysqladmin -uroot -p processlist


同样提示:

mysqladmin: connect to server at 'localhost' failed
error: 'Too many connections'


晚安~

toomanyconnetion.png (191.83 KB, 下载次数: 303)

toomanyconnetion.png

论坛徽章:
0
10 [报告]
发表于 2014-06-12 23:06 |只看该作者
你用mysql这个命令登陆的时候,系统账号是普通账号吧?而且,数据库账号没密码的吧?你用mysql -uroot来登陆

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP