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