免费注册 查看新帖 |

Chinaunix

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

关于mysql数据库表中的部分数据导出备份,再导入恢复的问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-26 11:46 |只看该作者 |倒序浏览
20可用积分
很抱歉,首先声明一下:我对mysql不太熟,哈

有这样一个需求,就是按条件备份数据库中的一段数据,然后需要的时候,再把这段数据恢复到原先数据库的表中。
我使用mysqldump这样操作
mysqldump -uroot -p123456  --no-create-db=TRUE --no-create-info=TRUE --add-drop-table=FALSE --default-character-set="gbk" --where="record_time>='2009-03-2' and record_time<='2009-03-27'" db  tbname  


这样导出来的数据只有一天的,没有范围。。。。奇怪了。谁来帮个忙。
--
-- WHERE:  record_time>='2009-03-2' and record_time<='2009-03-27'

LOCK TABLES `FDATE` WRITE;
/*!40000 ALTER TABLE `FDATE` DISABLE KEYS */;
INSERT INTO `FDATE` VALUES (776,'192.168.129.100.1235463300','и·??',3232268644,5400634,40724777,'2009-03-02'),(777,'192.168.129.102.1235464542','и·??',3232268646,7938883,13408769,'2009-03-02'),(778,'192.168.129.106.1235464990','?μ2?',3232268650,10697673,57677222,'2009-03-02'),(779,'192.168.129.11.1235415928','???,3232268555,124572671,18044122,'2009-03-02'),(780,'192.168.129.114.1235463112','??2?',3232268658,12877348,52062543,'2009-03-02'),(781,'192.168.129.117.1235464474','339j?',3232268661,39351109,52637658,'2009-03-02'),(782,'192.168.129.118.1235464309','339j?',3232268662,11848125,46596663,'2009-03-02'),(783,'192.168.129.12.1235463757','???,3232268556,146963219,32832934,'2009-03-02'),(784,'192.168.129.121.1235464640','?a·¢?
/*!40000 ALTER TABLE `FDATE` ENABLE KEYS */;

或者有什么别的好的方法,能达要求就可以。
1、导出
2、再导入

最佳答案

查看完整内容

· 当在从表中选择数据之时,你得到如下错误:· Incorrect key file for table: '...'. Try to repair it· 查询不能在表中找到行或返回不完全的数据。你可以用CHECK TABLE statement语句来检查MyISAM表的健康,并用REPAIR TABLE修复一个 损坏的MyISAM表。当mysqld不运行之时,你也可以用myisamchk命令检查或修理一个表。请参阅13.5.2.3节,"CHECK TABLE语法", 13.5.2.6节,"REPAIR TABLE语法", ...

论坛徽章:
0
2 [报告]
发表于 2009-03-26 11:46 |只看该作者
原帖由 我是DBA 于 2009-3-26 11:55 发表
ERROR 126 (HY000) at line 1: Incorrect key file for table './wkbdb/FDATE.MYI'; try to repair it

这个报错是什么问题?
做数据删除的时候

·         当在从表中选择数据之时,你得到如下错误:

·                Incorrect key file for table: '...'. Try to repair it

·         查询不能在表中找到行或返回不完全的数据。

你可以用CHECK TABLE statement语句来检查MyISAM表的健康,并用REPAIR TABLE修复一个 损坏的MyISAM表。当mysqld不运行之时,你也可以用myisamchk命令检查或修理一个表。请参阅13.5.2.3节,"CHECK TABLE语法", 13.5.2.6节,"REPAIR TABLE语法",和5.9.5节,"myisamchk — MyISAM表维护工具"。

如果你的表变得频繁损坏,你应该试着确定为什么会这样的原因。要明白的最重要的事是表变得损坏是不是因为服务器崩溃的结果。你可以在错误日志中查找最近的restarted mysqld消息来早期验证这个。如果存在这样一个消息,则表损坏是服务器死掉的一个结果是很有可能的。否则,损坏可能在正常操作中发生。这是一个缺陷。你应该试着创建一个展示这个问题的可重复生成的测试案例。请参阅A.4.2节,"如果MySQL保持崩溃,该怎么做" 及E.1.6节,"如果出现表崩溃,请生成测试案例"。

http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html

论坛徽章:
0
3 [报告]
发表于 2009-03-26 11:49 |只看该作者
我找到原因了。。。。。
谁有更好的办法也给分。就等着给大家分了。

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
4 [报告]
发表于 2009-03-26 11:50 |只看该作者
这里没看明白。
"这样导出来的数据只有一天的,没有范围。。。。奇怪了"啥意思?

这样只能说是备份了,恢复前需要手工删除,或是结合shell,。。。dump前记录条件,恢复前先删除这些数据。

论坛徽章:
0
5 [报告]
发表于 2009-03-26 11:55 |只看该作者

回复 #3 枫影谁用了 的帖子

我知道是备份了,但是备份数据不全,就是说没备份完整

论坛徽章:
0
6 [报告]
发表于 2009-03-26 11:55 |只看该作者
ERROR 126 (HY000) at line 1: Incorrect key file for table './wkbdb/FDATE.MYI'; try to repair it

这个报错是什么问题?
做数据删除的时候

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
7 [报告]
发表于 2009-03-26 11:59 |只看该作者
check table a;

如果上面有error..

repair table a

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
8 [报告]
发表于 2009-03-26 12:00 |只看该作者
是isam吧,用myisamchk 也应该可以,空间够吧。

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
9 [报告]
发表于 2009-03-26 12:06 |只看该作者
原帖由 我是DBA 于 2009-3-26 11:49 发表
我找到原因了。。。。。
谁有更好的办法也给分。就等着给大家分了。

原因是什么?不要说看错了^_^
分给其它回复者吧

bin-log也是一个方法。

论坛徽章:
0
10 [报告]
发表于 2009-03-26 13:38 |只看该作者

回复 #8 枫影谁用了 的帖子

不是,不能设置GBK,设置后数据导不出来。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP