GMT-CMSP系統維護步驟整理

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

相關文章
相關標籤/搜索