昨天晚上帮acgn.moe搬迁了服务器至国内阿里云。真是蠢死我了。
我是简单粗暴的迁移党,直接锁死数据库($wgReadOnly)然后
cd htdocs zip -r 233.zip *
打包了所有文件直接下载。
阿里云连接linode的速度只有20kb/s……蛋疼,本机中转一下,临时提了阿里云的带宽,云服务就是方便……移动大法好,下载Linode可以达到5M/s
linode那边我是用phpmyadmin导出了数据库,阿里云这边没装,而且数据库也挺大了,就用命令行导入了数据库
mysql -u root -p >>输入密码 use wiki source ~/wiki.sql
哗啦啦一大片然后就好了。
解压文件,删除临时文件,配置rewrite,更改DNS,上线CDN,完成!
不过昨天到今天发现mysql崩溃了好多次,查了下日志:
150131 12:38:38 InnoDB: Fatal error: cannot allocate memory for the buffer pool 150131 12:38:38 [ERROR] Plugin 'InnoDB' init function returned error. 150131 12:38:38 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 150131 12:38:38 [ERROR] Unknown/unsupported storage engine: InnoDB 150131 12:38:38 [ERROR] Aborting
……无法分配内存是什么鬼。
先配置了swap,然后看了下my.cnf,发现innodb 相关的都没开?
innodb_buffer_pool_size = 128M innodb_additional_mem_pool_size = 4M innodb_log_file_size = 128M innodb_log_files_in_group = 2 innodb_log_buffer_size = 2M innodb_flush_log_at_trx_commit = 1
根据实际内存设置了一下(不如上),然后service mysqld restart,结果又报错了
150131 13:14:09 InnoDB: Initializing buffer pool, size = 64.0M 150131 13:14:09 InnoDB: Completed initialization of buffer pool InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes InnoDB: than specified in the .cnf file 0 16777216 bytes! 150131 13:14:09 [ERROR] Plugin 'InnoDB' init function returned error.
原来是log文件大小重新设置后的原因,删掉了mysql/data目录下的ib_logfile0,重启,完毕。
=================================
2015年3月29日更新
其实,问题根本不是这个。
问题的关键在于阿里云的ECS的硬盘的IO实在太垃圾了。
在内存转储的时候直接IO就卡死导致内存爆掉。
给我们带来的血的教训是,千万不要在ECS上自己搭建数据库服务,宁可加钱上RDS。
启用RDS一个月以来,基本没有出现过类似的问题。
顺便一提,感觉阿里云的CDN计费有点奇怪,明明每个月都可以用掉大概好几个G的流量,账单出来却只有几分钱。
兔兔兔兔兔兔,下面是菊苣们的吐槽时间~
前排围观
别闹啦…服务器还是天天崩溃orz
(╯‵□′)╯︵┻━┻
~(≧▽≦)/~
网站不错,雁过留痕,欢迎互访!