重启网卡service network restart
分布式存储——mysql
一、 WEB架构演变
二、 分布式系统理论
1. 集群的概念
l 服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,其中有任何一个机器出故障,其他机器能够顶替并正常运行,提高系统的容灾性。
l 服务器集群处理提高系统性能,提高响应速度,还可以用作容灾备份,例如MySQL的主从复制与双主互备。
2. 分布式系统的概念
l 分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
l 在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无副本、数据存于哪个站点以及事务在哪个站点上执行等。
3. 集群与分布式的区别
l 集群指的是将几台服务器集中在一起,实现同一业务。
l 分布式是指将不同的业务分布在不同的地方。
4. 分布式应用的业务场景
l 分布式存储:HDFS(大数据用到)、MySQL、Oracle
l 分布式缓存:Redis(可以持久化存储本地)、Memcache(只能缓存)
l 分布式服务:SOA(面向于接口)、微服务(将大项目拆分于小项目)
l 分布式webServer:Tomcat、Apache
l 分布式协调中心:Zookeeper
l 分布式消息队列:Kafka、RabbitMQ
l 分布式实时数据平台:Storm、Akka
l 分布式离线数据平台:Hadoop(存储非结构化数据和海量计算TB)、Spark
l 分布式搜索:Elasticsearch、Solr
l 分布式日志:Flume、ELK
l 分布式容器:Docker、Kubernetes
l 负载均衡:Nginx、LVS
三、 centos7安装mysql
l rpm的安装方式
l 输入 yum -y remove mariadb-libs-1:5.5.44-2.el7.centos.x86_64 解决兼容问题
3个包扔进去
直接安装
rpm -ivh MySQL-server-5.5.58-1.el7.x86_64.rpm MySQL-client-5.5.58-1.el7.x86_64.rpm MySQL-devel-5.5.58-1.el7.x86_64.rpm
启动服务
设置开机自启动
设置mysql密码
登录
四、 MySQL主从复制(冷备)
1. 普通文件的同步
l NFS网络文件共享可同步存储数据
l windows的samba
l Linux定时任务
查看此时的定时任务crontab -l
设置定时任务crontab -e
每分钟同步文件
* * * * * cp /etc/profile /home/profile.bak
*代表时间,顺序是:分 时 日 月 周
2-6 表示 2 3 4 5 6
删除定时任务
l ftp数据同步
l ssh+scp服务器远程同步
2. 文件系统的同步
l drbd(基于文件系统同步),几乎同步任何业务数据
3. 数据库的同步
l MySQL主从复制(数据同步)
l Oracle DataGuard(甲骨文推出的一种高可用性数据库方案)
4. MySQL主从复制介绍
直接关机,叉掉,复制虚拟机
l MySQL支持单向、双向、
l 链式级联
l 实时、异步复制,在复制过程中,一台服务器充当主服务器(master),一个或多个其他服务器充当从服务器(slave)
l 复制可以是单向:M——>S
l 也可以是双向:M<——>M
5. 主从复制的应用场景
l 主从服务器互为备份,加强数据库架构的健壮性
l 主从服务器读写分离,分担网站压力,从服务器只处理用户的查询请求
l 将从服务器,按照业务拆分,分担压力
6. 主从复制的原理
l SQLyog也有mysql的日志信息
l Master(主数据库)将改变记录到二进制日志(binary log)中
l Slave将Master的二进制日志事件(binary log events)拷贝到它的中继日志(relay log)
l Slave重做中继日志(Relay Log)中的事件,将Master上的改变反映到它自己的数据库中
l 这些是由从库在做,所以是异步的数据同步
7. CentOS7搭建MySQL主从复制
1.必须检查防火墙是否已经关闭,若开启状态,先关闭
第一台机器如下:
复制mysql配置文件模板到/etc/my.cnf
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
重启mysql
可以查询到第一台机器,id是1
第二台机器:
复制配置文件
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
修改id为2
重启mysql服务
进入mysql查看id修改成功
第一台机器:
mysql里查看主库的日志文件信息
第二台机器:
l slave节点mysql中输入如下,红色你安装自己的改,IP是主库IP
l 日志文件信息,要跟上面查到的信息对应
l 把如下语句,整个粘贴到第二台机器mysql中执行
change master to
master_host='192.168.113.128',
master_user='root',
master_password='admin',
master_log_file='mysql-bin.000009',
master_log_pos=187;
启动从服务
可以查看从服务信息
第一台机器:
执行授权,两边都授权刷新一下
grant all privileges on *.* to 'root'@'%' identified by 'admin' with grant option;
刷新设置
测试:第一台机器建个库,第二台机器也存在
8. 主从复制存在的问题
l 因为是异步同步,有可能丢失极小一部分数据
9. CentOS7搭建MySQL双主互备(热备)
l 双主互备就是要保持两个数据库的状态自动同步,对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致,这样做的意义是既提高了数据库的容灾性,又可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量
第二台机器:
查看日志信息
第一台机器:
change master to
master_host='192.168.113.129',
master_user='root',
master_password='admin',
master_log_file='mysql-bin.000006',
master_log_pos=263;
l 在master输入以下内容:IP是第二台机器
change master to
master_host='192.168.190.131',
master_user='root',
master_password='admin',
master_log_file='mysql-bin.000001',
master_log_pos=419;
启动从服务,start slave;
测试:第二台创建个库,第一台也同步