zoukankan      html  css  js  c++  java
  • GMT-CMSP系统维护步骤整理

    一、关闭前端各服务
    1、北京代理,韩国代理节点nginx
    /etc/init.d/nginx stop
    2、关闭WEB1,WEB2 NGINX和PHP
    pkill 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 repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=0
    enabled=1

    2、web1升级nginx
    原来的源码编译的nginx/0.8.38 太老,模块也没有,放弃
    [root@web1 ~]# yum -y install nginx

    3、配置文件复制进新的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 -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful

    5、设置开机启动
    rc.local删除
    sed -i /nginx/d /etc/rc.local
    [root@web1 ~]# chkconfig nginx on

    6、需求变化
    需求临时变化ticket站点不停
    解决办法
    include conf.d/*;
    修改为include conf.d/*.conf;
    要开发的ticket配置文件修改为.conf结尾
    nginx.conf文件中只留需要的ticket站点配置,gm配置拿掉
    kill掉老的nginx后立即开启新的nginx


    三、mongodb同步
    ssh 10.56.135.116
    ssh 10.56.135.117
    1、备份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/

    2、主配置文件
    [root@db1 ~]# cp /etc/mongod.conf ./
    [root@db1 ~]# vim mongod.conf
    master = true
    [root@db1 ~]# /etc/init.d/mongod restart

    3、从配置文件
    [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"})

    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_bak

    3、从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

    五、MYSQL同步
    1、修改主服配置文件
    注意:配置文件中不要出现与主机名相关的数据
    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
    2、启动主mysql
    3、启动从mysql
    4、同步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;

    5、启动slave功能
    mysql> start slave;
    mysql> show slave statusG;
    查看是否正常

    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主从
    查询的站点涉及到数据库
    首先排查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


    4、mysqld pid删除后脚本无法停止
    获取mysqld的pid写入文件
    echo $(ps xua|grep mysqld |grep -vE 'grep|mysqld_safe' |awk '{print $2}') >/usr/local/server/data/db2.pid
    chown mysql.mysql /usr/local/server/data/db2.pid

  • 相关阅读:
    【PS】Colorful and flowing word tutorials 彩色流光字教程
    【Language】Popular Javascript Convention on Github
    java 题目
    swift 构造过程
    swift 继承相关
    swift 方法功能
    javascript闭包
    IOS swift学习地址
    guava 工具包
    数字和大写字母字符串
  • 原文地址:https://www.cnblogs.com/diege/p/3144138.html
Copyright © 2011-2022 走看看