萌百的运维日常
8月15日三次元的事情终于告一段落,开始回家有时间折腾萌百。发现可喜可贺的实时在线破千,日独立访客10万,PV400万。同时负载也涨得无法直视~_~是时候做一下分离了。预计半小时的活,花费4个小时……
23日晚上11点进行数据库搬迁,手贱下错MySQL版本于是编译大约耗掉1小时。
站长要求不停机搬迁,于是我作作死直接搬线上数据库文件。(全站已经锁写,好孩子不要学!)我的生产环境基本上都是MyISAM,以前经常搬没出过岔子,但是现在第一个问题来了,启动报数据库没有正常退出写PID文件。MySQL就是喜欢误导人,读错误日志得知问题在InnoDB引擎。
翻各种资料得知InnoDB的ibdata1只能在停机状态搬迁,没停机就不能动它。那挨个文件夹复制可以吧?也不行...InnoDB表空间全部存这文件里,不过去就丢失表。只好试试导出SQL文件了。
=3=开始尝试导出SQL,没什么问题,导入问题又来了。先是导入一半MySQL会中断连接,然后报环境变量错误无法导入。郁了个闷的T_T
以前也这样做过没问题,所以第一反应是oom,滚去看messages没报oom,重试导入盯着top,进程并没有退出,也没oom迹象。先后尝试单库搬迁、完整搬迁都存在这问题,并且问题就在中文萌百,英文、日文和其它没问题。搜索半天无解,遂放弃。
此时已经3点多了,人不多,申请停机搬迁整个数据库文件,几分钟完成_(:з」∠)_
你以为到这就结束了?往下拉的孩纸能得到干货!
在出错的时候,我把具体报错信息发给Hostker运维求助。在搬完数据库之后得到正解。
默认InnoDB单条SQL最大限制是4M,中文萌百有超过,导致客户端连接中断。MySQL客户端有自动重连机制自动连上继续导入,此时丢失了SQL文件头部的环境变量,报环境变量错误中断导入。正确修改my.cnf可解决。
MySQL的错误就是误导人!_(:з」∠)_嗯最近熬夜有点多,好像连着一周熬到3点后,太作死了...
小新菊苣好腻害~(´∀`*)
_(:з」∠)_菊苣就不用折腾这么久了
菊苣!
超級大菊苣
超級大菊苣!
You need Docker→_→
用Docker也一样啦,是因为数据库有超过4M的SQL语句存在导致导入失败的,以前没有所以一直没发现
大触就是大触。
圍觀菊苣!
路过围观菊苣!
围观菊苣!
萌百の4M单挑SQL
– -是妹子么是妹子么是妹子么是妹子么!
性别不重要~
萌百挂了
没有啊