MySQL主从复制搭建
2024-05-23 15:42:06 0 举报
AI智能生成
登录查看完整内容
MySQL主从复制搭建方式
作者其他创作
大纲/内容
主从复制是将主数据库的DDL和DML操作语句通过binlog日志传到复制服务器上,然后从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他服务器的主库,实现链状的复制
主从复制概念
- 如果主库出现问题,可以快速切换到从库提供服务
- 可以在从库上执行查询操作,降低主库的访问压力
- 可以在从库上执行备份操作,以避免备份期间影响主库的服务
主从复制优点
步骤一:主库进行全备操作,然后将数据导入到从库中
show variables like '%log_bin%';
先检查是否开启了binlog日志
修改配置文件
步骤二:主库开启binlog日志
select @@server_id
检查server_id
select @@server_uuid
检查server_uuid
set global server_id=xxx;
方式一:命令行设置
方式二,修改配置文件
设置server_id
vim /xxx/auto.cnf
设置server_uuid
步骤三:检查主从两个库的server_id和server_uuid不能相同
create user repl@'10.0.0.%' identified with mysql_native_password by '123456';grant replication slave on *.* to repl@'10.0.0.%';
步骤四:主库创建主从数据同步的用户信息
cat xxx.sql
步骤五:查看备份sql文件中的主库事务结束位置
步骤六:从库执行命令
start slave;
步骤七:启动/建立主从关系(从库操作)
show slave status\\G;
步骤八:检查主从关系是否搭建完成
stop slave;
停止从库命令
reset slave all;
重置数据复制同步功能,重新配置change master to信息,然后重新激活同步复制功能
补充:
主从复制搭建之普通搭建
步骤一:主从两个节点都需要开启GTID功能
步骤二:主库进行全备操作,然后将数据导入到从库中
步骤三:主库开启binlog日志
步骤四:检查主从两个库的server_id和server_uuid不能相同
步骤五:主库创建主从数据同步的用户信息
步骤六:执行命令建立主从关系(从库操作)
步骤七:执行命令启动从库
补充:从库清除GTID功能
主从复制之GTID搭建方式
表示人为主动方式将一个从库进行配置,使从库可以按照指定的时间延时后,再进行和主库完成相应数据信息同步;
概念
利用延时从库同步功能,主要是对逻辑原因造成的数据损坏进行弥补修复,从而避免全备数据恢复业务产生的代价较高问题;
当出现逻辑损坏操作时,可以利用延时从库的延时同步特性,将异常操作不做同步,将从库未做破坏的数据信息恢复到主库中;
作用
步骤一:正常建立主从关系
stop slave;#单位秒change master to master_delay=300;start slave;
步骤二:从库执行命令
步骤三:检查是否配置成功
搭建流程
stop slave;#单位秒change master to master_delay=0;start slave;
取消延时从库
主从复制之延时从库
当在企业数据库服务应用当中,如果在主库上有多个数据库业务,希望将不同的数据库业务同步到不同的从库上,实现数据库业务分离;为了满足以上需求,就可以利用过滤复制功能,将指定的数据信息复制到指定从库上,而不是全备方式同步数据;基于过滤复制功能,还是可以实现在主从同步数据信息时,排除指定库的数据信息不做主从同步操作;
概念介绍
利用binlog信息实现
实现原理
修改完成之后重启MySQL服务
实现流程
主库进行过滤(不推荐)
检查从库状态
在从库进行过滤(推荐)
主从复制之过滤复制
假设当主库上写入一个事务并提交成功,而从库尚未得到主库推送的binlog日志时,主库宕机了;从库的IO线程获取binlog没获取到,这导致从库和主库数据不一致也可能主库因磁盘损坏,内存故障等造成主库该事务的binlog丢失,此时从库就可能损失这个事务,从而造成主从不一致为了解决这个问题,数据库服务引入了半同步复制机制。
异步方式(默认)
介于异步复制和全同步复制之间;主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延时的网络中使用。
半同步方式
当主库执行完一个事务,所有的从库都执行了该事务才返回给客户端;写主库的时候,同步写从库,如果有多个从库,那么需要多个从库都成功,主库才能写成功;
全同步方式(增强半同步)
知识补充:主从同步复制的方式
步骤一:正常建立主从关系即可
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
临时安装方式
永久安装方式
show plugins;
检查是否安装成功
步骤二:主库安装半同步插件
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
步骤三:从库安装半同步插件
set global rpl_semi_sync_master_enabled=1;
方式一:临时设置
方式二:修改配置文件
主库启动
set global rpl_semi_sync_slave_enabled=1;
从库设置
步骤四:启动半同步功能
stop slave IO_THREAD;start slave IO_THREAD;
步骤五:从库重启IO线程
show status like 'rpl_semi_sync_slave_status';
从库检查
show status like 'rpl_semi_sync_master_status';
主库检查
步骤六:检查半同步功能是否生效
主库配置
从库配置
参考:https://blog.csdn.net/yaoxie1534/article/details/126259320
配置参数解释
补充:半同步永久生效配置
主从复制之半同步复制
参考主从复制之半同步复制
主从复制之增强半同步复制
利用clone plugin方式可以实现数据迁移备份恢复操作,同样也可以利用克隆技术实现主从数据同步操作,即完成快速构建从库;主要应用于运行一段时间的数据库,需要进行主从架构环境的构建时,可以实现主库数据信息的快速迁移;利用克隆复制备份恢复迁移数据信息,可以使备份恢复数据的效率提升;
当主库中有大量数据时,可以利用克隆技术快速构建主从环境
mysql -e \"INSTALL PLUGIN clone SONAME 'mysql_clone.so';create user test@'%' identified by '123456';grant backup_admin on *.* to 'test'@'%';\"
步骤一:主库安装克隆插件并创建用户信息
mysql -e \"INSTALL PLUGIN clone SONAME 'mysql_clone.so';create user test@'%' identified by '123456';grant clone_admin on *.* to 'test'@'%';set global clone_valid_donor_list='10.0.0.51:3306';\"
步骤二:从库安装克隆插件并创建用户信息
mysql -utest -p123456 -h10.0.0.52 -P3306 -e \"clone instance from test@'10.0.0.51':3306 identified by '123456';\"
步骤三:从库执行克隆操作
mysql -e \"create user repl@'10.0.0.%' identified with mysql_native_password by '123456';grant replication slave on *.* to repl@'10.0.0.%';\"
主库操作
mysql -e \
从库操作
步骤四:主从关系建立
mysql -e \"show slave status\\G\"|grep \"Running:\"
步骤五:检查主从关系是否建立成功
利用克隆方式建立主从
前提环境:多个主库,一个从库
步骤一:主从都需要开启GTID功能
步骤二:主库建立同步用户信息
步骤三:建立主从关系(从库操作)
主从多源复制监控信息查看
(MSR)主从复制之多源复制
MySQL主从复制搭建
收藏
0 条评论
回复 删除
下一页