用阿里云的ECS一年时间,随着网站访问量的上升,不断出现“OOM"问题,就是服务器CPU一冲就是百分百,然后网站就打不开了。以前的解决方法就是耗费几分钟重启服务器。
中间也提交了不少工单去协助解决这个问题,httpd的进程访问也修改了几次,最后的结果还是不行。
后来我升级了ECS的内存,持续了几天,又不断出现OOM问题。索性今天买了一个RDS,想把MYSQL独立出来,试试能否解决OOM问题。
第一步:购买RDS,在这里有个问题需要提前说明:【ECS上的自建数据库】功能,仅支持将杭州、青岛的ECS迁入至杭州、青岛的RDS;其他情形请使用【有公网IP的自建数据库】功能。
上面这句粗体的说明文件请看清楚,根据自己购买的ECS节点选择RDS节点,在迁入数据库的时候会比较方便。
第二步,打开RDS控制台,具体的教程请看这里:数据迁移至RDS-MySQL之利用RDS管理控制台
按照上述教程一步一步操作基本不会出现什么问题,我只是说一下我在实际操作过程中碰到的几个细节点。
【A】、在xshell里面登录mysql的时候,一直登录不成功,不知道为什么。我的mysql是用phpmyadmin管理的,一直到我重新修改了root密码,才成功登录。
【B】、要迁移数据库,首先要在RDS里面新建同名数据库,再开始迁移才可以。
【C】、在迁移命令的第一步,新建一个权限用户,建议不要用原始的数据库用户,最好新建一个,并且按教程给它权限。当然除了给教程里说的权限外,还要给账号其它权限,也是在后面迁移检查的时候会有提示,可以顺便一起执行(下面这个命令执行即可)
GRANT SELECT, SUPER, REPLICATION SLAVE, REPLICATION CLIENT, SHOW VIEW ON ON *.* TO 'username'@'%'; (把斜体部分改为你新建的用户名即可)
Flush Privileges;
再执行:service mysqld restart; 重启mysql,命令即可生效。
【D】、在上述“数据迁移至RDS-MySQL之利用RDS管理控制台”教程里的第三步找到my.cnf文件时,需要用到vim命令去编辑,然后保存退出,用":wq!"命令。my.cnf文件的路径是在根目录的/etc文件夹下面。
在my.cnf文件里实际的命令是:binlog_format,而不是如图所示的 log_format,估计是阿里云教程早期版本的也没更新。
【E】、在上述“数据迁移至RDS-MySQL之利用RDS管理控制台”教程里的第四步检查ROW权限的命令,在我这里无论如何也执行不成功,但是不影响迁移,只要保证前面三步的命令执行成功即可。
【F】、在按步骤迁移成功之后,去RDS控制中心左侧的“帐号管理“处新建一个数据库用户即可。建议:和你原来数据库用户名和密码保持一致,这样就可以只修改数据库连接地址就可以了。
【G】、最后再去web程序的数据库连接处,把localhost修改为RDS的数据库连接地址即可,如下图右侧红框处所示,不建议用RDS的IP地址,因为有可能会变化。
按照上述步骤,RDS的迁移就算是完成了。对我这种Linux小白来说,可能一些命令的执行不是特别熟悉,不过利用好百度和阿里云教程,是可以轻松解决问题的。
至于改为RDS后,能否解决OOM的问题,还要拭目以待了。
That' all.
原文地址:http://www.zhugetu.com/records-about-the-migration-process-of-applications-for-rds.html