云计算项目六:升级网站运行平台|部署缓存服务|数据迁徙|部署集群 ...

打印 上一主题 下一主题

主题 900|帖子 900|积分 2700

升级网站运行平台
部署内存存储服务
部署pxc集群
解决数据库服务负载题目
解决调治器单点故障题目

案例1:升级网站运行平台

步骤一:清除当前配置

  1. # 停止网站
  2. [root@web33 ~]# /usr/local/tomcat/bin/shutdown.sh
  3. [root@web33 ~]# vim  /etc/rc.local
  4. #/usr/local/tomcat/bin/startup.sh
  5. # 卸载掉web服务器挂载
  6. umount /usr/local/tomcat/webapps/ROOT/
  7. vim /etc/fstab # 注销掉挂载
复制代码
步骤二:部署LNMP

  1. # 安装软件
  2. [root@web33 ~]# yum -y install gcc  zlib-devel  pcre-devel  //安装源码Nginx依赖软件
  3. [root@web33 ~]# tar -zxvf nginx-1.12.2.tar.gz //解压
  4. [root@web33 ~]# cd nginx-1.12.2  //进源码目录
  5. [root@web33 nginx-1.12.2]# ./configure  //配置
  6. [root@web33 nginx-1.12.2]# make  //编译
  7. ……
  8. ……
  9. sed -e "s|%%PREFIX%%|/usr/local/nginx|" \
  10.     -e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \
  11.     -e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \
  12.     -e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \
  13.     < man/nginx.8 > objs/nginx.8
  14. make[1]: 离开目录“/root/nginx-1.12.2”
  15. [root@web33 nginx-1.12.2]#
  16. [root@web33 nginx-1.12.2]# make install  //安装
  17. [root@web33 nginx-1.12.2]# ls /usr/local/nginx   //查看安装目录
  18. conf  html  logs  sbin
  19. [root@web33 ~]# yum  -y  install   php-fpm   //安装php-fpm 软件
  20. [root@web33 ~]# yum -y install  php  php-mysql  //安装php 及 php-mysql 软件
复制代码
挂载共享存储
  1. [root@web33 ~]# vim /etc/fstab   //开机挂载
  2. 192.168.4.30:/sitedir    /usr/local/nginx/html  nfs  defaults   0   0
  3. :wq
  4. [root@web33 ~]# mount   -a  //挂载设备
  5. [root@web33 ~]# mount |  grep  "/usr/local/nginx/html" //查看挂载
复制代码
启动服务
  1. [root@web33 ~]# vim +65 /usr/local/nginx/conf/nginx.conf  //修改主配置文件
  2. location ~ \.php$ {
  3.             root           html;
  4.             fastcgi_pass   127.0.0.1:9000;
  5.             fastcgi_index  index.php;
  6.            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  7.             include        fastcgi.conf;
  8.         }
  9. :wq
  10. [root@web33 ~]# /usr/local/nginx/sbin/nginx //启动服务
  11. [root@web33 ~]# netstat -utnlp  | grep :80   //查看端口
  12. tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      26335/nginx: master
  13. [root@web33 ~]# systemctl  start php-fpm
  14. [root@web33 ~]# netstat -utnlp  | grep :9000
  15. tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      26345/php-fpm: mast
复制代码
步骤三:测试配置

编写PHP脚本
  1. [root@nfs30 ~]# vim /sitedir/linkdb2.php  //在nfs30共享目录编写php脚本文件
  2. <?php
  3. $conn=mysql_connect("192.168.4.11","yaya99","123qqq...A");
  4. mysql_select_db("gamedb");
  5. $sql = 'insert into user (name) values ("PLJ")';
  6. mysql_query($sql);
  7. mysql_close();
  8. echo "save data ok";
  9. ?>
  10. :wq
复制代码
访问脚本
  1. [root@client50 ~]# curl  http://192.168.4.33/linkdb2.php //访问web33服务器
  2. save data ok
复制代码
查看数据
  1. [root@mysql11 ~]# mysql –uyaya99 -p123qqq...A -e 'select  * from gamedb.user where name="PLJ"' //在数据库服务器查看数据
  2. mysql: [Warning] Using a password on the command line interface can be insecure.
  3. +------+
  4. | name |
  5. +------+
  6. | PLJ  |
  7. +------+
复制代码
案例2:部署内存存储服务

Redis 主要负责做网站加速的
具体操作如下:


  • 部署redis服务器
  • 创建redis集群
  • 配置网站服务器
  • 测试配置

步骤一:部署redis服务器(6台都要配置)

