首页 > 数据库 >数据库mysql主从复制

数据库mysql主从复制

时间:2022-10-27 10:31:08浏览次数:58  
标签:主从复制 writes mysql 操作 服务器 数据库


mysql主从复制是怎么工作的呢?说说各个线程具体做了什么吧

要实现MySQL的Replication,首先必须打开Master端的BinaryLog,因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。

看上去MySQL的Replication原理非常简单,总结一下:

*每个从仅可以设置一个主。

*主在执行sql之后,记录二进制log文件(bin-log)。

*从连接主,并从主获取binlog,存于本地relay-log,并从上次记住的位置起执行sql,一旦遇到错误则停止同步。

本回答由提问者推荐

请问:1,mysql主从复制是什么概念,什么场合下用,最好举例说明;

1主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是实时的业务数据库,从数据库的作用和使用场合一般有几个:

一是作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作;

二是可在从数据库作备份、数据统计等工作,这样不影响主数据库的性能;

2读写分离,是指读与写分别使用不同的数据库,当然一般是在不同服务器上的;在同一台服务器上的读写环境,估计只是用来测试吧。

一般读写的数据库环境配置为,一个写入的数据库,一个或多个读的数据库,各个数据库分别位于不同的服务器上,充分利用服务器性能和数据库性能;当然,其中会涉及到如何保证读写数据库的数据一致,这个就可以利用主从复制技术来完成。

一般应用场合为:业务吞吐量很大,读数据库(可简单理解为select语句的比例和影响)的负载较大;

官方的mysql-proxy就是一个实现了读写分离、负载均衡等多个功能的软件。

mysql主从复制,是从库是拉还是推

mysql的主从复制开启之后,从数据库会立马复制主数据库中的数据。 然后,对主数据库进行增,删,改操作之后,从数据库也会进行相同的操作。 不过,对从数据库进行增,删,改操作的话,对主数据库是没有任何影响的主从复制理论上支持无穷大的从库个数,实际情况下,受服务器带宽和读写能力的影响

请参考mysql官方手册的建议:

理论上,通过使用单个主服务器/多从服务器设置,可以通过添加更多的从服务器来扩充系统,直到用完网络带宽,或者你的更新负载已经增长到主服务器不能处理的点。

在获得的收益开始吃平之前,为了确定可以有多少从服务器,以及可以将你的站点的性能提高多少,需要知道查询模式,并且要通过基准测试并根据经验确定一个典型的主服务器和从服务器中的读取(每秒钟读取量,或者max_reads)吞吐量和写(max_writes)吞吐量的关系。通过一个假设的带有复制的系统,本例给出了一个非常简单的计算结果。

假设系统负载包括10%的写和90%的读取,并且我们通过基准测试确定max_reads是1200 –2 × max_writes。换句话说,如果没有写操作,系统每秒可以进行1,200次读取操作,平均写操作是平均读操作所用时间的两倍,并且关系是线性的。我们假定主服务器和每个从服务器具有相同的性能,并且我们有一个主服务器和n个从服务器。那么,对于每个服务器(主服务器或从服务器),我们有:

reads = 1200 – 2 × writes

reads = 9 × writes / (n + 1) (读取是分离的, 但是写入所有服务器)

9 × writes / (n + 1) + 2 × writes = 1200

writes = 1200 / (2 + 9/(n+1))

最后的等式表明了n个从服务器的最大写操作数,假设最大可能的读取速率是每分钟1,200次,读操作与写操作的比率是9。

如上分析可以得到下面的结论:

·如果n = 0(这表明没有复制),系统每秒可以处理大约1200/11 = 109个写操作。

·如果n = 1,每秒得到184个写操作。

·如果n = 8,每秒得到400个写操作。

·如果n = 17,每秒得到480个写操作。

mysql 的主从复制和主主复制的区别

最大区别是 主从是对主操作数据,从会实时同步数据。反之对从操作,主不会同步数据,还有可能造成数据紊乱,导致主从失效。 主主则是无论对那一台操作,另一个都会同步数据。一般用作高容灾方案属性改动一下:

server_id = 101 注意这个101是唯一标识你这个mysql服务器的,一般取你电脑ip的最后几位,以便好区分。

log_bin=mysql-bin 注意mysql-bin是一个存放二进制log文件的路径,我这里指定了一个mysql当前安装目录的mysql-bin文件夹

port=33063306是你设定的端口

标签:主从复制,writes,mysql,操作,服务器,数据库
From: https://blog.51cto.com/yetaotao/5800211

相关文章