合理的从度设置参数

news/2024/9/12 11:09:39

环境:主库双1模式

一。单SQL线程

1.pos模式

1.1 position mode 模式(最安全)

master_info_repository   table

relay_log_info_repository table

recovery_relay_log   off

sync_master_info  1

sync_relay_log 1

sync_relay_log_info   默认1000

这个情况recovery_relay_log设置为off,异常重启后IO会从宕机前的位置继续拉取主库的binary log event,比如宕机的时候IO线程可能正在拉取某个事物的某个event,重启之后就需要拉取余下的event 写入到relay log,因此relay log 文件的完整性和slave_master_info表的信息的正确就非常重要。异常重启后SQL线程会从宕机前继续读取relay log进行应用,也需要保证relay log文件的完整性。那么sync_master_info和sync_relay_log都必须设置为1,虽然很安全,但是性能很差

1.2安全配置,性能较为优异

master_info_repository   table

relay_log_info_repository   table

recovery_relay_log   on

sync_master_info  默认10000

sync_relay_log    默认10000

sync_relay_log_info 默认10000

2.GTID AUTO_POSITION MODE模式

2.1 最安全配置,性能不佳

master_info_repository   table

relay_log_info_repository table

recovery_relay_log   off

sync_master_info  10000

sync_relay_log 1

sync_relay_log_info   默认1000

这种情况下recover_relay_log设置为off,虽然主库IO线程使用Retrieved_gtid_set和execute_gtid_set的并集进行确认binary log的拉取

但是异常重启后SQL线程会从宕机前的位置继续读取relay log进行应用,因此需要保证relay log 文件的完整,其次实例初始的时候通过relay log初始化Retrieved_gtid_set。因此这个情况下sync_relay_log必须设置为1

2.2 较为安全,性能优异

master_info_repository   table

relay_log_info_repository table

recovery_relay_log   on

sync_master_info  10000

sync_relay_log 10000

sync_relay_log_info   默认1000

 二。MTS模式

 

 

 

sync_binlog 参数
表示多少次事务提交后,MySQL调用文件系统 将 数据库的binlog 刷到磁盘上去。
默认值:0
sync_binlog=0
表示MySQL不控制binlog 刷到磁盘上去,由文件系统自己控制 刷到磁盘上去。
这时候的性能是最好的,但是风险也是最大的。一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失。
sync_binlog=1
最安全的方式,即使sync_binlog设置为1,出现崩溃时,也有可能表内容和binlog内容之间存在不一致性。
性能损耗最大
表示每次事务提交,MySQL都会把binlog刷到磁盘。
对于高并发事务的系统来说,"sync_binlog"设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多。所以很多MySQL DBA设置的sync_binlog并不是最安全的1,而是2或者是0。这样牺牲一定的一致性,可以获得更高的并发和性能。

innodb_flush_log_at_trx_commit 参数
抱怨Innodb比MyISAM慢 100倍?那么你大概是忘了调整这个值。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬 盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。
 


http://lihuaxi.xjx100.cn/news/1863225.html

相关文章

我没有那么孤独了

我没有那么孤独了 今天上午,我在实验室学习了一会之后仍然感觉到很孤独。于是,我去校园里面转了转,拍了很多照片,有同学们一起跳绳,有上太极拳课程的,还有很多游客来武大拍照。大家都好快乐呀。多么快乐的…

凌扬微 30V耐压 过压保护芯片、低内阻 可调电压或可调过流LY5800/LY5801/LY5901/LY5902

LY5800是一款低压侧过压保护芯片,内部集成 45 毫欧低内阻 NMOS 开关,有效降低输入电压压降。芯片最高输入耐压达 30V。LY5800 过压保护电压可通过外部 FB 分压电阻调节或者稳压管与电阻来调节。 特性 30V 输入耐压 4…

银行数字化产品方案

在互联网及金融科技公司快速发展的时代背景下,银行客户普遍都意识到了自己在客户体验、客户洞察、产品服务方面受到的来自互联网的挑战 。为了更好地面对各方面的挑战,传统的业务模式必须革新。传统银行都在积极进行数字化转型。同时,也要面对…

springboot慢性胃炎管理系统-计算机毕设 附源码 35541

SpringBoot慢性胃炎管理系统 摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,医疗行业当然也不例外。慢性胃炎管理系统是以实际运用为开发背景,运用软件工程…

PLS21Introduction to Database Management LibreOffice

PLS21Introduction to Database Management LibreOffice WeChat:yj4399_ Sina Visitor System

Reactor实战,创建一个简单的单线程Reactor(理解了就相当于理解了多线程的Reactor)

单线程Reactor package org.example.utils.echo.single;import java.io.IOException; import java.net.InetSocketAddress; import java.nio.channels.*; import java.util.Iterator; import java.util.Set;public class EchoServerReactor implements Runnable{Selector sele…

数据库系统原理与实践 笔记 #11

文章目录 数据库系统原理与实践 笔记 #11事务管理和并发控制与恢复事务概念转账的例子 事务ACID特性ACID特性事务原子性和持久性事务隔离性调度SQL中的事务定义 可串行化事务的简化视图冲突的指令冲突可串行化 可恢复性级联回滚无级联调度 数据库系统原理与实践 笔记 #11 事务…

Docker容器(一)概述

一、虚拟化概述 1.1引⼊虚拟化技术的必要性 服务器只有5%的时间是在⼯作的;在其它时间服务器都处于“休眠”状态. 虚拟化前 每台主机⼀个操作系统; 软硬件紧密结合; 在同⼀个主机上运⾏多个应⽤程序通常会遭遇冲突; 系统的资源利⽤率低; 硬件成本⾼昂⽽且不够灵活…