用阿里云的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
推荐回答:
C,再执行:service mysqld restart; 重启mysql,命令即可生效 本地添加这个账号 ,可以不用重启mysql就可以生效了。
这篇文章很赞啊。
你本地的mysql内存配置的是多大,这个不能超过vm的内存;
还有一种可能就是mysql使用的是myisam存储引擎,这个存储引擎会消耗大量的os内存,可以转换为innodb引擎。
官方帮助文档地址:阿里云帮助中心
更多参考: 阿里云官方(新用户需官网注册查看)
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。