搭建redis服务器
  1. [root@redisA ~]# rpm -q gcc  ||  yum -y  install gcc  //安装编译工具
  2. [root@redisA ~]# tar -zxvf redis-4.0.8.tar.gz //解压
  3. [root@redisA ~]# cd redis-4.0.8/   //进源码目录
  4. [root@redisA redis-4.0.8]# make install  //安装软件
  5. [root@redisA redis-4.0.8]# ./utils/install_server.sh //初始化配置
  6. [root@redisA redis-4.0.8]# /etc/init.d/redis_6379  stop  //停止服务
  7. Stopping ...
  8. Redis stopped
  9. [root@redisA redis-4.0.8]#
  10. [root@redisA redis-4.0.8]# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
  11. 70 bind 192.168.4.51
  12. 815 cluster-enabled yes
  13. 823 cluster-config-file nodes-6379.conf
  14. 829 cluster-node-timeout 5000
  15. :wq
  16. [root@redisA redis-4.0.8]# /etc/init.d/redis_6379  start  //启动服务
  17. Starting Redis server...
  18. [root@redisA redis-4.0.8]# netstat  -utnlp  | grep  redis-server  //查看端口
  19. tcp        0      0 192.168.4.51:6379       0.0.0.0:*               LISTEN      29720/redis-server   //redis服务端口
  20. tcp        0      0 192.168.4.51:16379      0.0.0.0:*               LISTEN      29720/redis-server  //集群端口
  21. # 6台主机都要如此操作
复制代码
步骤二:创建redis集群

配置管理主机
  1. [root@mgm ~]# yum -y  install ruby rubygems  //安装依赖
  2. [root@mgm ~]# gem install redis-3.2.1.gem  //安装依赖软件gem程序
  3. [root@mgm ~]# mkdir /root/bin
  4. [root@mgm ~]# tar -zxvf redis-4.0.8.tar.gz
  5. [root@mgm ~]# cp  redis-4.0.8/src/redis-trib.rb   /root/bin/  //拷贝脚本
  6. [root@mgm ~]# chmod  +x /root/bin/redis-trib.rb  //确保脚本有执行权限
  7. [root@mgm ~]# redis-trib.rb help  //查看帮助
  8. Usage: redis-trib <command> <options> <arguments ...>
复制代码
创建集群
  1. ]# redis-trib.rb  create  --replicas  1   \
  2. 192.168.4.51:6379    192.168.4.52:6379    192.168.4.53:6379  \  192.168.4.54:6379   192.168.4.55:6379     192.168.4.56:6379
  3. >>> Performing hash slots allocation on 6 nodes...
  4. Using 3 masters:
  5. 192.168.4.51:6379
  6. 192.168.4.52:6379
  7. 192.168.4.53:6379
  8. Adding replica 192.168.4.56:6379 to 192.168.4.51:6379
  9. Adding replica 192.168.4.55:6379 to 192.168.4.52:6379
  10. Adding replica 192.168.4.54:6379 to 192.168.4.53:6379
  11. M: d9f8fe6d6d9dd391be8e7904501db1535e4d17cb 192.168.4.51:6379
  12.    slots:0-5460 (5461 slots) master
  13. M: 324e05df3f143ef97e50d09be0328a695e655986 192.168.4.52:6379
  14.    slots:5461-10922 (5462 slots) master
  15. M: 9e44139cffb8ebd7ed746aabbf4bcea9bf207645 192.168.4.53:6379
  16.    slots:10923-16383 (5461 slots) master
  17. S: d9634ba0aa5c1a07193da4a013da6051c1515922 192.168.4.54:6379
  18.    replicates 9e44139cffb8ebd7ed746aabbf4bcea9bf207645
  19. S: 2d343a9df48f6f6e207949e980ef498466a44dad 192.168.4.56:6379
  20.    replicates d9f8fe6d6d9dd391be8e7904501db1535e4d17cb
  21. S: 894dd0008053f6fb65e9e4a36b755d9351607500 192.168.4.55:6379
  22.    replicates 324e05df3f143ef97e50d09be0328a695e655986
  23. Can I set the above configuration? (type 'yes' to accept): yes //同意以上配置
  24. >>> Nodes configuration updated
  25. >>> Assign a different config epoch to each node
  26. >>> Sending CLUSTER MEET messages to join the cluster
  27. Waiting for the cluster to join...
  28. >>> Performing Cluster Check (using node 192.168.4.51:6379)
  29. M: d9f8fe6d6d9dd391be8e7904501db1535e4d17cb 192.168.4.51:6379
  30.    slots:0-5460 (5461 slots) master
  31.    1 additional replica(s)
  32. S: d9634ba0aa5c1a07193da4a013da6051c1515922 192.168.4.54:6379
  33.    slots: (0 slots) slave
  34.    replicates 9e44139cffb8ebd7ed746aabbf4bcea9bf207645
  35. S: 894dd0008053f6fb65e9e4a36b755d9351607500 192.168.4.56:6379
  36.    slots: (0 slots) slave
  37.    replicates 324e05df3f143ef97e50d09be0328a695e655986
  38. M: 324e05df3f143ef97e50d09be0328a695e655986 192.168.4.52:6379
  39.    slots:5461-10922 (5462 slots) master
  40.    1 additional replica(s)
  41. M: 9e44139cffb8ebd7ed746aabbf4bcea9bf207645 192.168.4.53:6379
  42.    slots:10923-16383 (5461 slots) master
  43.    1 additional replica(s)
  44. S: 2d343a9df48f6f6e207949e980ef498466a44dad 192.168.4.57:6379
  45.    slots: (0 slots) slave
  46.    replicates d9f8fe6d6d9dd391be8e7904501db1535e4d17cb
  47. [OK] All nodes agree about slots configuration.
  48. >>> Check for open slots...
  49. >>> Check slots coverage...
  50. [OK] All 16384 slots covered.  //提示16384个槽分配完毕
