免费注册 查看新帖 |

Chinaunix

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

【讨论中】mysql导入表时,表文件丢失问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-14 22:27 |只看该作者 |倒序浏览
本帖最后由 chinafenghao 于 2013-08-28 10:31 编辑

1.阿里云服务器提供20G 的 系统盘,320G的 数据盘。系统 是centos6.3
2.我重新格式了数据盘,分了150G给/var/lib/mysql,文件系统是ext4,然后迁移 数据库至该服务器。
3.数据库是myisam的,通过直接打包解压数据库。
4.服务器运行正常
5.应 开发的需求导入五个 表
6.导入后,发现表丢失。
7.迁移数据库回去原来的地方。将出问 题的服务器用来做 测试。
8.再一次用source导入五个表,重复执行十几次,第一次出现丢表情况,后来未出现过该问题。
9. 为了证明是否因为正式环境和数据写入的时候是否造成丢表情况,我同时执行source 5个表和执行bin_log日志,后数据正常,未丢表。
10.我查看原文件,发现丢表时,原57个表中,有8个表的frm、MYD、MYI均丢失了。另有39个表丢失了frm文件。
11.目前问题:找出关键所在,初步可以判断是数据损失。因为如果是删表操作的话,bin_log会有 记录,且该数据的丢表的frm、MYD、MYI应该 都被删除。
在出错的时候,错误日志提示了如下的 信息:
[ERROR] /usr/ local/mysql/libexec/mysqld: Table './game/login_message_2013Q3' is marked as crashed and should be repaired
初步判断:
可能1:导入数据库login_message_2013Q3出问题了,导致产生连锁反应,删除掉了其他的数据文件。
可能2:mysql设置的内存不足,导致导入五个表(2G内容时)时数据库崩溃了然后丢了表文件。。
求大神协助。
出错时 error如下。。
130812 17:51:15 mysqld_safe mysqld from pid file /var/lib/mysql/mysql.pid ended
130812 17:51:31 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
130812 17:51:31 [Note] Plugin 'FEDERATED' is disabled.
130812 17:51:31 [Note] Plugin 'ndbcluster' is disabled.
130812 17:51:31  InnoDB: Initializing buffer pool, size = 8.0M
130812 17:51:31  InnoDB: Completed initialization of buffer pool
130812 17:51:31  InnoDB: Started; log sequence number 0 44233
130812 17:51:31 [Warning] 'user' entry 'root @game ' ignored in --skip-name-resolve mode.
130812 17:51:31 [Warning] 'user' entry ' @game ' ignored in --skip-name-resolve mode.
130812 17:51:31 [Note] Event Scheduler: Loaded 0 events
130812 17:51:31 [Note] /usr/local/mysql/libexec/mysqld: ready for connections.
Version: '5.1.70-community-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution
130812 17:51:31 [Note] Event Scheduler: scheduler thread started with id 1
130812 18:35:04 [ERROR] /usr/local/mysql/libexec/mysqld: Table './game/login_message_2013Q3' is marked as crashed and should be repaired
130812 18:42:38 [Note] /usr/local/mysql/libexec/mysqld: Normal shutdown

130812 18:42:38 [Note] Event Scheduler: Killing the scheduler thread, thread id 1
130812 18:42:38 [Note] Event Scheduler: Waiting for the scheduler thread to reply
130812 18:42:38 [Note] Event Scheduler: Stopped
130812 18:42:38 [Note] Event Scheduler: Purging the queue. 4 events
130812 18:42:40  InnoDB: Starting shutdown...
130812 18:42:44  InnoDB: Shutdown completed; log sequence number 0 44243
130812 18:42:44 [Note] /usr/local/mysql/libexec/mysqld: Shutdown complete

论坛徽章:
1
巳蛇
日期:2014-08-21 15:09:09
2 [报告]
发表于 2013-08-15 16:36 |只看该作者
Table './game/login_message_2013Q3' is marked as crashed and should be repaired  的话  repair 一次就行,基本能修复成功。

论坛徽章:
0
3 [报告]
发表于 2013-08-15 22:03 |只看该作者
回复 2# pandorabag

丢失的仅仅是一个表,那还是好说的,但就像我上面说的,丢失了46个表
   

论坛徽章:
0
4 [报告]
发表于 2013-08-16 00:06 |只看该作者
回复 3# wenskys


    啊里云不太可能回档丢那么多数据吧,导入过程有出现什么报错吗?

论坛徽章:
0
5 [报告]
发表于 2013-08-17 00:59 |只看该作者
回复 4# 飞鸿无痕
就提示我上面说的那个咯。repair table xxx这样子。。。丢了几次,两次出现这种错误

   

论坛徽章:
8
CU大牛徽章
日期:2013-09-18 15:20:48CU大牛徽章
日期:2013-09-18 15:20:58CU大牛徽章
日期:2013-09-18 15:21:06CU大牛徽章
日期:2013-09-18 15:21:12CU大牛徽章
日期:2013-09-18 15:21:17天秤座
日期:2013-10-30 14:01:03摩羯座
日期:2013-11-29 18:02:31luobin
日期:2016-06-17 17:46:36
6 [报告]
发表于 2013-08-28 10:33 |只看该作者
@wenskys
亲,你用source的时候,新数据库里面是空的嘛,sql文件里面包含创建表和插入数据的sql ?
如果这样,还会丢失frm,myd 那真可能是存储系统有问题了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP