MySQL主从同步详解

mysql主从同步工作过程

同步原理
Master
启用binlog日志
Slave
-Slave_IO:复制master主机 binlog日志文件里的SQL命令到本机的relay-log文件里.
-Slave_SQL:执行本机relay-log文件里的SQL语句,实现与Master数据一致.

构建思路
配置主服务器
–启用binlog日志,授权用户,查看binlog
配置从服务器
–设置server_id
–确保与主服务器数据一致
–指定主库信息
–启动slave程序
–查看状态信息

主从同步配置步骤

配置主服务器
1.修改主配置文件,启用binlog日志
vim /etc/my.cnf
log_bin=日志名 //启用binlog日志
server_id=id值 //指定服务器ID号
2.用户授权
grant replication slave on . to repluser@"%" identified by “123456”
3.查看日志信息
mysql > show master status;
配置从服务器
1.修改主配置文件my.cnf
–指定server_id 不允许与主库server_id相同
2.确保与主服务器数据一致
–在主服务器上备份数据,将备份文件拷贝给从服务器
–从服务器使用备份文件恢复数据
–在从服务器查看备份文件中的binlog日志信息
//主库备份数据,–master-data记录当前备份数据对应的日志信息
#mysqldump -uroot -p密码 --master-data 数据库名 > /allbak.sql
#scp /allbak.sql root@192.168.4.52:/root/
//从服务器恢复数据
#mysql -uroot -p密码 数据库名 < /root/allbak.sql
#vim /root/allbak.sql //查看binlog日志名及偏移量
3.配置从服务器-指定主服务器信息
mysql > change master to
-> master_host=“192.168.4.51”, //主库ip地址
-> master_user=“repluser”, //主库授权用户
-> master_password=“123qqq…A”, //授权用户密码
-> master_log_file=“mysql51-bin.000001”, //主库日志文件
-> master_log_pos=441; //日志偏移量
mysql > start slave; //启动slave进程
mysql > show slave status \G; //查看
确认IO线程,SQL线程都是Yes状态,
备注
1.Master信息会自动保存到/var/lib/mysql/master.info文件;
2.若更改主库信息时,应先执行stop slave;修改后,再执行start slave;
相关文件

文件名说明
master.info主库信息
relay-log.info中继日志信息
主机名-relay-bin.000001中继日志
主机名-relay-bin.index索引文件

主从同步模式

1.主从数据库搭建(一主一从)
见上述操作步骤;
2.主从数据库搭建(一主多从)
从服务器2配置与从服务器1的配置一样,重复操作一遍即可.
3.主从从数据库搭建

级联复制(cascade):是指从主场地复制过来的又从该场地再次复制到其他场地,即A场地把数据复制到B场地,B场地又把这些数据或其中部分数据再复制到其他场地

1.配置主服务器(192.168.4.53)
	1.1	启用binlog日志 vim /etc/my.cnf
		[mysqld]
			log_bin=master53
			server_id=53
		#systemctl restart mysqld
	1.2.用户授权
		mysql> grant replication slave on *.* to repluser@"%" identified by 	"123qqq...A";
2.配置从服务器(192.168.4.54)注意54应该是53的从,同时是55的主
	2.1修改配置文件 vim /etc/my.cnf
			server_id=54
			log_bin=master53
			log_slave_updates  		//允许级联复制
	2.2 用户授权
		mysql> grant replication slave on *.* to repluser@"%" identified by "123qqq...A";
	2.3 指定主库信息
		mysql> change master to master_host="192.168.4.53",
		-> master_user="repluser",
		-> master_password="123qqq...A",
		-> master_log_file="master53.000001",
		-> master_log_pos=154;
	2.4 启动slave进程
		mysql> start slave;
		mysql> show slave status \G;			
3.配置从服务器(192.168.4.55)
	3.1修改配置文件,只配置server_id号即可
	3.2指定主库信息
		mysql> change master to master_host="192.168.4.54",
		-> master_user="repluser",
		-> master_password="123qqq...A",
		-> master_log_file="",
		-> master_log_pos=;
		mysql> start slave;
		mysql> show slave status \G;		
4.主主数据库(互为主从)搭建
4.1 两台机器都需要编辑配置文件,设置server_id,log_bin="日志名"
4.2 两台机器都操作用户授权
4.3 互相指定主库信息
4.4 启动slave进程,查看状态
4.5 测试结果

复制模式

复制模式:从服务器把数据从主服务器同步到本机的工作模式.包括异步模式(默认),全同步模式,半同步模式.
异步复制: 主库执行完一次事务后,立即将结果返回给客户端,不关心从库是否已经接收并处理.
全同步复制: 主库执行完一次事务,且所有从库都执行了该事务后才将结果返回给客户端.
半同步复制: 介于异步复制和全同步复制之间.主库在执行完一次事务后,等待至少一个从库接收到信息并写入到relay log中才将结果返回给客户端.

模式配置
查看是否允许动态加载模块
mysql> show variables like “have_dynamic_loading”;

主服务器:
--加载插件:
mysql> install plugin rpl_semi_sync_master SONAME "semisync_master.so";
----查看: mysql> select plugin_name,plugin_status from information_schema.plugins where plugin_name like "%semi%"; 
--启动半同步复制
mysql> set global rpl_semi_sync_master_enabled=1;
----查看: mysql> show variables like "rpl_semi_sync_%_enabled";
--修改配置文件
vim /etc/my.cnf
[mysqld]
plugin-load=rpl_semi_sync_master=semisync_master.so rpl_semi_sync_master_enabled=1
从服务器:
--加载插件:
mysql> install plugin rpl_semi_sync_slave SONAME "semisync_slave.so";
----查看: mysql> select plugin_name,plugin_status from information_schema.plugins where plugin_name like "%semi%";
--启动半同步复制
set global rpl_semi_sync_slave_enable=1;
----查看:mysql> show variables like "rpl_semi_sync_%_enabled";
--修改配置文件
vim /etc/my.cnf
[mysqld]
plugin-load=rpl_semi_sync_slave=semisync_slave.so rpl_semi_sync_slave_enabled=1
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL主从同步是一种数据复制机制,用于将一个MySQL数据库实例中的数据自动复制到其他MySQL数据库实例,从而实现数据的备份、负载均衡和故障恢复等功能。 在主从同步中,一个MySQL实例被配置为主服务器(Master),而其他实例被配置为从服务器(Slave)。主服务器负责接收和处理客户端的写操作,然后将这些操作记录到二进制日志(Binary Log)。从服务器连接到主服务器,并通过读取主服务器的二进制日志来复制这些操作。从服务器将这些操作应用到自己的数据上,以保持与主服务器数据的一致性。 配置MySQL主从同步需要进行以下步骤: 1. 确保主服务器和从服务器之间可以互相通信。 2. 在主服务器上开启二进制日志功能,并配置二进制日志文件的位置和名称。 3. 在主服务器上创建一个用于复制的用户,并为该用户授予复制权限。 4. 在从服务器上配置复制参数,包括指定主服务器的IP地址、连接用户名和密码等。 5. 启动从服务器,并连接到主服务器进行复制。 6. 监控主从同步过程,确保数据的一致性和同步性。 需要注意的是,在配置主从同步时,需要考虑网络延迟、带宽和硬件性能等因素,以确保同步过程的效率和稳定性。另外,主从同步只能复制数据更改操作(如插入、更新、删除),而不能复制结构变更操作(如创建表、修改表结构)。如果需要同步结构变更,可以使用其他工具或方法来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值