复制代码
查看集群信息
  1. [root@mgm ~]# redis-trib.rb info 192.168.4.51:6379 //查看集群信息
  2. 192.168.4.51:6379 (d9f8fe6d...) -> 0 keys | 5461 slots | 1 slaves.
  3. 192.168.4.52:6379 (324e05df...) -> 0 keys | 5462 slots | 1 slaves.
  4. 192.168.4.53:6379 (9e44139c...) -> 0 keys | 5461 slots | 1 slaves.
  5. [OK] 0 keys in 3 masters.
  6. keys per slot on average
  7. [root@mgm ~]# redis-trib.rb check 192.168.4.51:6379 //检测集群
复制代码
测试配置(在客户端连接集群中的任意一台服务器存取数据)
  1. [root@client50 ~]# redis-cli  -c  -h 192.168.4.51 -p 6379 //连接服务器51
  2. 192.168.4.51:6379> set x 100  //存储
  3. -> Redirected to slot [16287] located at 192.168.4.53:6379  //提示存储在53主机
  4. OK
  5. 192.168.4.53:6379> set z 300 //存储
  6. -> Redirected to slot [8157] located at 192.168.4.52:6379 //提示存储在52主机
  7. 192.168.4.52:6379> keys *  //在52主机查看数据 只有变量z
  8. 1) "z"
  9. 192.168.4.52:6379> get x
  10. -> Redirected to slot [16287] located at 192.168.4.53:6379 //连接53主机获取数据
  11. "100"
复制代码
步骤三:配置网站服务器

  1. [root@web33 ~ ]# yum -y install php-devel  //安装依赖
  2. [root@web33 ~]# tar -zxvf redis-cluster-4.3.0.tgz  //解压
  3. [root@web33 ~]# cd redis-4.3.0/  //进入源码目录
  4. [root@web33 redis-4.3.0]# phpize  //创建configure命令及配置信息文件/usr/bin/php-config
  5. [root@web33 redis-4.3.0]# ./configure --with-php-config=/usr/bin/php-config
  6. ……
  7. ……
  8. configure: creating ./config.status
  9. config.status: creating config.h
  10. config.status: config.h is unchanged
  11. config.status: executing libtool commands
  12. [root@web33 redis-4.3.0]#
  13. [root@web33 redis-4.3.0]# make  //编译
  14. [root@web33 redis-4.3.0]# make install  //安装
  15. Installing shared extensions:     /usr/lib64/php/modules/   //提示模块安装目录
  16. [root@web33 redis-4.3.0]#
  17. [root@web33 redis-4.3.0]# ls /usr/lib64/php/modules/ //查看目录列表
  18. curl.so  fileinfo.so  json.so  mysqli.so  mysql.so  pdo_mysql.so  pdo.so  pdo_sqlite.so  phar.so  redis.so  sqlite3.so  zip.so
  19. [root@web33 redis-4.3.0]# vim /etc/php.ini
  20. 728 extension_dir = "/usr/lib64/php/modules/"   //模块目录
  21. 730 extension = "redis.so"   //模块名
  22. :wq
  23. [root@web33 redis-4.3.0]# systemctl  restart php-fpm  //重启php-fpm服务
  24. [root@web33 redis-4.3.0]# php -m   |  grep   -i  redis  //查看模块
  25. redis
复制代码
步骤四:测试配置

在存储服务器共享目次下,创建连接集群PHP脚本
  1. nfs30~ ]# vim  /sitedir/set_data.php    //存储数据脚本
  2. <?php
  3. $redis_list = ['192.168.4.51:6379','192.168.4.52:6379','192.168.4.53:6379','192.168.4.54:6379','192.168.4.55:6379','192.168.4.56:6379'];  //定义redis服务器列表
  4. $client = new RedisCluster(NUll,$redis_list); //定义连接redis服务器变量
  5. $client->set("i","tarenaA "); //存储数据 变量名 i
  6. $client->set("j","tarenaB ");  //存储数据 变量名 j
  7. $client->set("k","tarenaC ");  //存储数据 变量名 k
  8. ?>
  9. :wq
  10. nfs30~ ]# vim   /sitedir/get_data.php    //获取数据脚本
  11. <?php
  12. $redis_list = ['192.168.4.51:6379','192.168.4.52:6379','192.168.4.53:6379','192.168.4.54:6379','192.168.4.55:6379','192.168.4.56:6379']; //定义redis服务器列表
  13. $client = new RedisCluster(NUll,$redis_list); //定义连接redis服务器变量
  14. echo $client->get("i");  //获取变量i 的数据
  15. echo $client->get("j");  //获取变量j 的数据
  16. echo $client->get("k");  //获取变量k 的数据
  17. ?>
  18. :wq
  19. nfs30~ ]#  vim   /sitedir/test3.php    //存/取数据脚本
  20. <?php
  21. $redis_list = ['192.168.4.51:6379','192.168.4.52:6379','192.168.4.53:6379','192.168.4.54:6379','192.168.4.55:6379','192.168.4.56:6379'];
  22. $client = new RedisCluster(NUll,$redis_list);
  23. $client->set(“name“,”panglijing”);  //存数据
  24. echo $client->get(“name”);  //取数据
  25. ?>
  26. :wq
