数据库主库与从库

数据库主库与从库,第1张

主从数据库的建立一般基于以下三个方面考虑:

1、容灾:备库在异地,主库不存在了,备库可以立即接管,无须恢复时间

2、负载均衡:主库做增删改,备库做查询,这样很多查询业务不占用主库资源

3、数据集中和分发:此种模式主要用于数据从分公司集中到总公司,或从总公司分发到分公司,前提是公司需要同步的数据很少,另外各公司间业务系统不是同一家公司开发的

同步功能主要通过数据库同步软件实现的,象ORACLE的DATAGUARD、QUEST的SHAREPLEX、沃信科技的PAC、ORACLE的GOLDEN GATE、迪思杰的REALSYNC

但是建议可以用沃信科技的产品,因为只有他们一家产品是安装到主备之外的第三台机器上的,不站用主库资源,其他产品必须安装到主库机器上,大家试用起来很不方便

MYSQL主从同步原理:

1) MYSQL主从同步是异步复制的过程,整个同步需要开启3线程,master上开启bin-log日志(记录数据库增、删除、修改、更新 *** 作);

2) Slave开启I/O线程来请求master服务器,请求指定bin-log中position点之后的内容;

3) Master端收到请求,Master端I/O线程响应请求,bin-log、position之后内容返给salve;

4) Slave将收到的内容存入relay-log中继日志中,生成master.info(记录master ip、bin-log、position、用户名密码);

5) Slave端SQL实时监测relay-log日志有更新,解析更新的sql内容,解析成sql语句,再salve库中执行;

6) 执行完毕之后,Slave端跟master端数据保持一致!

**MYSQL bin-log用途**

1) bin-log日志最大的功能记录数据库增、删、改、插入等 *** 作,记录用户 *** 作的SQL语句;

2) bin-log日志可以用数据增量备份、完整备份;

3) bin-log还可以主要主从复制+读写分离;

数据库主从同步是指将一个数据库中的数据实时或定期地复制到另一个或多个数据库中的过程,以实现数据的冗余备份、读写分离和负载均衡等功能。通常,主数据库负责写 *** 作(INSERT、UPDATE、DELETE),而从数据库负责读 *** 作(SELECT),这样可以大大提高数据库的并发性能和可用性。

主从同步的原理是通过将主数据库的写 *** 作(binlog)复制到从数据库的relay log,然后从数据库再对relay log进行重放(replay)来实现。这个过程中,从数据库的数据会与主数据库的数据进行同步,并保持一致。同步方式通常有以下几种:

基于binlog的主从同步:主数据库将写 *** 作记录到binlog中,从数据库读取binlog并对其进行重放,从而实现数据同步。

基于GTID的主从同步:GTID是全局事务标识符,主数据库和从数据库都会分配一个唯一的GTID,以便在数据同步过程中进行数据一致性检查。

半同步复制:主数据库将写 *** 作记录到binlog中,从数据库接收到binlog后,向主数据库发送ACK确认消息,主数据库接收到ACK消息后才会认为写 *** 作已经成功完成。

并行复制:主数据库的写 *** 作可以被并行复制到多个从数据库,以提高同步效率和可用性。

主从同步通常用于大型分布式系统、互联网应用程序和在线事务处理(OLTP)系统中,以提高系统的可用性、扩展性和容错性。常见的主流数据库软件,如MySQL、PostgreSQL、Oracle等都支持主从同步功能。

如果回答不够完整,请指出!

希望能帮上忙


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10651911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存