云计算项目六:升级网站运行平台|部署缓存服务|数据迁徙|部署集群
升级网站运行平台部署内存存储服务
部署pxc集群
解决数据库服务负载题目
解决调治器单点故障题目
https://i-blog.csdnimg.cn/blog_migrate/c5a0e35e8dac190df778cfdbf7205c8b.png#pic_center
案例1:升级网站运行平台
步骤一:清除当前配置
# 停止网站
# /usr/local/tomcat/bin/shutdown.sh
# vim/etc/rc.local
#/usr/local/tomcat/bin/startup.sh
# 卸载掉web服务器挂载
umount /usr/local/tomcat/webapps/ROOT/
vim /etc/fstab # 注销掉挂载
步骤二:部署LNMP
# 安装软件
# yum -y install gcczlib-develpcre-devel//安装源码Nginx依赖软件
# tar -zxvf nginx-1.12.2.tar.gz //解压
# cd nginx-1.12.2//进源码目录
# ./configure//配置
# make//编译
……
……
sed -e "s|%%PREFIX%%|/usr/local/nginx|" \
-e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \
-e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \
-e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \
< man/nginx.8 > objs/nginx.8
make: 离开目录“/root/nginx-1.12.2”
#
# make install//安装
# ls /usr/local/nginx //查看安装目录
confhtmllogssbin
# yum-yinstall php-fpm //安装php-fpm 软件
# yum -y installphpphp-mysql//安装php 及 php-mysql 软件
挂载共享存储
# vim /etc/fstab //开机挂载
192.168.4.30:/sitedir /usr/local/nginx/htmlnfsdefaults 0 0
:wq
# mount -a//挂载设备
# mount |grep"/usr/local/nginx/html" //查看挂载
启动服务
# vim +65 /usr/local/nginx/conf/nginx.conf//修改主配置文件
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
#fastcgi_paramSCRIPT_FILENAME/scripts$fastcgi_script_name;
include fastcgi.conf;
}
:wq
# /usr/local/nginx/sbin/nginx //启动服务
# netstat -utnlp| grep :80 //查看端口
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 26335/nginx: master
# systemctlstart php-fpm
# netstat -utnlp| grep :9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 26345/php-fpm: mast
步骤三:测试配置
编写PHP脚本
# vim /sitedir/linkdb2.php//在nfs30共享目录编写php脚本文件
<?php
$conn=mysql_connect("192.168.4.11","yaya99","123qqq...A");
mysql_select_db("gamedb");
$sql = 'insert into user (name) values ("PLJ")';
mysql_query($sql);
mysql_close();
echo "save data ok";
?>
:wq
访问脚本
# curlhttp://192.168.4.33/linkdb2.php //访问web33服务器
save data ok
查看数据
# mysql –uyaya99 -p123qqq...A -e 'select* from gamedb.user where name="PLJ"' //在数据库服务器查看数据
mysql: Using a password on the command line interface can be insecure.
+------+
| name |
+------+
| PLJ|
+------+
案例2:部署内存存储服务
Redis 主要负责做网站加速的
具体操作如下:
[*]部署redis服务器
[*]创建redis集群
[*]配置网站服务器
[*]测试配置
https://i-blog.csdnimg.cn/blog_migrate/b01d192191d56fe58f0dd7d32696f87a.png#pic_center
步骤一:部署redis服务器(6台都要配置)
搭建redis服务器
# rpm -q gcc||yum -yinstall gcc//安装编译工具
# tar -zxvf redis-4.0.8.tar.gz //解压
# cd redis-4.0.8/ //进源码目录
# make install//安装软件
# ./utils/install_server.sh //初始化配置
# /etc/init.d/redis_6379stop//停止服务
Stopping ...
Redis stopped
#
# vim /etc/redis/6379.conf //修改配置文件,启用集群配置
70 bind 192.168.4.51
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000
:wq
# /etc/init.d/redis_6379start//启动服务
Starting Redis server...
# netstat-utnlp| grepredis-server//查看端口
tcp 0 0 192.168.4.51:6379 0.0.0.0:* LISTEN 29720/redis-server //redis服务端口
tcp 0 0 192.168.4.51:16379 0.0.0.0:* LISTEN 29720/redis-server//集群端口
# 6台主机都要如此操作
步骤二:创建redis集群
配置管理主机
# yum -yinstall ruby rubygems//安装依赖
# gem install redis-3.2.1.gem//安装依赖软件gem程序
# mkdir /root/bin
# tar -zxvf redis-4.0.8.tar.gz
# cpredis-4.0.8/src/redis-trib.rb /root/bin///拷贝脚本
# chmod+x /root/bin/redis-trib.rb//确保脚本有执行权限
# redis-trib.rb help//查看帮助
Usage: redis-trib <command> <options> <arguments ...>
创建集群
]# redis-trib.rbcreate--replicas1 \
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
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.4.51:6379
192.168.4.52:6379
192.168.4.53:6379
Adding replica 192.168.4.56:6379 to 192.168.4.51:6379
Adding replica 192.168.4.55:6379 to 192.168.4.52:6379
Adding replica 192.168.4.54:6379 to 192.168.4.53:6379
M: d9f8fe6d6d9dd391be8e7904501db1535e4d17cb 192.168.4.51:6379
slots:0-5460 (5461 slots) master
M: 324e05df3f143ef97e50d09be0328a695e655986 192.168.4.52:6379
slots:5461-10922 (5462 slots) master
M: 9e44139cffb8ebd7ed746aabbf4bcea9bf207645 192.168.4.53:6379
slots:10923-16383 (5461 slots) master
S: d9634ba0aa5c1a07193da4a013da6051c1515922 192.168.4.54:6379
replicates 9e44139cffb8ebd7ed746aabbf4bcea9bf207645
S: 2d343a9df48f6f6e207949e980ef498466a44dad 192.168.4.56:6379
replicates d9f8fe6d6d9dd391be8e7904501db1535e4d17cb
S: 894dd0008053f6fb65e9e4a36b755d9351607500 192.168.4.55:6379
replicates 324e05df3f143ef97e50d09be0328a695e655986
Can I set the above configuration? (type 'yes' to accept): yes //同意以上配置
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join...
>>> Performing Cluster Check (using node 192.168.4.51:6379)
M: d9f8fe6d6d9dd391be8e7904501db1535e4d17cb 192.168.4.51:6379
slots:0-5460 (5461 slots) master
1 additional replica(s)
S: d9634ba0aa5c1a07193da4a013da6051c1515922 192.168.4.54:6379
slots: (0 slots) slave
replicates 9e44139cffb8ebd7ed746aabbf4bcea9bf207645
S: 894dd0008053f6fb65e9e4a36b755d9351607500 192.168.4.56:6379
slots: (0 slots) slave
replicates 324e05df3f143ef97e50d09be0328a695e655986
M: 324e05df3f143ef97e50d09be0328a695e655986 192.168.4.52:6379
slots:5461-10922 (5462 slots) master
1 additional replica(s)
M: 9e44139cffb8ebd7ed746aabbf4bcea9bf207645 192.168.4.53:6379
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: 2d343a9df48f6f6e207949e980ef498466a44dad 192.168.4.57:6379
slots: (0 slots) slave
replicates d9f8fe6d6d9dd391be8e7904501db1535e4d17cb
All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
All 16384 slots covered.//提示16384个槽分配完毕
查看集群信息
# redis-trib.rb info 192.168.4.51:6379 //查看集群信息
192.168.4.51:6379 (d9f8fe6d...) -> 0 keys | 5461 slots | 1 slaves.
192.168.4.52:6379 (324e05df...) -> 0 keys | 5462 slots | 1 slaves.
192.168.4.53:6379 (9e44139c...) -> 0 keys | 5461 slots | 1 slaves.
0 keys in 3 masters.
keys per slot on average
# redis-trib.rb check 192.168.4.51:6379 //检测集群
测试配置(在客户端连接集群中的任意一台服务器存取数据)
# redis-cli-c-h 192.168.4.51 -p 6379 //连接服务器51
192.168.4.51:6379> set x 100//存储
-> Redirected to slot located at 192.168.4.53:6379//提示存储在53主机
OK
192.168.4.53:6379> set z 300 //存储
-> Redirected to slot located at 192.168.4.52:6379 //提示存储在52主机
192.168.4.52:6379> keys *//在52主机查看数据 只有变量z
1) "z"
192.168.4.52:6379> get x
-> Redirected to slot located at 192.168.4.53:6379 //连接53主机获取数据
"100"
步骤三:配置网站服务器
# yum -y install php-devel//安装依赖
# tar -zxvf redis-cluster-4.3.0.tgz//解压
# cd redis-4.3.0///进入源码目录
# phpize//创建configure命令及配置信息文件/usr/bin/php-config
# ./configure --with-php-config=/usr/bin/php-config
……
……
configure: creating ./config.status
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing libtool commands
#
# make//编译
# make install//安装
Installing shared extensions: /usr/lib64/php/modules/ //提示模块安装目录
#
# ls /usr/lib64/php/modules/ //查看目录列表
curl.sofileinfo.sojson.somysqli.somysql.sopdo_mysql.sopdo.sopdo_sqlite.sophar.soredis.sosqlite3.sozip.so
# vim /etc/php.ini
728 extension_dir = "/usr/lib64/php/modules/" //模块目录
730 extension = "redis.so" //模块名
:wq
# systemctlrestart php-fpm//重启php-fpm服务
# php -m |grep -iredis//查看模块
redis
步骤四:测试配置
在存储服务器共享目次下,创建连接集群PHP脚本
nfs30~ ]# vim/sitedir/set_data.php //存储数据脚本
<?php
$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服务器列表
$client = new RedisCluster(NUll,$redis_list); //定义连接redis服务器变量
$client->set("i","tarenaA "); //存储数据 变量名 i
$client->set("j","tarenaB ");//存储数据 变量名 j
$client->set("k","tarenaC ");//存储数据 变量名 k
?>
:wq
nfs30~ ]# vim /sitedir/get_data.php //获取数据脚本
<?php
$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服务器列表
$client = new RedisCluster(NUll,$redis_list); //定义连接redis服务器变量
echo $client->get("i");//获取变量i 的数据
echo $client->get("j");//获取变量j 的数据
echo $client->get("k");//获取变量k 的数据
?>
:wq
nfs30~ ]#vim /sitedir/test3.php //存/取数据脚本
<?php
$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'];
$client = new RedisCluster(NUll,$redis_list);
$client->set(“name“,”panglijing”);//存数据
echo $client->get(“name”);//取数据
?>
:wq
访问网站实验脚本(在任意主机访问网站服务器都可以)
]# curlhttp://192.168.4.33/set_data.php
]# curlhttp://192.168.4.33/get_data.php
]# curlhttp://192.168.4.33/test3.php
案例3:数据迁徙
要求如下:
[*]配置从服务器
[*]配置第1台PXC服务器
[*]配置第2台PXC服务器
[*]配置第3台PXC服务器
[*]公共配置
[*]测试配置
https://i-blog.csdnimg.cn/blog_migrate/81b5d86fa7b149874728e1799977d926.png#pic_center
步骤一:配置从服务器(把主机192.168.4.66 配置为192.168.4.11的从服务器)
在192.168.4.66主机安装数据库服务软件并启动mysqld服务
# tar -xvf mysql-5.7.17.tar//解包
# ls *.rpm//查看软件列表
# yum -yinstall mysql-community-*.rpm//安装软件
# systemctl startmysqld//启动服务
# ls /var/lib/mysql//查看数据库文件列表
auto.cnf client-cert.pemibdata1 ibtmp1 mysql.sock.lock public_key.pem sys
ca-key.pemclient-key.pem ib_logfile0mysql performance_schemaserver-cert.pem
ca.pem ib_buffer_pool ib_logfile1mysql.sockprivate_key.pem server-key.pem
# systemctl enablemysqld//设置服务开机运行
# grep password/var/log/mysqld.log //查看初始密码
2019-07-05T01:56:51.895852Z 1 A temporary password is generated for root@localhost: bB0*uCmu:.Kj
# mysql -uroot -p'bB0*uCmu:.Kj'//初始密码登录
mysql> alter user root@"localhost" identified by "123qqq...A";//修改登录密码
# mysql -uroot -p123qqq...A//新密码登录
mysql> showdatabases; //查看数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
# vim /etc/my.cnf
server_id=66//指定server_id
:wq
# systemctlrestart mysqld//重启服务
确保数据同等 (pxcnode66主机 使用mysql11主机的完全备份规复数据确保数据同等 )
# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm //安装依赖软件
# yum -yinstall percona-xtrabackup-24-2.4.7-1.el7.x86_64.rpm //安装在线热备软件
# innobackupex--user root --password 123qqq...A--slave-info/allbak --no-timestamp //备份所有数据,并记录备份数据对应的binlog日志名
# scp -r /allbakroot@192.168.4.66:/root/ //把备份文件发送给pxcnode66主机
# rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm//安装依赖软件
# yum -y installpercona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm //安装在线热备软件
# systemctlstopmysqld //停止服务
# rm-rf/var/lib/mysql/*//清空数据库目录
# innobackupex --apply-log /root/allbak///准备恢复数据
# innobackupex --copy-back /root/allbak///恢复数据
# chown -R mysql:mysql /var/lib/mysql //修改所有者
# systemctl startmysqld//启动服务
指定主服务器
# cat /root/allbak/xtrabackup_info| grep master11 //查binlog日志
binlog_pos = filename 'master11.000001', position '7700'
# mysql -uroot -p123qqq...A//管理员登录指定主服务器信息
mysql> change master to
master_host="192.168.4.11", //主服务器ip地址
master_user="repluser", //主服务器授权用户
master_password="123qqq...A", //授权密码
master_log_file="master11.000001",//binlog日志名
master_log_pos=7700; //日志偏移量
Query OK, 0 rows affected, 2 warnings (0.31 sec)
mysql> start slave ;//启动slave 程序
Query OK, 0 rows affected (0.09 sec)
mysql> exit//断开连接
Bye
# mysql -uroot -p123qqq...A -e "show slave status\G" | grep -i 192.168.4.11//查看主服务器地址
mysql: Using a password on the command line interface can be insecure.
Master_Host: 192.168.4.11 //主服务器ip地址
# mysql -uroot -p123qqq...A -e "show slave status\G" | grep -i "yes" //查看状态信息
mysql: Using a password on the command line interface can be insecure.
Slave_IO_Running: Yes//IO线程正常
Slave_SQL_Running: Yes//SQL线程正常
步骤二:配置第1台PXC服务器(192.168.4.66)
制止mysqld服务、卸载mysqld服务软件
# systemctlstop mysqld//停止服务
# rpm -qa| grep -i mysql //查看安装的MySQL服务软件
# rpm -e --nodeps mysql-community-server mysql-community-embedded-compat mysql-community-common mysql-community-client mysql-community-devel \
安装PXC软件、修改配置文件、启动mysql服务
# cd PXC//进软件目录
# rpm -ivh qpress-1.1-14.11.x86_64.rpm//安装依赖
警告:qpress-1.1-14.11.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 6cb7b81f: NOKEY
# tar -xvf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar//解压PXC软件包
# yum -yinstall Percona-XtraDB-Cluster-*.rpm //安装软件
# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf //修改数据库服务配置文件
server-id=66 //指定server_id
# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf //修改集群服务配置文件
wsrep_cluster_address=gcomm:// 不需要写ip地址 因为目前没有集群
wsrep_node_address=192.168.4.66 //指定本机Ip地址
wsrep_cluster_name=pxc-cluster//指定集群名称(另外2台的集群名称要于此相同)
wsrep_node_name=pxcnode66//指定本机主机名
wsrep_sst_auth="sstuser:123qqq...A" //数据全量同步授权用户及密码
:wq
# systemctlstart mysql//启动服务
# netstat -utnlp| grep:3306 //查看MySQL服务端口
tcp6 0 0 :::3306 :::* LISTEN 24482/mysqld
# netstat -utnlp| grep:4567//查看集群通信端口
tcp 0 0 0.0.0.0:4567 0.0.0.0:* LISTEN 24472/mysqld
# systemctlenable mysql//设置服务开机运行
数据库管理员登录、用户授权、查看状态信息
# mysql -uroot -p123qqq...A //管理员登录
mysql> grant all on *.* to sstuser@"localhost" identified by "123qqq...A"; //用户授权
Query OK, 0 rows affected, 1 warning (0.10 sec)
mysql> show status like "%wsrep%"; //查看集群状态信息
| wsrep_incoming_addresses | 192.168.4.66:3306 |
| wsrep_cluster_weight | 1 |
| wsrep_desync_count | 0 |
| wsrep_evs_delayed | |
| wsrep_evs_evict_list | |
| wsrep_evs_repl_latency | 0/0/0/0/0 |
| wsrep_evs_state | OPERATIONAL |
| wsrep_gcomm_uuid | 73809cc5-cf00-11e9-aac3-b223959fecdf |
| wsrep_cluster_conf_id | 1 |
| wsrep_cluster_size | 1 |
| wsrep_cluster_state_uuid | 73848b1a-cf00-11e9-9058-36c1ac1e1359 |
| wsrep_cluster_status | Primary |
| wsrep_connected | ON |
| wsrep_local_bf_aborts | 0 |
| wsrep_local_index | 0 |
| wsrep_provider_name | Galera |
| wsrep_provider_vendor | Codership Oy <info@codership.com> |
| wsrep_provider_version | 3.35(rddf9876) |
| wsrep_ready | ON |
+----------------------------------+--------------------------------------+
71 rows in set (0.00 sec)
mysql> exit ;
# mysql -uroot -p123qqq...A -e "show slave status\G" | grep -i "yes" //查看状态信息依然是192.168.4.11的从服务器
mysql: Using a password on the command line interface can be insecure.
Slave_IO_Running: Yes//IO线程正常
Slave_SQL_Running: Yes//SQL线程正常
步骤三:配置第2台PXC服务器(192.168.4.10)
安装PXC软件
# cd PXC//进软件目录
# rpm -ivh qpress-1.1-14.11.x86_64.rpm//安装依赖
警告:qpress-1.1-14.11.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 6cb7b81f: NOKEY
# tar -xvf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar//解压PXC软件包
# yum -yinstall Percona-XtraDB-Cluster-*.rpm //安装软件
修改配置文件
# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf //修改数据库服务配置
server-id=10 //指定server_id
:wq
#
# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf //修改集群服务配置文件
wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.10 //集群成员列表
wsrep_node_address=192.168.4.10 //指定本机Ip地址
wsrep_cluster_name=pxc-cluster//指定集群名称(另外2台的集群名称要于此相同)
wsrep_node_name=pxcnode10//指定本机主机名
wsrep_sst_auth="sstuser:123qqq...A" //数据全量同步授权用户及密码
:wq
启动mysql服务
# systemctlstart mysql//启动服务
# systemctlenable mysql//服务开机运行
# netstat -utnlp| grep:3306 //查看MySQL服务端口
tcp6 0 0 :::3306 :::* LISTEN 24482/mysqld
# netstat -utnlp| grep:4567 //查看集群端口
tcp6 0 0 :::4567 :::* LISTEN 24489/mysqld
mysql> show status like "%wsrep%"; //查看集群状态信息
| wsrep_incoming_addresses | 192.168.4.66:3306,192.168.4.10:3306|
| wsrep_cluster_weight | 1 |
| wsrep_desync_count | 0 |
| wsrep_evs_delayed | |
| wsrep_evs_evict_list | |
| wsrep_evs_repl_latency | 0/0/0/0/0 |
| wsrep_evs_state | OPERATIONAL |
| wsrep_gcomm_uuid | 73809cc5-cf00-11e9-aac3-b223959fecdf |
| wsrep_cluster_conf_id | 1 |
| wsrep_cluster_size | 1 |
| wsrep_cluster_state_uuid | 73848b1a-cf00-11e9-9058-36c1ac1e1359 |
| wsrep_cluster_status | Primary |
| wsrep_connected | ON |
| wsrep_local_bf_aborts | 0 |
| wsrep_local_index | 0 |
| wsrep_provider_name | Galera |
| wsrep_provider_vendor | Codership Oy <info@codership.com> |
| wsrep_provider_version | 3.35(rddf9876) |
| wsrep_ready | ON |
+----------------------------------+--------------------------------------+
71 rows in set (0.00 sec)
mysql> exit ;
步骤四:配置第3台PXC服务器(192.168.4.88)
# cd PXC//进软件目录
# rpm -ivh qpress-1.1-14.11.x86_64.rpm//安装依赖
警告:qpress-1.1-14.11.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 6cb7b81f: NOKEY
准备中... #################################
正在升级/安装...
1:qpress-1.1-14.11 #################################
#
# tar -xvf Percona-XtraDB-Cluster-5.7.25-31.35-r463-el7-x86_64-bundle.tar//解压PXC软件包
# yum -yinstall Percona-XtraDB-Cluster-*.rpm //安装软件
# vim /etc/percona-xtradb-cluster.conf.d/mysqld.cnf //修改数据库服务配置
server-id=88 //指定server_id
:wq
#
# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf //修改集群服务配置文件
wsrep_cluster_address=gcomm://192.168.4.66 //集群成员ip地址
wsrep_node_address=192.168.4.88 //指定本机Ip地址
wsrep_cluster_name=pxc-cluster//指定集群名称(另外2台的集群名称要于此相同)
wsrep_node_name=pxcnode88//指定本机主机名
wsrep_sst_auth="sstuser:123qqq...A" //数据全量同步授权用户及密码
:wq
#
# systemctlstart mysql//启动服务
# systemctlenable mysql//服务开机运行
# netstat -utnlp| grep:3306 //查看MySQL服务端口
tcp6 0 0 :::3306 :::* LISTEN 24472/mysqld
# netstat -utnlp| grep:4567 //查看集群端口
tcp6 0 0 :::4567 :::* LISTEN 24486/mysqld
步骤五:公共配置(192.168.4.88、192.168.4.10、192.168.4.66)
修改192.168.4.88主机的集群配置文件
# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.10,192.168.4.88 //指定集群成员列表
:wq
修改192.168.4.10主机的集群配置文件
# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.88,192.168.4.10 //指定集群成员列表
:wq
修改192.168.4.66主机的集群配置文件
# vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
wsrep_cluster_address=gcomm://192.168.4.66,192.168.4.88,192.168.4.10 //指定集群成员列表
:wq
案例4:部署LB集群
配置步骤如下:
[*]安装软件
[*]修改配置文件
[*]启动服务
[*]测试配置
拓扑结构如图-3所示。创建1台新的假造机,配置ip地点 eth0 192.168.4.99 主机名 haproxy99 ;运行haproxy服务 接受客户端访问数据库的连接请求,把请求平均分发给3台PXC集群主机。
https://i-blog.csdnimg.cn/blog_migrate/8addea45917161c16e51b56ad67dbcce.png#pic_center
步骤一:安装软件: 在haproxy99主机上安装haproxy软件
# yum -y install haproxy
步骤二:修改配置文件
# vim/etc/haproxy/haproxy.cfg
Global //全局配置默认即可
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
defaults //默认配置(不需要修改)
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
listen status//定义监控页面
mode http //模式为http
bind *:80 //端口80
stats enable //启用配置
stats uri /admin//访问目录名
stats auth admin:admin//登录用户与密码
listen mysql_3306 *:3306 //定义haproxy服务名称与端口号
mode tcp //mysql服务 得使用 tcp 协议
optiontcpka //使用长连接不需要每输入一个指令 就连接一次
balance roundrobin //调度算法
servermysql_01 192.168.4.66:3306 check//第1台数据库服务器
servermysql_02 192.168.4.10:3306 check//第2台数据库服务器
servermysql_03 192.168.4.88:3306 check//第3台数据库服务器
:wq
步骤三:启动服务
# systemctlstart haproxy //启动服务
# systemctlenable haproxy//开机运行
Created symlink from /etc/systemd/system/multi-user.target.wants/haproxy.service to /usr/lib/systemd/system/haproxy.service.
# netstat -utnlp| grep:3306//查看端口
tcp6 0 0 :::3306 :::* LISTEN 29768/haproxy
步骤四:测试配置:在网站服务器连接haproxy99主机访问数据
# mysql –h192.168.4.99 –uyaya99 –p123qqq…A -e'select @@hostname'
mysql: Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxcnode66| //第1次连接
+------------+
#
# mysql –h192.168.4.99 –uyaya99 –p123qqq…A -e'select @@hostname'
mysql: Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxcnode10| //第2次连接
+------------+
#
# mysql –h192.168.4.99 –uyaya99 –p123qqq…A -e'select @@hostname'
mysql: Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxcnode88| //第3次连接
+------------+
案例5:部署HA集群
https://i-blog.csdnimg.cn/blog_migrate/35b4c5035b371422f7dd86c613ed6312.png#pic_center
步骤一:预备备用调治器主机
# yum -yinstall haproxy
# 修改haproxy98主机haproxy.conf文件(直接拷贝haproxy99主机的配置文件也可以)
# scproot@192.168.4.99:/etc/haproxy/haproxy.cfg /etc/haproxy/
Warning: Permanently added '192.168.4.99' (ECDSA) to the list of known hosts.
root@192.168.4.99's password: //输入haproxy99主机的密码
haproxy.cfg
# 启动haproxy服务
# systemctlstarthaproxy//启动服务
# systemctlenablehaproxy//服务开机运行
Created symlink from /etc/systemd/system/multi-user.target.wants/haproxy.service to /usr/lib/systemd/system/haproxy.service.
# netstat -utnlp| grep:3306//查看端口
tcp6 0 0 :::3306 :::* LISTEN 29768/haproxy
步骤二:安装软件
在haproxy99主机安装keepalived软件
在haproxy98主机安装keepalived软件
# yum -yinstall keepalived.x86_64
# yum -yinstall keepalived.x86_64
步骤三:修改配置文件
修改haproxy99主机的配置文件
#vim/etc/keepalived/keepalived.conf
global_defs {
……
……
vrrp_iptables //禁止iptables
}
vrrp_instance VI_1 {
state MASTER //主服务器标识
interface eth0
virtual_router_id 51
priority 150 //haproxy99 主机做主服务器,优先级要比 haproxy88主机高
advert_int 1
authentication {
auth_type PASS//主备服务器连接方式
auth_pass 1111 //连接密码
}
virtual_ipaddress {
192.168.4.100 //定义vip地址
}
}
# scp/etc/keepalived/keepalived.confroot@192.168.4.98: /etc/keepalived/
root@192.168.4.98's password://输入haproxy98主机的密码
修改haproxy98主机的配置文件
#vim/etc/keepalived/keepalived.conf
global_defs {
……
……
vrrp_iptables //禁止iptables
}
vrrp_instance VI_1 {
state BACKUP //备用服务器标识
interface eth0
virtual_router_id 51
priority 100 //优先级要比 haproxy99低
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.4.100 //定义vip地址
}
}
步骤四:启动服务
# 在haproxy99主机启动keepalived服务
# systemctlstart keepalived.service //启动服务
#
# ip addr show | grep 192.168.4.100//查看vip地址
inet 192.168.4.100/32 scope global eth0
# 在haproxy98主机启动keepalived服务
# systemctlstart keepalived.service //启动服务
#
# ip addr show| grep 192.168.4.100 //查看不到vip
步骤五:测试配置
# 客户端连接vip地址,访问数据库服务
# mysql -h192.168.4.100 –uyaya99 –p123qqq…A -e 'select @@hostname'
测试高可用
# ip addrshow| grep 192.168.4.100//在haproxy99 主机查看VIP地址
inet 192.168.4.100/32 scope global eth0
# systemctlstop keepalived.service //停止keepalived服务
# ip addrshow| grep 192.168.4.100//查看不到vip地址
# ip addr show| grep192.168.4.100 //在备用的haproxy98主机查看地址
inet 192.168.4.100/32 scope global eth0
//客户端连接vip地址访问数据库服务
# mysql -h192.168.4.100 –uyaya99 –p123qqq…A -e 'select @@hostname'
mysql: Using a password on the command line interface can be insecure.
+------------+
| @@hostname |
+------------+
| pxcnode66|
+------------+
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]