数据库的主从复制与读写分离

文章详细介绍了如何进行MySQL的主从复制设置,包括时间同步、配置文件修改、主从服务数据流向以及解决数据丢失和延迟问题的方法。此外,还阐述了在Amoeba上实现读写分离的步骤,包括Amoeba的安装和配置,以及验证读写分离功能的实验过程。
摘要由CSDN通过智能技术生成

目录

一 设置时间同步

二 更改主从服务器配置文件

 ​编辑

三在amoeba搭载读写分离

四 验证读写分离实验


为什么进行复制?

保证数据的完整性

谁复制谁?

从角色复制主角色的数据

主从服务数据的流向过程

主mysql将完成的sql语句放在mysql-bin.00000x里面保存

主mysql中的dump进程检测数据变化则通知从数据库的i/o进程

从数据库的i/o进程把数据放入本地的中继日志

从数据库的sql线程读取本地中继日志数据,并同步到自己的数据库中

mysql中的主从复制默认是异步复制

因为只有数据变化时dump进程才会通知从服务器 这样就会出现问题.如果主数据库坏了,如果现在写数据的话就会出现数据丢失

问题的解决办法

解决数据丢失的问题-------半同步复制

解决从数据库复制延迟的问题-------并行复制

mysql的主从复制的设置

需要主数据库1个 从服务器两个

一 设置时间同步

首先需要设置时间同步不然从服务器获取数据就会延迟或者异常

yum install ntp ntpdate -y 安装ntp软件来达到时间的同步

 ntpdate ntp.aliyun.com 主服务器同步阿里云的时间 从服务器亦可以同步阿里云或者主服务器的时间都是可以的

 vim /etc/ntp.conf  编辑ntp的配置文件

systemctl start ntpd 开启时间同步

从服务器也需要装时间同步

二 更改主从服务器配置文件

先改主服务器vim /etc/my.cn

  systemct restart mysqld

进入mysql中配置

 flush privileges;   刷新权限表

show master status;  查看主服务器数据库状态

 从服务器的配置

 vim /etc/my.cnf

 然后进入数据库中

 start slave; 开启从服务器

show slave status\G查看从服务器状态

 另一台服务器也是同理

测试数据同步

在主服务器创建一个数据库

 
三在amoeba搭载读写分离

因为 Amoeba 基于是 jdk1.5 开发的,所以官方推荐使用 jdk1.5 或 1.6 版本,高版本不建议使用。
cd /opt/
cp jdk-6u14-linux-x64.bin /usr/local/
cd /usr/local/
chmod +x jdk-6u14-linux-x64
./jdk-6u14-linux-x64.bin
//按yes,按enter

mv jdk1.6.0_14/ /usr/local/jdk1.6

vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/bin
export AMOEBA_HOME=/usr/local/amoeba

export PATH=$PATH:$AMOEBA_HOME/bin

source /etc/profile 刷新下profile

java -version 

 ##安装 Amoeba软件##
mkdir /usr/local/amoeba
tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/
chmod -R 755 /usr/local/amoeba/
/usr/local/amoeba/bin/amoeba

 配置amoeba服务

vim amoeba.xml 

 

 

 /usr/local/amoeba/bin/amoeba start& 启动
netstat -anpt | grep java                            #查看8066端口是否开启,默认端口为TCP 8066

这样就显示你的读写分离是正常的

四 验证读写分离实验

原理在主服务器上插入库和表 库和表会显示在amoeba上在从服务器上插入表不会显示在amoeba上

 

 查看从服务器

 关闭两个从服务器的同步数据stop slave;

 

 mysql -u amoeba -p123456 -h 192.168.133.6 -P8066登陆amoeba账户

 在验证写的在主服务器在插入一个数据

打开从服务器的同步

 start slave;

 

/

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值