复制代码
访问网站实验脚本(在任意主机访问网站服务器都可以)
  1. ]# curl  http://192.168.4.33/set_data.php
  2. ]# curl  http://192.168.4.33/get_data.php
  3. ]# curl  http://192.168.4.33/test3.php
复制代码
案例3:数据迁徙

要求如下:


  • 配置从服务器
  • 配置第1台PXC服务器
  • 配置第2台PXC服务器
  • 配置第3台PXC服务器
  • 公共配置
  • 测试配置

步骤一:配置从服务器(把主机192.168.4.66 配置为192.168.4.11的从服务器)

在192.168.4.66主机安装数据库服务软件并启动mysqld服务
  1. [root@pxcnode66 ~]# tar -xvf mysql-5.7.17.tar  //解包
  2. [root@pxcnode66 ~]# ls *.rpm  //查看软件列表
  3. [root@pxcnode66 ~]# yum -y  install mysql-community-*.rpm  //安装软件
  4. [root@pxcnode66 ~]# systemctl start  mysqld  //启动服务
  5. [root@pxcnode66 ~]# ls /var/lib/mysql  //查看数据库文件列表
  6. auto.cnf    client-cert.pem  ibdata1      ibtmp1      mysql.sock.lock     public_key.pem   sys
  7. ca-key.pem  client-key.pem   ib_logfile0  mysql       performance_schema  server-cert.pem
  8. ca.pem      ib_buffer_pool   ib_logfile1  mysql.sock  private_key.pem     server-key.pem
  9. [root@pxcnode66 ~]# systemctl enable  mysqld  //设置服务开机运行
  10. [root@pxcnode66 ~]# grep password  /var/log/mysqld.log //查看初始密码
  11. 2019-07-05T01:56:51.895852Z 1 [Note] A temporary password is generated for root@localhost: bB0*uCmu:.Kj
  12. [root@pxcnode66 ~]# mysql -uroot -p'bB0*uCmu:.Kj'  //初始密码登录
  13. mysql> alter user root@"localhost" identified by "123qqq...A";//修改登录密码
  14. [root@pxcnode66 ~]# mysql -uroot -p123qqq...A  //新密码登录
  15. mysql> show  databases; //查看数据库
  16. +--------------------+
  17. | Database           |
  18. +--------------------+
  19. | information_schema |
  20. | mysql              |
  21. | performance_schema |
  22. | sys                |
  23. +--------------------+
  24. 4 rows in set (0.00 sec)
  25. [root@pxcnode66 ~]# vim /etc/my.cnf
  26. [mysqld]
  27. server_id=66  //指定server_id
  28. :wq
  29. [root@pxcnode66 ~]# systemctl  restart mysqld  //重启服务
复制代码
确保数据同等 (pxcnode66主机 使用mysql11主机的完全备份规复数据确保数据同等 )
  1. [root@mysql11 ~]# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm //安装依赖软件
  2. [root@mysql11 ~]# yum -y  install percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm //安装在线热备软件
  3. [root@mysql11 ~]# innobackupex  --user root --password 123qqq...A  --slave-info  /allbak --no-timestamp //备份所有数据,并记录备份数据对应的binlog日志名
  4. [root@mysql11 ~]# scp -r /allbak  root@192.168.4.66:/root/   //把备份文件发送给pxcnode66主机
  5. [root@pxcnode66 ~]# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm  //安装依赖软件
  6. [root@pxcnode66 ~]# yum -y install  percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm //安装在线热备软件
  7. [root@pxcnode66 ~]# systemctl  stop  mysqld //停止服务
  8. [root@pxcnode66 ~]# rm  -rf  /var/lib/mysql/*  //清空数据库目录
  9. [root@pxcnode66 ~]# innobackupex --apply-log /root/allbak/  //准备恢复数据
  10. [root@pxcnode66 ~]# innobackupex --copy-back /root/allbak/  //恢复数据
  11. [root@pxcnode66 ~]# chown -R mysql:mysql /var/lib/mysql //修改所有者
  12. [root@pxcnode66 ~]# systemctl start  mysqld  //启动服务
复制代码
指定主服务器
  1. [root@pxcnode66 ~]# cat /root/allbak/xtrabackup_info  | grep master11 //查binlog日志
  2. binlog_pos = filename 'master11.000001', position '7700'
  3. [root@pxcnode66 ~]# mysql -uroot -p123qqq...A  //管理员登录指定主服务器信息
  4. mysql> change master to  
  5. master_host="192.168.4.11", //主服务器ip地址
  6. master_user="repluser", //主服务器授权用户
  7. master_password="123qqq...A", //授权密码
  8. master_log_file="master11.000001",  //binlog日志名
  9. master_log_pos=7700; //日志偏移量
  10. Query OK, 0 rows affected, 2 warnings (0.31 sec)
  11. mysql> start slave ;  //启动slave 程序
  12. Query OK, 0 rows affected (0.09 sec)
  13. mysql> exit  //断开连接
  14. Bye
  15. [root@pxcnode66 ~]# mysql -uroot -p123qqq...A -e "show slave status\G" | grep -i 192.168.4.11  //查看主服务器地址
  16. mysql: [Warning] Using a password on the command line interface can be insecure.
  17.                   Master_Host: 192.168.4.11 //主服务器ip地址
  18. [root@pxcnode66 ~]# mysql -uroot -p123qqq...A -e "show slave status\G" | grep -i "yes" //查看状态信息
  19. mysql: [Warning] Using a password on the command line interface can be insecure.
  20.              Slave_IO_Running: Yes  //IO线程正常
  21.             Slave_SQL_Running: Yes  //SQL线程正常
