学习目标和内容:
1、能够描述高可用HA的作用
2、能够理解VIP的切换:虚拟IP。
3、能够描述keepalived作用:保持活跃。主备的服务器的关系。
4、能够理解主master和备backup服务器关系
5、能够实现主备服务器高可用配置:主服务器不可用,继续使用备用服务器提供服务。
6、能够实现模拟业务宕机服务切换:
业务背景描述:
随着用户数量越来越多,单台web服务器,压力越来越大,虽然单台web服务器,可以完成工作任务的。但是如果一宕机,用户就完全失去服务,用户体验特别不好。需要备用一台服务器进行使用。主服务器宕机之后,快速切换到备用服务器。
模拟运维设计方案:
在之前架构中,先将数据库服务器单独迁移。
高可用为主。
针对web服务器的单点故障,升级主备服务器架构:
web服务器高可用。
服务器名称 | 功能 | IP地址 |
server01 | Web服务器 master | 192.168.17.107 |
server02 | 数据库服务器 mysql | 192.168.17.108 |
server03 | Web服务器 | 192.168.17.109 |
服务器的基本配置:
根据之前的服务器服务器基本环境要求进行配置。
因为是克隆获取虚拟机,所以只需要进行IP和Mac地址的修改即可。
把数据库迁移出来,两个原因:
1)要保证数据的一致性;数据库要提供一样的服务器;
2)web服务器和数据库服务器混在一起,不好,把数据库服务器单独拿出来也会更好一些;
数据备份和迁移:
1)源数据库导出数据:
源数据库是server01,在server01上进行操作:
mysqldump -uroot -p --database tp5shop > /root/tp5shop.sql
现在我的数据库没有发生变化,但是我们的数据库在真实的情况下是其实是每时每刻都是在发生变化。所以我们都需要实时去导出它。
[root@server01 ~]# mysqldump -uroot -p --database tp5shop > /root/tpshop.sql
Warning: Using unique option prefix database instead of databases is deprecated and will be removed in a future release. Please use the full name instead.
Enter password:
[root@server01 ~]# ll
total 204
-rw-------. 1 root root 1518 Sep 2 02:39 anaconda-ks.cfg
drwxr-xr-x 8 root root 4096 Sep 7 00:52 soft
-rw-r--r-- 1 root root 200328 Sep 8 16:53 tpshop.sql
[root@server01 ~]#
2)通过scp命令把文件传到server02服务器上。
scp /root/tpshop.sql root@192.168.17.108:/root
#因为数据库服务器克隆来的,所有本身具有数据 可以删除了库,模拟新机器,重新导入
mysql > drop database tp5shop;
#创建数据库并导入数据
mysql > create database tp5shop;
mysql > use tp5shop;
mysql > source /root/tp5shop.sql;
在Server02 MySQL服务器中建立远程连接用户并授予权限。
grant all privileges on tp5shop.* to 'tp5shop'@'192.168.17.%' identified by '$Abc3721';flush privileges;
然后在Server01服务器上进行下登录测试:
登录结果测试成功。
然后再将server01的数据库进行停止。
server01的服务器也就连不上服务器了。
修改下连接数据库的配置文件database.php。
不需要进行nginx的重启。直接浏览器访问测试:访问页面,查看业务使用情况。
这是一个正常的数据备份迁移操作的。