首页 技术 正文
技术 2022年11月21日
0 收藏 806 点赞 4,208 浏览 2219 个字

AB复制是一种数据复制技术,是myslq数据库提供的一种高可用、高性能的解决方案。

AB复制的模式:
一主一从 、一主多从、双主、多主多从

复制的工作原理:
要想实现ab复制,那么前提是master上必须开启二进制日志
1)首先master将数据更新记录到二进制日志文件中
2)从slave start开始,slave通过I/O线程向master请求二进制日志文件,slave要知道向谁请求从哪个位置点请求
3)master接收到slave的I/O请求之后,就会从相应的位置点开始,给slave传日志
4)slave接收到日志后,会写入本地的中继日志中
5)slave通过sql线程读取中继日志中的内容,在数据库中执行相应的操作,到此为止,master和slave上的数据一致,之后slave服务器进入等待状态,等待master的后续更新

复制工作原理图:

配置说明:

安装配置
1.准备工作
1.关闭防火墙
2.关闭selinux
3.配置固定ip地址
4.配置好yum源
5.修改主机名

2.实验环境
master server:192.168.1.3   master.uplook.com     #主数据库
slave server: 192.168.1.4   slave.uplook.com            #从库

3.配置过程
master配置 (主库所在服务器)
1)安装软件
安装MySQL数据库(没有安装的可以看这个参照 https://www.cnblogs.com/pxblog/p/10529943.html

2)修改主库服务器的配置文件

vim /etc/my.cnf

[mysqld]
log-bin=binlog //开启二进制日志
server-id=1 //指定服务id

3)启动服务

systemctl start mysqld 

4)查看服务是否被监听

 netstat -tulnp | grep 3306

 显示以下内容,说明启动成功(可能参数会有不同)

tcp6       0      0 :::3306                 :::*                    LISTEN      11156/mysqld

  

5)授权一个实现复制数据的用户 (出现问题,具体说明可以查看 https://www.cnblogs.com/pxblog/p/10721939.html

mysql> grant replication slave,replication client on *.* to 'repluser'@'192.168.1.4' identified by '123456';

 

在slave远程登陆 测试授权

mysql -u repluser -h 192.168.1.3 -p123456

  

slave配置(从库所在服务器)
1)安装软件
(一样安装MySQL数据库)

2)修改配置文件

vim /etc/my.cnf  

[mysqld]
server-id=2  //保证和主服务器不一致

3)启动服务

systemctl start mysqld

 

4)查看服务是否被监听

netstat -tulnp | grep 3306

出现以下内容说明成功(可能参数会有不同)

tcp6       0      0 :::3306                 :::*                    LISTEN      11156/mysqld

5)在master(主库所在服务器)上查看,登录MySQL数据库

mysql> show master status\G

 显示以下内容 

*************************** 1. row ***************************
File: binlog.000001
Position: 154
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)

6)从库所在数据库操作,进入从库,在slave上同步数据,需要告诉slave从master的哪个位置开始同步 (以下参数每个人可能不一样)

mysql> change master to master_host='192.168.1.3',
master_port=3306,master_user='repluser',
master_password='123456',
master_log_file='binlog.000001',master_log_pos=154;  

说明:

master_host:数据库服务器ip

master_port:数据库端口

master_user:用户

master_password:密码

master_log_file:值与上面的File的参数对应

master_log_pos:值与上面的Position的值一样

7)在启动从服务器

mysql> start slave;  

Query OK, 0 rows affected (0.00 sec)

8)查看从服务器的状态

mysql> show slave status\G;

Slave_IO_Running: Yes //确保io和sql线程是yes
Slave_SQL_Running: Yes

测试:主从同步是否成功
在master上创建表插入数据
在slave上查看是否有该表
有表示主从同步完成

问题:
1.如果change语句有问题
mysql>slave stop;
change语句问题原因
1)可能多空格
2)关键字不正确
2.同步数据的账户无法连接主服务器
1)账户密码错误
2)无法远程登陆

给所有表加读锁
> flush tables with read lock;
解锁
> unlock tables;

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,105
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,582
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,429
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,836
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,919