1、关闭前端各服务
一、北京代理,韩国代理节点nginx
/etc/init.d/nginx stop
二、关闭WEB1,WEB2 NGINX和PHP
pkill nginx && pkill php-fpm
确认
ps xua|egrep 'nginx|php-fpm' |grep -v grepphp
2、nginx升级
一、配置nginx官方源
[root@web1 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1html
二、web1升级nginx
原来的源码编译的nginx/0.8.38 太老,模块也没有,放弃
[root@web1 ~]# yum -y install nginx前端
三、配置文件复制进新的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/*;
四、打开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 -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulmysql
五、设置开机启动
rc.local删除
sed -i /nginx/d /etc/rc.local
[root@web1 ~]# chkconfig nginx onnginx
六、需求变化
需求临时变化ticket站点不停
解决办法
include conf.d/*;
修改成include conf.d/*.conf;
要开发的ticket配置文件修改成.conf结尾
nginx.conf文件中只留须要的ticket站点配置,gm配置拿掉
kill掉老的nginx后当即开启新的nginxweb
3、mongodb同步
ssh 10.56.135.116
ssh 10.56.135.117
一、备份mongodb
mongodump -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/sql
二、主配置文件
[root@db1 ~]# cp /etc/mongod.conf ./
[root@db1 ~]# vim mongod.conf
master = true
[root@db1 ~]# /etc/init.d/mongod restartmongodb
三、从配置文件
[root@db2 ~]# /etc/init.d/mongod stop
[root@db2 ~]# rm -rf /var/lib/mongo/*
[root@db2 ~]# vim /etc/mongod.conf
slave = true
source = 10.56.135.117:27017
【使用插入的方式未成功】
db.sources.insert({ "host" : "127.0.0.1:27017"})chrome
四、启动检查
[root@db2 ~]# /etc/init.d/mongod start
查看日志,看到是否同步
主从确认是否同样
> db.tickets.count()
91139数据库
4、MYSQL准备工做
一、主mysql受权从服务器访问
GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO root@10.56.135.117 IDENTIFIED BY 'password';
二、关闭DB1 DB2
/etc/init.d/mysql stop
备份从服
mv /usr/local/server/data /usr/local/server/data_20130618_bak
三、从DB1拷贝全新数据到DB2
DB1的大小
[root@db1 ~]# du -sk /usr/local/server/data
7132856 /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/data
7132856 /usr/local/server/data
修改权限
chown -R mysql.mysql /usr/local/server/data
5、MYSQL同步
一、修改主服配置文件
注意:配置文件中不要出现与主机名相关的数据
mv /usr/local/server/my.cnf /etc/my.cnf
vim /etc/my.cnf
binlog-do-db=db1
binlog-do-db=db2
binlog-do-db=db3
binlog-do-db=db4
二、启动主mysql
三、启动从mysql
四、同步Position
查看主服务器Position
mysql> show master status;
+------------------+----------+-----------------------------------------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+-----------------------------------------------------+------------------+
| mysql-bin.000005 | 2908 | db1,db2,db3,db3 | |
+------------------+----------+-----------------------------------------------------+------------------+
多看几回状态,肯定Position没有变化,放置有一些后台程序在修改数据。
第一次就是由于crontab里任务没关闭,致使Position变化
从服务器设置主服务器信息,同步帐号和Position
mysql> 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;
五、启动slave功能
mysql> start slave;
mysql> show slave status\G;
查看是否正常
六、测试
在主服务器,选择一个库表,插入一条数据,看从服务器是否有,有则成功。
6、碰到的问题总结
一、需求临时变化,ticket站点不停
解决办法
include conf.d/*;
修改成include conf.d/*.conf;
要开放的ticket配置文件修改成.conf结尾
nginx.conf文件中只留须要的ticket站点配置,gm配置拿掉
二、mongdb同步
> use local
> db.sources.insert({ "host" : "10.56.135.116:27017"})
没有成功
缘由未知:
后来在配置文件中配置成功
三、网站访问慢
打开网站页面很慢,chrome F12 NETWORK查看要10s
改变点
nginx 升级
mysql主从
mongodb主从
查询的站点涉及到数据库
首先排查nginx
nginx访问静态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-cache
skip-name-resolve
四、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