复制代码
步骤二:配置第1台PXC服务器(192.168.4.66)

制止mysqld服务、卸载mysqld服务软件
  1. [root@pxcnode66 ~]# systemctl  stop mysqld  //停止服务
  2. [root@pxnode66 ~]# rpm -qa  | grep -i mysql   //查看安装的MySQL服务软件
  3. [root@pxcnode66 ~]# rpm -e --nodeps mysql-community-server mysql-community-embedded-compat mysql-community-common mysql-community-client mysql-community-devel \
复制代码
安装PXC软件、修改配置文件、启动mysql服务
  1. [root@pxcnode66 ~]# cd PXC  //进软件目录
  2. [root@pxcnode66 PXC]# rpm -ivh qpress-1.1-14.11.x86_64.rpm  //安装依赖
  3. 警告:qpress-1.1-14.11.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 6cb7b81f: NOKEY
  4. [root@pxcnode66 PXC]# tar -xvf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar  //解压PXC软件包
  5. [root@pxcnode66 PXC]# yum -y  install Percona-XtraDB-Cluster-*.rpm //安装软件
  6. [root@pxcnode66 PXC]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf //修改数据库服务配置文件
  7. [mysqld]
  8. server-id=66 //指定server_id
  9. [root@pxcnode66 PXC]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf //修改集群服务配置文件
  10. wsrep_cluster_address=gcomm://       不需要写ip地址 因为目前没有集群
  11. wsrep_node_address=192.168.4.66   //指定本机Ip地址
  12. wsrep_cluster_name=pxc-cluster  //指定集群名称(另外2台的集群名称要于此相同)
  13. wsrep_node_name=pxcnode66  //指定本机主机名
  14. wsrep_sst_auth="sstuser:123qqq...A" //数据全量同步授权用户及密码
  15. :wq
  16. [root@pxcnode66 PXC]# systemctl  start mysql  //启动服务
  17. [root@pxcnode66 PXC]# netstat -utnlp  | grep  :3306 //查看MySQL服务端口
  18. tcp6       0      0 :::3306                 :::*                    LISTEN      24482/mysqld        
  19. [root@pxcnode66 PXC]# netstat -utnlp  | grep  :4567  //查看集群通信端口
  20. tcp        0      0 0.0.0.0:4567            0.0.0.0:*               LISTEN      24472/mysqld        
  21. [root@pxcnode66 PXC]# systemctl  enable mysql  //设置服务开机运行
复制代码
数据库管理员登录、用户授权、查看状态信息
  1. [root@pxcnode66 PXC]# mysql -uroot -p123qqq...A //管理员登录
  2. mysql> grant all on *.* to sstuser@"localhost" identified by "123qqq...A"; //用户授权
  3. Query OK, 0 rows affected, 1 warning (0.10 sec)
  4. mysql> show status like "%wsrep%"; //查看集群状态信息
  5. | wsrep_incoming_addresses         | 192.168.4.66:3306                    |
  6. | wsrep_cluster_weight             | 1                                    |
  7. | wsrep_desync_count               | 0                                    |
  8. | wsrep_evs_delayed                |                                      |
  9. | wsrep_evs_evict_list             |                                      |
  10. | wsrep_evs_repl_latency           | 0/0/0/0/0                            |
  11. | wsrep_evs_state                  | OPERATIONAL                          |
  12. | wsrep_gcomm_uuid                 | 73809cc5-cf00-11e9-aac3-b223959fecdf |
  13. | wsrep_cluster_conf_id            | 1                                    |
  14. | wsrep_cluster_size               | 1                                    |
  15. | wsrep_cluster_state_uuid         | 73848b1a-cf00-11e9-9058-36c1ac1e1359 |
  16. | wsrep_cluster_status             | Primary                              |
  17. | wsrep_connected                  | ON                                   |
  18. | wsrep_local_bf_aborts            | 0                                    |
  19. | wsrep_local_index                | 0                                    |
  20. | wsrep_provider_name              | Galera                               |
  21. | wsrep_provider_vendor            | Codership Oy <info@codership.com>    |
  22. | wsrep_provider_version           | 3.35(rddf9876)                       |
  23. | wsrep_ready                      | ON                                   |
  24. +----------------------------------+--------------------------------------+
  25. 71 rows in set (0.00 sec)
  26. mysql> exit ;
  27. [root@pxcnode66 ~]# mysql -uroot -p123qqq...A -e "show slave status\G" | grep -i "yes" //查看状态信息依然是192.168.4.11的从服务器
  28. mysql: [Warning] Using a password on the command line interface can be insecure.
  29.              Slave_IO_Running: Yes  //IO线程正常
  30.             Slave_SQL_Running: Yes  //SQL线程正常
