Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7179191
  • 博文数量: 368
  • 博客积分: 9600
  • 博客等级: 上校
  • 技术积分: 18875
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-01 00:00
文章分类

全部博文(368)

文章存档

2017年(9)

2016年(19)

2015年(3)

2014年(6)

2013年(8)

2012年(78)

2011年(66)

2010年(135)

2009年(44)

分类: Mysql/postgreSQL

2012-11-27 10:08:30

关于数据迁移的一次小故障

由于网站访问量不大,公司原来的数据库和网页程序放在同一台服务器上,随着服务器的网站推广的强度增大,网站的访问量也快速增长。因此昨天晚上将数据库迁移到单独的服务器上,并将mysql 5.1.50的版本升级到mysql 5.5.18

采用的是先搭建mysql 5.5,然后从5.1.50上同步数据,再将网页的数据库配置更改到新的服务器上。这个过程本身没有任何问题,切换后一切正常。第二天,有人反映一个地方搜索出不来数据。抓取那个页面的SQL一分析,发现那个表上采用的全文索引来搜索数据,把该SQL拿到旧的服务器上执行可以出来数据。因此推测是全文索引的配置参数ft_min_word_len不一致导致,为了验证个问题分别在新的数据库服务器和旧的服务器上执行SHOW VARIABLES LIKE 'ft_min_word_len',发现旧的服务器该参数为1,新的为4。而用户查询的索引字为2个字符,因此查询不到。一查看配置文件,发现新的服务器忘记配置该参数了。太大意了。

知道问题了,就该想办法修复了,有一点需要注意,更改了ft_min_word_len参数以后需要重建全文索引,修复步骤如下:

1、备份my.cnf配置文件

2、更改my.cnf配置文件,添加如下配置

ft_min_word_len = 1

3、重启mysql

4、登录mysql执行如下操作(需要找出所有含有全文索引的表)

USE `phpcmsv9` ;

REPAIR TABLE  `v9_search`  QUICK;

REPAIR TABLE  `v9_search_keyword`  QUICK;

然后执行全文搜索,OK了!

 

总结:这个故障是由于配置mysql配置文件的时候不小心造成该配置项的遗漏造成的,作为DBA,工作中还是需要细心细心再细心,多检查,养成细心的好习惯,避免类似低级错误出现。

阅读(4287) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

飞鸿无痕2012-11-29 10:42:57

bun: 我认为,作为DBA,除非必要,或者是新项目,没有必要变更数据库版本。

版本越高,不代表越好。.....
是的,我很赞同你的观点。我们这边刚好遇到多机房切换,切换后不需要停机,刚好将现有低版本的数据库升级了,因为5.5已经很稳定且性能也很不错。我们在线下测试了很久了。

bun2012-11-28 23:47:22

我认为,作为DBA,除非必要,或者是新项目,没有必要变更数据库版本。

版本越高,不代表越好。