一、关闭前端各服务
1、北京代理,韩国代理节点nginx/etc/init.d/nginx stop2、关闭WEB1,WEB2 NGINX和PHPpkill nginx && pkill php-fpm确认ps xua|egrep 'nginx|php-fpm' |grep -v grep二、nginx升级
1、配置nginx官方源[root@web1 ~]# vim /etc/yum.repos.d/nginx.repo [nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=0enabled=12、web1升级nginx
原来的源码编译的nginx/0.8.38 太老,模块也没有,放弃[root@web1 ~]# yum -y install nginx3、配置文件复制进新的nginx配置文件目录
[root@web1 ~]# cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf_bak[root@web1 ~]# cp /etc/nginx/conf.d/default.conf /etc/nginx/default.conf_bak[root@web1 ~]# cp /usr/local/nginx/conf/vhosts/* /etc/nginx/conf.d/[root@web1 ~]# cp /usr/local/nginx/conf/nginx.conf /etc/nginx/nginx.conf 全局修改部分[root@web1 ~]# vim /etc/nginx/nginx.conf #include vhosts/*; include conf.d/*;4、打开nginx status[root@web1 ~]# vim /etc/nginx/conf.d/default.conf location /NginxStatus { stub_status on; access_log off; allow 1.1.1.1; allow 2.2.2.2; deny all; }[root@web1 ~]# nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful5、设置开机启动
rc.local删除sed -i /nginx/d /etc/rc.local [root@web1 ~]# chkconfig nginx on6、需求变化
需求临时变化ticket站点不停解决办法include conf.d/*;修改为include conf.d/*.conf;要开发的ticket配置文件修改为.conf结尾nginx.conf文件中只留需要的ticket站点配置,gm配置拿掉kill掉老的nginx后立即开启新的nginx 三、mongodb同步ssh 10.56.135.116ssh 10.56.135.1171、备份mongodbmongodump -h 127.0.0.1:27017 -d ticketproxy -o /store/backup/mongo注意mongodump后会引起php-fpm卡死,这也是做主从的原因。物理备份未做,因为ticket服务不能停[root@db1 ~]# /etc/init.d/mongod stop[root@db1 ~]#cp -a /var/lib/mongo/ /var/lib/mongo_bak/2、主配置文件
[root@db1 ~]# cp /etc/mongod.conf ./[root@db1 ~]# vim mongod.conf master = true[root@db1 ~]# /etc/init.d/mongod restart3、从配置文件
[root@db2 ~]# /etc/init.d/mongod stop[root@db2 ~]# rm -rf /var/lib/mongo/*[root@db2 ~]# vim /etc/mongod.conf slave = truesource = 10.56.135.117:27017【使用插入的方式未成功】db.sources.insert({ "host" : "127.0.0.1:27017"})4、启动检查
[root@db2 ~]# /etc/init.d/mongod start查看日志,看到是否同步主从确认是否一样> db.tickets.count()91139四、MYSQL准备工作
1、主mysql授权从服务器访问GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO root@10.56.135.117 IDENTIFIED BY 'password';2、关闭DB1 DB2
/etc/init.d/mysql stop备份从服mv /usr/local/server/data /usr/local/server/data_20130618_bak3、从DB1拷贝全新数据到DB2
DB1的大小[root@db1 ~]# du -sk /usr/local/server/data7132856 /usr/local/server/data[root@db1 ~]#scp -r /usr/local/server/data root@10.56.135.117:/usr/local/server/防止 拷贝时候断开 这个放在后台执行# jobs[1]+ Running scp -r /usr/local/server/data root@10.56.135.117:/data/ &DB2的大小[root@db2 ~]# du -sk /usr/local/server/data7132856 /usr/local/server/data修改权限chown -R mysql.mysql /usr/local/server/data五、MYSQL同步
1、修改主服配置文件 注意:配置文件中不要出现与主机名相关的数据mv /usr/local/server/my.cnf /etc/my.cnfvim /etc/my.cnfbinlog-do-db=db1binlog-do-db=db2binlog-do-db=db3binlog-do-db=db42、启动主mysql3、启动从mysql4、同步Position 查看主服务器Positionmysql> show master status;+------------------+----------+-----------------------------------------------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+-----------------------------------------------------+------------------+| mysql-bin.000005 | 2908 | db1,db2,db3,db3 | |+------------------+----------+-----------------------------------------------------+------------------+多看几次状态,确定Position没有变化,放置有一些后台程序在修改数据。第一次就是因为crontab里任务没关闭,导致Position变化从服务器设置主服务器信息,同步账号和Positionmysql> CHANGE MASTER TO MASTER_HOST='10.56.135.116', MASTER_USER='root',MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=2908;5、启动slave功能
mysql> start slave; mysql> show slave status\G;查看是否正常6、测试
在主服务器,选择一个库表,插入一条数据,看从服务器是否有,有则成功。六、碰到的问题总结
1、需求临时变化,ticket站点不停解决办法include conf.d/*;修改为include conf.d/*.conf;要开放的ticket配置文件修改为.conf结尾nginx.conf文件中只留需要的ticket站点配置,gm配置拿掉2、mongdb同步
> use local> db.sources.insert({ "host" : "10.56.135.116:27017"})没有成功原因未知:后来在配置文件中配置成功3、网站访问慢
打开网站页面很慢,chrome F12 NETWORK查看要10s改变点nginx 升级mysql主从mongodb主从查询的站点涉及到数据库首先排查nginxnginx访问静态html页面很快访问不查询mysql的数据库的php页面 phpinfo访问速度也很快问题是前端WEB1到后端DB1上面mysql client 连接速度很慢ssh 连接 建立起连接前也很慢telnet 22/3306端口速度快在维护前ssh也比较慢,应该不是网络问题查看DB1 mysql错误日志很多报错could not be resolved: Temporary failure in name resolution解决办法:节点添加下面两行[mysqld]skip-host-cacheskip-name-resolve 4、mysqld pid删除后脚本无法停止获取mysqld的pid写入文件echo $(ps xua|grep mysqld |grep -vE 'grep|mysqld_safe' |awk '{print $2}') >/usr/local/server/data/db2.pidchown mysql.mysql /usr/local/server/data/db2.pid