复制代码
步骤三:配置第2台PXC服务器(192.168.4.10)

安装PXC软件
  1. [root@pxcnode10 ~]# cd PXC  //进软件目录
  2. [root@pxcnode10 PXC]# rpm -ivh qpress-1.1-14.11.x86_64.rpm  //安装依赖
  3. 警告:qpress-1.1-14.11.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 6cb7b81f: NOKEY
  4. [root@pxcnode10 PXC]# tar -xvf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar  //解压PXC软件包
  5. [root@pxcnode10 PXC]# yum -y  install Percona-XtraDB-Cluster-*.rpm //安装软件
复制代码
修改配置文件
  1. [root@pxcnode10 PXC]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf //修改数据库服务配置
  2. [mysqld]
  3. server-id=10 //指定server_id
  4. :wq
  5. [root@pxcnode10 PXC]#
  6. [root@pxcnode10 PXC]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf //修改集群服务配置文件
  7. wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.10       //集群成员列表
  8. wsrep_node_address=192.168.4.10   //指定本机Ip地址
  9. wsrep_cluster_name=pxc-cluster  //指定集群名称(另外2台的集群名称要于此相同)
  10. wsrep_node_name=pxcnode10  //指定本机主机名
  11. wsrep_sst_auth="sstuser:123qqq...A" //数据全量同步授权用户及密码
  12. :wq
复制代码
启动mysql服务
  1. [root@pxcnode10 PXC]# systemctl  start mysql  //启动服务
  2. [root@pxcnode10 PXC]# systemctl  enable mysql  //服务开机运行
  3. [root@pxcnode10 PXC]# netstat -utnlp  | grep  :3306 //查看MySQL服务端口
  4. tcp6       0      0 :::3306                 :::*                    LISTEN      24482/mysqld  
  5. [root@pxcnode10 PXC]# netstat -utnlp  | grep  :4567 //查看集群端口
  6. tcp6       0      0 :::4567                 :::*                    LISTEN      24489/mysqld
  7. mysql> show status like "%wsrep%"; //查看集群状态信息
  8. | wsrep_incoming_addresses         | 192.168.4.66:3306,192.168.4.10:3306|
  9. | wsrep_cluster_weight             | 1                                    |
  10. | wsrep_desync_count               | 0                                    |
  11. | wsrep_evs_delayed                |                                      |
  12. | wsrep_evs_evict_list             |                                      |
  13. | wsrep_evs_repl_latency           | 0/0/0/0/0                            |
  14. | wsrep_evs_state                  | OPERATIONAL                          |
  15. | wsrep_gcomm_uuid                 | 73809cc5-cf00-11e9-aac3-b223959fecdf |
  16. | wsrep_cluster_conf_id            | 1                                    |
  17. | wsrep_cluster_size               | 1                                    |
  18. | wsrep_cluster_state_uuid         | 73848b1a-cf00-11e9-9058-36c1ac1e1359 |
  19. | wsrep_cluster_status             | Primary                              |
  20. | wsrep_connected                  | ON                                   |
  21. | wsrep_local_bf_aborts            | 0                                    |
  22. | wsrep_local_index                | 0                                    |
  23. | wsrep_provider_name              | Galera                               |
  24. | wsrep_provider_vendor            | Codership Oy <info@codership.com>    |
  25. | wsrep_provider_version           | 3.35(rddf9876)                       |
  26. | wsrep_ready                      | ON                                   |
  27. +----------------------------------+--------------------------------------+
  28. 71 rows in set (0.00 sec)
  29. mysql> exit ;
复制代码
步骤四:配置第3台PXC服务器(192.168.4.88)

  1. [root@pxcnode88 ~]# cd PXC  //进软件目录
  2. [root@pxcnode88 PXC]# rpm -ivh qpress-1.1-14.11.x86_64.rpm  //安装依赖
  3. 警告:qpress-1.1-14.11.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 6cb7b81f: NOKEY
  4. 准备中...                          ################################# [100%]
  5. 正在升级/安装...
  6.    1:qpress-1.1-14.11                 ################################# [100%]
  7. [root@pxcnode88 PXC]#
  8. [root@pxcnode88 PXC]# tar -xvf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar  //解压PXC软件包
  9. [root@pxcnode88 PXC]# yum -y  install Percona-XtraDB-Cluster-*.rpm //安装软件
  10. [root@pxcnode88 PXC]# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf //修改数据库服务配置
  11. [mysqld]
  12. server-id=88 //指定server_id
  13. :wq
  14. [root@pxcnode88 PXC]#
  15. [root@pxcnode88 PXC]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf //修改集群服务配置文件
  16. wsrep_cluster_address=gcomm://192.168.4.66       //集群成员ip地址
  17. wsrep_node_address=192.168.4.88   //指定本机Ip地址
  18. wsrep_cluster_name=pxc-cluster  //指定集群名称(另外2台的集群名称要于此相同)
  19. wsrep_node_name=pxcnode88  //指定本机主机名
  20. wsrep_sst_auth="sstuser:123qqq...A" //数据全量同步授权用户及密码
  21. :wq
  22. [root@pxcnode88 PXC]#
  23. [root@pxcnode88 PXC]# systemctl  start mysql  //启动服务
  24. [root@pxcnode88 PXC]# systemctl  enable mysql  //服务开机运行
  25. [root@pxcnode88 PXC]# netstat -utnlp  | grep  :3306 //查看MySQL服务端口
  26. tcp6       0      0 :::3306                 :::*                    LISTEN      24472/mysqld  
  27. [root@pxcnode88 PXC]# netstat -utnlp  | grep  :4567 //查看集群端口
  28. tcp6       0      0 :::4567                 :::*                    LISTEN      24486/mysqld
