免费注册 查看新帖 |

Chinaunix

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

MySQL恢复数据为什么这么慢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-29 14:32 |只看该作者 |倒序浏览
一个Innodb类型的数据库,使用mysqldump备份,参数如下:
mysqldump --user=mysql --result-file=$dumpedFile --add-drop-table --single-transaction --hex-blob --opt $databaseID

备份后的数据文件大小大约17MB,使用mysql还原
mysql --user=mysql -e 'create database IF NOT EXISTS $databaseID DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_unicode_ci'
mysql $databaseID --user=mysql < $dumpedFile

用了3个多小时。。。请问下各位,为什么mysql恢复数据会这么慢?

[ 本帖最后由 Bob.Wang 于 2009-10-29 14:33 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-10-29 14:46 |只看该作者
可以试着把Dump出来的文件和数据库Datadir放置在不同的磁盘,如果IO慢的情况可以禁掉Binlog。

论坛徽章:
0
3 [报告]
发表于 2009-10-29 14:52 |只看该作者

回复 #2 Coolriver 的帖子

备份的数据肯定和数据库数据不在一个物理盘上,binlog和数据库数据在一个盘上。另外,我们的恢复基本算是online得,貌似不太方便禁用binlog,555。。。另外,不是说禁用binlog也就只能提升1%么?

[ 本帖最后由 Bob.Wang 于 2009-10-29 14:55 编辑 ]

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
4 [报告]
发表于 2009-10-29 15:45 |只看该作者
你的innodb的参数配置贴一下?
试试禁止auto_commit,--no-autocommit  ?
再试试dump出来的时候按key排序,--order-by-primary?

论坛徽章:
0
5 [报告]
发表于 2009-10-29 16:13 |只看该作者

回复 #4 cenalulu 的帖子

在.my.cnf里面,就只有innodb_file_per_table是enable的,其他的都是disable的。我试试你的方法去,谢谢先!!

论坛徽章:
0
6 [报告]
发表于 2009-10-29 16:22 |只看该作者
17M,3个小时,可能是导出来的文件有问题吧
你是在windows还是linux下

[ 本帖最后由 voxxu 于 2009-10-29 16:23 编辑 ]

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
7 [报告]
发表于 2009-10-29 16:27 |只看该作者
原帖由 Bob.Wang 于 2009-10-29 16:13 发表
在.my.cnf里面,就只有innodb_file_per_table是enable的,其他的都是disable的。我试试你的方法去,谢谢先!!


那么这写参数呢?
innodb_buffer_pool_size
innodb_log_buffer_size
innodb_data_file_path
innodb_flush_log_at_trx_commit

都要合理设置,不然慢就是正常现象。。。

论坛徽章:
0
8 [报告]
发表于 2009-10-29 22:39 |只看该作者
17MB 3小时太夸张了吧

论坛徽章:
0
9 [报告]
发表于 2009-10-30 13:04 |只看该作者
还是没什么改善

参数现在如下:
innodb_buffer_pool_size = 1300M
innodb_additional_mem_pool_size = 20M
#innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 0
innodb_lock_wait_timeout = 100

由于之前的innodb_log_file_size使用的默认值,现在不好修改了,就只能继续用原来的值.我的机器配置为:
SUNW,Netra-240,  4G内存,   Solaris 10,   
MySQL版本: mysql-enterprise-5.0.54a-solaris9-sparc-64bit

论坛徽章:
0
10 [报告]
发表于 2009-10-30 13:31 |只看该作者
原帖由 Bob.Wang 于 2009-10-30 13:04 发表
还是没什么改善

参数现在如下:
innodb_buffer_pool_size = 1300M
innodb_additional_mem_pool_size = 20M
#innodb_log_file_size = 64M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_ ...



为什么log大小不能改了?

看机器的配置应该不是生产环境吧?
你提供的情况不是很清楚。create库时,你的库存在否?回复时,提供processlist信息,和innodb status信息。

另外使用企业版不是应该有service吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP