mysql集群 博客园_mysql集群

本文详细介绍了MySQL主从复制的配置,包括主库和从库的配置选项,如binlog_format、expire_logs_days和server-id等,并解析了相关参数的作用,如slave_net_timeout和master_heartbeat_period。同时,讨论了主从复制的优点,如数据冗余和负载均衡,以及可能存在的延迟问题和解决方案。
摘要由CSDN通过智能技术生成

主库配置:

log-bin=mysql-bin-1    ##自动生成mysql-bin.000001格式的binlog文件,二进制日志必须开启。

max_binlog_size= 20M    #设置单个binlog日志文件大小

binlog_format=row    #mysql复制模式,三种SBR(基于sql语句复制)、RBR(基于行的复制)、MBR(混合模式复制)

expire_logs_days = 7    #自动清理binlog日志,只保留指定日期内的binglog日志

server-id=1    ##建立的主从库中,该id必须唯一。

binlog-do-db=db1  #指定需要同步的数据库

binlog-do-db=db2    #指定需要同步的数据库

从库配置:

log-bin=mysql-bin-2    #用于区分,开启二进制日志。

server_id = 2 #必须唯一。

从库操作:

##############开启/关闭同步。

start slave;

stop slave;

stop slave io_thread;

start slave io_thread;

stop slave sql_thread;

start slave sql_thread;    ##关闭/开启slave的sql同步进程

reset slave;

reset slave all;    ##清除master.info和relay-log等从库配置,使该库与原主从无关。

show slave status\G;

purge binary logs to 'log_name'|before 'date';    ##清理指定binlog日志

change master to master_host='',master_port='',master_user='',master_password='',master_log_file='', master_log_pos='';

##建立主从

load data from master;

set global sql_slave_skip_counter;

SET GLOBAL READ_ONLY = 0|1;    ##设置为1(on)表示开启只读,0(off)关闭只读

##与flush tables with read lock区别:root用户还可以写,其他用户不能。flush tables不会失效。

change master to

master_host='192.168.163.131',

master_port=3307,

master_user='rep',

master_password='rep',

master_auto_position=1,

MASTER_HEARTBEAT_PERIOD=2,

MASTER_CONNECT_RETRY=1,

MASTER_RETRY_COUNT=86400;

set global slave_net_timeout=8;

slave_net_timeout(全局变量):MySQL5.7.7之后,默认改成60秒。该参数定义了从库从主库获取数据等待的秒数,超过这个时间从库会主动退出读取,中断连接,并尝试重连。

master_heartbeat_period:复制心跳的周期。默认是slave_net_timeout的一半。Master在没有数据的时候,每master_heartbeat_period秒发送一个心跳包,这样 Slave 就能知道 Master 是不是还正常。

slave_net_timeout:是设置在多久没收到数据后认为网络超时,之后 Slave 的 IO 线程会重新连接 Master 。结合这两个设置就可以避免由于网络问题导致的复制延误。master_heartbeat_period 单位是秒,可以是个带上小数,如 10.5,最高精度为 1 毫秒。

重试策略:

备库过了slave-net-timeout秒还没有收到主库来的数据,它就会开始第一次重试。然后每过 master-connect-retry 秒,备库会再次尝试重连主库。直到重试了 master-retry-count 次,它才会放弃重试。如果重试的过程中,连上了主库,那么它认为当前主库是好的,又会开始 slave-net-timeout 秒的等待。 slave-net-timeout 的默认值是 60 秒, master-connect-retry 默认为 60 秒, master-retry-count 默认为 86400 次。也就是说,如果主库一分钟都没有任何数据变更发送过来,备库才会尝试重连主库。

这样,主库宕机之后,约8~10秒感知主库异常,Orchestrator开始切换。另外还需要注意的是,orch默认是用主机名来进行管理的,需要在mysql的配置文件里添加:report_host和report_port参数。

主从复制的优点:

主从复制的缺点,如何解决?:

1、复制延迟,

延迟复制就是将 Slaves 节点与 Master 节点保持指定时间的复制间隔。

,所谓的延迟 ,只是对 SQL_Thread

的线程的延迟。IO_Thread 主库发生的任何操作的日志都会同步到 slave,也就是说 IO_Thread 线程和主库是没有延迟的。只是

SQL_Thread 与主库有延迟。只是执行时间延迟,而不是读取 binlog 时间延迟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值