复制代码
步骤五:公共配置(192.168.4.88、192.168.4.10、192.168.4.66)

  1. 修改192.168.4.88主机的集群配置文件
  2. [root@pxcnode88 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf  
  3. wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.10,192.168.4.88 //指定集群成员列表
  4. :wq
  5. 修改192.168.4.10主机的集群配置文件
  6. [root@pxcnode10 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf  
  7. wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.88,192.168.4.10 //指定集群成员列表
  8. :wq
  9. 修改192.168.4.66主机的集群配置文件
  10. [root@pxcnode66 ~]# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf  
  11. wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.88,192.168.4.10 //指定集群成员列表
  12. :wq
复制代码
案例4:部署LB集群

配置步骤如下:


  • 安装软件
  • 修改配置文件
  • 启动服务
  • 测试配置
    拓扑结构如图-3所示。创建1台新的假造机,配置ip地点 eth0 192.168.4.99 主机名 haproxy99 ;运行haproxy服务 接受客户端访问数据库的连接请求,把请求平均分发给3台PXC集群主机。

步骤一:安装软件: 在haproxy99主机上安装haproxy软件

  1. [root@haproxy99 ~]# yum -y install haproxy
复制代码
步骤二:修改配置文件

  1. [root@haproxy99 ~]# vim  /etc/haproxy/haproxy.cfg
  2. Global   //全局配置默认即可
  3.     log         127.0.0.1 local2
  4.     chroot      /var/lib/haproxy
  5.     pidfile     /var/run/haproxy.pid
  6.     maxconn     4000
  7.     user        haproxy
  8.     group       haproxy
  9.     daemon
  10.     stats socket /var/lib/haproxy/stats
  11. defaults //默认配置(不需要修改)
  12.     mode                    http
  13.     log                     global
  14.     option                  httplog
  15.     option                  dontlognull
  16.     option http-server-close
  17.     option forwardfor       except 127.0.0.0/8
  18.     option                  redispatch
  19.     retries                 3
  20.     timeout http-request    10s
  21.     timeout queue           1m
  22.     timeout connect         10s
  23.     timeout client          1m
  24.     timeout server          1m
  25.     timeout http-keep-alive 10s
  26.     timeout check           10s
  27.     maxconn                 3000
  28. listen status  //定义监控页面
  29.         mode http   //模式为http
  30.         bind *:80   //端口80
  31.         stats enable //启用配置
  32.         stats uri /admin  //访问目录名
  33.         stats auth admin:admin  //登录用户与密码
  34. listen mysql_3306 *:3306 //定义haproxy服务名称与端口号
  35.     mode    tcp        //mysql服务 得使用 tcp 协议
  36.     option  tcpka      //使用长连接  不需要每输入一个指令 就连接一次
  37.     balance roundrobin //调度算法
  38.     server  mysql_01 192.168.4.66:3306 check  //第1台数据库服务器
  39.     server  mysql_02 192.168.4.10:3306 check  //第2台数据库服务器
  40.     server  mysql_03 192.168.4.88:3306 check  //第3台数据库服务器
  41. :wq
复制代码
步骤三:启动服务

  1. [root@haproxy99 ~]# systemctl  start haproxy //启动服务
  2. [root@haproxy99 ~]# systemctl  enable haproxy  //开机运行
  3. Created symlink from /etc/systemd/system/multi-user.target.wants/haproxy.service to /usr/lib/systemd/system/haproxy.service.
  4. [root@haproxy99 ~]# netstat -utnlp  | grep  :3306  //查看端口
  5. tcp6       0      0 :::3306                 :::*                    LISTEN      29768/haproxy     
复制代码
步骤四:测试配置:在网站服务器连接haproxy99主机访问数据

  1. [root@web33 ~]# mysql –h192.168.4.99 –uyaya99 –p123qqq…A -e  'select @@hostname'
  2. mysql: [Warning] Using a password on the command line interface can be insecure.
  3. +------------+
  4. | @@hostname |
  5. +------------+
  6. | pxcnode66  |   //第1次连接
  7. +------------+
  8. [root@web33 ~]#
  9. [root@web33 ~]# mysql –h192.168.4.99 –uyaya99 –p123qqq…A -e  'select @@hostname'
  10. mysql: [Warning] Using a password on the command line interface can be insecure.
  11. +------------+
  12. | @@hostname |
  13. +------------+
  14. | pxcnode10  |   //第2次连接
  15. +------------+
  16. [root@web33 ~]#
  17. [root@web33 ~]# mysql –h192.168.4.99 –uyaya99 –p123qqq…A -e  'select @@hostname'
  18. mysql: [Warning] Using a password on the command line interface can be insecure.
  19. +------------+
  20. | @@hostname |
  21. +------------+
  22. | pxcnode88  |   //第3次连接
  23. +------------+
复制代码
案例5:部署HA集群


步骤一:预备备用调治器主机

  1. [root@haproxy98 ~]# yum -y  install haproxy
  2. # 修改haproxy98主机haproxy.conf文件(直接拷贝haproxy99主机的配置文件也可以)
  3. [root@haproxy98 ~]# scp  root@192.168.4.99:/etc/haproxy/haproxy.cfg /etc/haproxy/
  4. Warning: Permanently added '192.168.4.99' (ECDSA) to the list of known hosts.
  5. root@192.168.4.99's password: //输入haproxy99主机的密码
  6. haproxy.cfg      
  7. # 启动haproxy服务
  8. [root@haproxy98 ~]# systemctl  start  haproxy  //启动服务
  9. [root@haproxy98 ~]# systemctl  enable  haproxy  //服务开机运行
  10. Created symlink from /etc/systemd/system/multi-user.target.wants/haproxy.service to /usr/lib/systemd/system/haproxy.service.
  11. [root@haproxy98 ~]# netstat -utnlp  | grep  :3306  //查看端口
  12. tcp6       0      0 :::3306                 :::*                    LISTEN      29768/haproxy                                                
复制代码
步骤二:安装软件

在haproxy99主机安装keepalived软件
在haproxy98主机安装keepalived软件
  1. [root@haproxy99 ~]# yum -y  install keepalived.x86_64
  2. [root@haproxy98 ~]# yum -y  install keepalived.x86_64
复制代码
步骤三:修改配置文件

修改haproxy99主机的配置文件
  1. [root@haproxy99 ~]#vim  /etc/keepalived/keepalived.conf
  2. global_defs {
  3. ……
  4. ……
  5. vrrp_iptables   //禁止iptables
  6. }
  7. vrrp_instance VI_1 {
  8.     state MASTER   //主服务器标识
  9.     interface eth0
  10.     virtual_router_id 51
  11.     priority 150      //haproxy99 主机做主服务器,优先级要比 haproxy88主机高
  12.     advert_int 1
  13.     authentication {
  14.         auth_type PASS  //主备服务器连接方式
  15.         auth_pass 1111   //连接密码
  16.     }
  17.     virtual_ipaddress {
  18.         192.168.4.100   //定义vip地址
  19.     }
  20. }
  21. [root@haproxy99 ~]# scp  /etc/keepalived/keepalived.conf  root@192.168.4.98: /etc/keepalived/
  22. root@192.168.4.98's password:  //输入haproxy98主机的密码
复制代码
修改haproxy98主机的配置文件
  1. [root@haproxy98 ~]#vim  /etc/keepalived/keepalived.conf
  2. global_defs {
  3. ……
  4. ……
  5. vrrp_iptables   //禁止iptables
  6. }
  7. vrrp_instance VI_1 {
  8.     state BACKUP   //备用服务器标识
  9.     interface eth0
  10.     virtual_router_id 51
  11.     priority 100      //优先级要比 haproxy99低
  12.     advert_int 1
  13.     authentication {
  14.         auth_type PASS
  15.         auth_pass 1111
  16.     }
  17.     virtual_ipaddress {
  18.         192.168.4.100   //定义vip地址
  19.     }
  20. }
复制代码
步骤四:启动服务

  1. # 在haproxy99主机启动keepalived服务
  2. [root@haproxy99 ~]# systemctl  start keepalived.service //启动服务
  3. [root@haproxy99 ~]#
  4. [root@haproxy99 ~]# ip addr show | grep   192.168.4.100  //查看vip地址
  5.     inet 192.168.4.100/32 scope global eth0
  6. # 在haproxy98主机启动keepalived服务
  7. [root@haproxy98 ~]# systemctl  start keepalived.service //启动服务
  8. [root@haproxy98 ~]#
  9. [root@haproxy98 ~]# ip addr show  | grep   192.168.4.100 //查看不到vip
复制代码
步骤五:测试配置

  1. # 客户端连接vip地址,访问数据库服务
  2. [root@web33 ~]# mysql -h192.168.4.100 –uyaya99 –p123qqq…A -e 'select @@hostname'
复制代码
测试高可用
  1. [root@haproxy99 ~]# ip addr  show  | grep 192.168.4.100  //在haproxy99 主机查看VIP地址
  2.     inet 192.168.4.100/32 scope global eth0
  3. [root@haproxy99 ~]# systemctl  stop keepalived.service //停止keepalived服务
  4. [root@haproxy99 ~]# ip addr  show  | grep 192.168.4.100  //查看不到vip地址
  5. [root@haproxy98 ~]# ip addr show  | grep  192.168.4.100 //在备用的haproxy98主机查看地址
  6.     inet 192.168.4.100/32 scope global eth0
  7. //客户端连接vip地址访问数据库服务
  8. [root@web33 ~]# mysql -h192.168.4.100 –uyaya99 –p123qqq…A -e 'select @@hostname'
  9. mysql: [Warning] Using a password on the command line interface can be insecure.
  10. +------------+
  11. | @@hostname |
  12. +------------+
  13. | pxcnode66  |
  14. +------------+
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

北冰洋以北

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表