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

4707阅读 2评论2012-11-27 飞鸿无痕
分类:Mysql/postgreSQL

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

由于网站访问量不大,公司原来的数据库和网页程序放在同一台服务器上,随着服务器的网站推广的强度增大,网站的访问量也快速增长。因此昨天晚上将数据库迁移到单独的服务器上,并将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,工作中还是需要细心细心再细心,多检查,养成细心的好习惯,避免类似低级错误出现。

上一篇:awk中调用shell的自定义函数
下一篇:不想做操作工就把你的心静下来

文章评论