Mysql运维篇(二) 主从复制

发布时间:2024年01月21日

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人,如有侵权请留言,我及时删除。

一、主从复制的原理

主库会生成一个I/O操作线程进去写的的操作,而从库则生成两个线程,其一是I/O读取线程,其二是一个SQL线程。

1、主库将数据的操作记录到一个二进制日志中(即:binary log),也就是配置文件中指定的log-bin指定的文件就是日志文件。

2、从库将主库的日志文件拷贝到他的中继日志即配置文件中指定的relay log日志文件中,I/O线程去请求主库的bin-log日志,并将日志写入到relay log中继日志中,此时主库会生成一个log dump线程,用来给从库I/O线程传输bin-log日志件。

3、从库会更新relay log文件中的操作,将数据的改变在从库中进行数据重演即重新执行一次,即SQL线程执行操作,将日志文件中的记录变为数据操作行为再次执行,以达到主从数据最终一致性的目的。

4、需要注意的是主从复制需要大量的I/O操作,所以延时是不可避免的。

二、主从复制原理图

1、主从复制的流程图

2、主从复制的优点

三、环境准备工作

准备两台服务器(模拟一主一从),并安装相同版本的MySQL数据库。

主库(master)地址:192.168.10.212?端口:3306。

从库(slave)地址:197.168.197.213?端口:3306。

版本:MySQL 8.0.25。

准备工作注意事项:

1、 每个master可以有多个slave,每个slave只属于一个master;

2、 数据库的版本必须保证一致;

3、 主库与从库中配置文件中的server_id都必须唯一。

4、硬件配置,操作系统必须保持一致

5、网络带宽满足业务要求,避免网络延迟过长

四、开始部署

1、MySQL-master 修改配置文件,重启服务

[root@master etc]# vi my.cnf

-----新增配置-----

server-id=1
read-only=0
------------------------------

1.1、创建登录MySQL,创建远程连接的账号,并授予主从复制的权限

USE mysql;
CREATE USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY 'Ops7565!#!#';
GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';
SHOW MASTER STATUS;

2、MySQL-slave配置,重启数据库

[root@slave ~]# vi /etc/my.cnf

--------新增配置---------------

server-id=2
read-only=1

--------------------------------------

查看主从server-id?

参考文档

mysql 从库显示:Slave_IO_Running: No 怎么办? - 简书

2.2、从库配置,关联主库

mysql> CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.10.212',SOURCE_USER='itcast',SOURCE_PASSWORD='Ops7565!#!#',SOURCE_LOG_FILE='binlog.000002',SOURCE_LOG_POS=665;
Query OK, 0 rows affected, 2 warnings (0.02 sec)

2.3、启动主从复制

启动\停止主从命令

START REPLICA; 或者 start slave? 停止同步 stop?REPLICA/start slave?

mysql> ? START ?REPLICA;
Query OK, 0 rows affected (0.00 sec)

mysql> ?SHOW SLAVE STATUS\G

四、测试数据同步

1、创建数据库,并在数据库中创建一个表

-- 创建数据库
CREATE DATABASE dbtest01;
USE mydatabase;
?
-- 创建表
CREATE TABLE test01(
? ? id INT PRIMARY KEY AUTO_INCREMENT,
? ? name VARCHAR(50),
? ? age INT
);

2、主从同步查看

MySQL主节点创建数据库dbtest01,并穿件01表;

主从库查看表

3、测试增、删、改 数据

主库操作,新增数据:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 备库操作,查看新增数据:

主库操作,修改数据:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?从库操作,查询数据:?

主库操作,删除数据:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??从库操作,查询数据:?

五、主从复制总结

文章来源:https://blog.csdn.net/weixin_41633010/article/details/135726871
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。