当前位置: 首页 > news >正文

王瀚在日本做男优网站优化设计五年级下册语文答案

王瀚在日本做男优网站,优化设计五年级下册语文答案,营销网站设计公司有哪些,专业 网站设计公司价格前言 搭建参考:搭建Mysql主从复制 为什么要做主从复制? 做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。架构的扩展。业务量越来越大,I/O访问频…

前言

搭建参考:搭建Mysql主从复制

为什么要做主从复制?

  1. 做数据的热备,作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
  2. 架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。
  3. 读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。
  4. 使数据在地理位置上更接近用户,从而降低访问延迟。(游戏分西南大区 华南大区 北部大区等)

Mysql支持三种主要的二进制日志(binlog)格式

1、STATEMENT:基于语句的复制

记录导致数据更改的SQL语句。这种方式效率较高,因为它只需记录执行的语句,但是可能在某些情况下(如使用函数或非确定性操作)导致数据不一致。

  • 优点:效率高
  • 缺点:数据一致性存在问题
    例如:update xxx set time=now() where id=1

2、ROW:基于行的复制

记录实际更改的数据行。这种方式提供了最高的数据一致性,因为它是基于数据更改的,而不是执行的语句。适合所有情况,尤其是当复制环境中存在复杂的SQL或者函数操作时。

  • 优点:数据一致性强
  • 缺点:性能低
    例如:存在一个表,要更新其中10万条数据,那么就会造成十万条记录被写入binary.log日志,造成性能和空间的浪费。

3、MIXED:混合类型的复制

MySQL会根据情况自动选择STATEMENT或ROW模式来记录日志。对于不涉及非确定性函数的简单更新,它可能使用STATEMENT格式;而对于可能引起问题的语句,则使用ROW格式。

Mysql主从复制的实现方式

1、异步复制(Asynchronous Replication)

这是最基础的复制模式,主服务器提交事务后立即返回,而不等待从服务器确认。这种方式下,主从之间的数据延迟可能较大,但写入性能最高。

2、半同步复制(Semi-Synchronous Replication)

MySQL 5.5 引入了半同步复制,在MySQL 8.0 中进一步完善(增强半同步)。在半同步模式下,主服务器必须等待至少一个从服务器确认收到二进制日志事件后才能提交事务。这样保证了至少有一个副本有最新的数据,但可能会影响写入性能。
注:
MySQL 中的增强半同步配置具有一个参数rpl_semi_sync_master_timeout,它定义了主数据库等待备库确认的超时时间。如果超过这个超时时间,主数据库将切换到异步复制模式。

3、完全同步复制(Fully Synchronous Replication):

在某些配置中,可以实现所有从节点都确认后主节点才提交,但这通常会导致写性能显著下降。

主从复制的工作过程

  1. 主节点开启二进制日志,从节点开启中继日志。

  2. Master 节点将数据的改变记录成二进制日志(bin log) ,当Master上的数据发生改变时(增删改),则将其改变写入二进制日志中。

  3. 从节点会在一定时间间隔内对Master的二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/O线程请求主节点的二进制事件。(请求二进制数据)

  4. 同时主节点为每个I/O线程启动一个dump线程,用于通知和向其发送二进制日志,I/O线程接收到bin-log内容后,将内容保存至slave节点本地的中继日志(Relay log)中

  5. 从节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,即解析成sql 语句逐一执行,使得其数据和主节点的保持一致。最后I/O线程和SQL线程将进入睡眠状态,等待下一次被唤醒。
    在这里插入图片描述

1、三个线程

  • dump线程:由主数据库开启,用于读取主的二进制日志并传输给从数据库 。用于监听 I/O线程 请求将二进制日志更新的数据发送给slave的I/O 线程
  • io线程:由从数据库开启,用于接收二进制日志并保存为中继日志。
  • sql线程:由从数据库开启,用于将中继日志写入备数据库中完成主从复制。

2、二个日志

  • 中继日志(relay log)只在主从服务器架构的从服务器上存在。从服务器(slave)为了与主服务器(Master)保持一致,要从主服务器读取二进制日志的内容,并且把读取到的信息写入本地的日志文件中,这个从服务器本地的日志文件就叫中继日志。然后,从服务器读取中继日志,并根据中继日志的内容对从服务器的数据进行更新,完成主从服务器的数据同步。

搭建好主从服务器之后,中继日志默认会保存在从服务器的数据目录下。

  • 中继日志格式
    文件名的格式是:从服务器名 - relay-bin.序号。中继日志还有一个索引文件:从服务器名 - relay-bin.index,用来定位当前正在使用的中继日志。

主从数据库同步

1、主库数据导出

#所有表只读
FLUSH TABLES WITH READ LOCK; 
#导出所有数据库
mysqldump --all-databases --master-data -u 用户名 -p > dbdump.sql
#释放读锁
UNLOCK TABLES;

2、从库还原

#登录mysql,关闭IO线程
STOP REPLICA IO_THREAD;
#命令行执行导入操作
mysql -u root -p < dbdump.sql
#再次登录mysql,开启IO线程
START REPLICA IO_THREAD;

主从复制的问题及解决方案

Master宕机时,数据丢失问题

使用半同步复制方案,可以解决主库宕机造成的数据丢失问题。参考链接:半同步复制

读写分离方案

1、基于dynamic-datasource-spring-boot-starter实现

此插件基于Mybatis拦截实现,通过判断MappedStatement的SqlCommandType,如果为SELECT,则操作从库,否则操作主库。

@Bean
public MasterSlaveAutoRoutingPlugin masterSlaveAutoRoutingPlugin(){return new MasterSlaveAutoRoutingPlugin();
}
http://www.mnyf.cn/news/37802.html

相关文章:

  • 哪个网站做原创歌曲中国职业技能培训中心官网
  • wordpress写文章发失败西安seo优化系统
  • 动态网站难不难做公司网站设计
  • 新疆网站建设推广品牌营销策划包括哪些内容
  • 郑州招聘网站有哪些我想在百度上发布广告怎么发
  • 汕头网站推广seo百度动态排名软件
  • 浅析b2c电子商务网站的建设天津seo标准
  • 官网网站建设360优化大师app
  • 团购网站营销方案手机网页制作软件
  • 闵行建设网站软文代发价格
  • 手机活动网站模板百度广告平台电话
  • 为什么php做不了大网站app拉新推广接单平台
  • 计算机方面学什么专业好正规seo排名多少钱
  • 可以接单做网站的软件西点培训前十名学校
  • 在货源网站自己拿样 加盟 做代理 哪个比较好?地推拉新接单平台
  • 厦门市政府网站建设百度域名提交收录网址
  • 免费做cpa单页网站免费的外链平台
  • 建设工程消防备案凭证网站友情链接交换的意义是什么
  • 整站网站优化小程序平台
  • 网站建设公司电话咨询今日军事新闻头条
  • 网站建设 微信 appseo网站推广价格
  • wordpress页面模版调用分类目录整站优化系统厂家
  • 做阿里巴巴网站需要多少钱微指数官网
  • 医院网站开发方案深圳网站建设推广方案
  • 软装设计公司介绍大同优化推广
  • 哪家公司网站做的好站长之家查询网
  • 淘宝网站建设属于什么类目百度广告电话号码
  • 公安备案网站老是通不过做小程序要多少钱
  • 网站开发的心得与体会百度首页快速排名系统
  • 天津网站建设哪家好aso搜索排名优化