预备知识

请先看mysql如何做到crash后无损恢复数据。了解下mysql是如何数据落地磁盘的。

binlog

事务执行时先把日志写到binlog cache,事务提交,binlog cache就将日志写到文件系统的page cache,这个操作叫做write。 然后等fsync来刷盘,持久化磁盘数据,这个操作叫做fsync。这2个操作是由一个叫做sync_binlog来控制的。sync_binlog=0 的时候,表示每次提交事务都只 write,不 fsync;

sync_binlog=1 的时候,表示每次提交事务都会执行 fsync;

sync_binlog=N(N>1) 的时候,表示每次提交事务都 write,但累积 N 个事务后才 fsync。

实际业务场景是100-1000,但是对于强数据安全的,可以设置为1,这个1就是双1中的1。

redolog

和前面的binlog差不多,事务执行的时候先把数据写入到redo log buffer里面,事务提交就开始写入到page cache里面,也就是write操作,第三步就是fsync操作,将文件系统缓存的page cache持久化到磁盘里面去。

为了控制 redo log 的写入策略,InnoDB 提供了 innodb_flush_log_at_trx_commit 参数,它有三种可能取值:设置为 0 的时候,表示每次事务提交时都只是把 redo log 留在 redo log buffer 中 ;

设置为 1 的时候,表示每次事务提交时都将 redo log 直接持久化到磁盘;

设置为 2 的时候,表示每次事务提交时都只是把 redo log 写到 page cache。

而这个1就是就是双一的最后一个1了

不仅仅如此,其实也没那么简单,比如redo log buffer快满了,怎么办,别的事务没提交怎么办,这些当然都是直接先写入磁盘处理。

后记

Mysql默认就是双一配置。

mysql最高安全级别双一_Mysql 双一配置保证数据0丢失相关推荐

  1. mysql选出重复的字段_mysql查询表里的重复数据方法:

    INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11') delete from hk_test  ...

  2. mysql 多实例 独立配置文件_mysql 5.7 配置多实例 — 独立配置文件方式

    使用独立配置文件来实现 mysql 的单机多实例 一下教程皆以已在 /usr/local 下安装了 mysql 为说明 我们将在原 3306 实例的基础上新建 3307 和 3308 两个实例 1.创 ...

  3. mysql函数 字符长度限制_MySQL中使用group_concat()函数数据字符过长报错的问题解决方法...

    最近在办公软件项目,在开发权限指标遇到一个问题: 我们系统的一些逻辑处理是用存储过程实现的,但是有一天客户反馈说权限指标分配报错,查了分配的权限数据牵扯到的数据权限基础资源,没有问题. 权限指标分配的 ...

  4. mysql完全备份 二进制日志_MySQL完全备份脚本:数据+二进制日志+备份日志

    1 #!/bin/bash2 #3 # Function:实现mysql完全备份4 # Notes:5 6 # 定义备份使用到的相关变量(需要根据用户实际环境做相应的修改)7 backup_data= ...

  5. Mysql数据库查询去除重复_mysql数据库如何去重复数据

    mysql数据库去重复数据的方法: 方法一:防止表中出现重复数据 当表中未添加数据时,可以在MySQL数据表中设置指定的字段为PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据 ...

  6. mysql双主双从_mysql双主双从

    l 主mysql上: # cp  /etc/my.cnf  /etc/my.cnf.bak # vi /etc/my.cnf log_bin=mysql-bin     //开启二进制日志 serve ...

  7. win2008MySQL双主_MySQL双主配置

    双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做的好处多. 1. 可以做灾备,其中一个坏了可以切换到 ...

  8. mysql如何保证数据不丢失_Mysql 是怎么保证数据不丢的

    binlog写盘状态.png 一.binlog的写入机制 binlog写入逻辑: 事务执行过程中.先写日志导binlog cache.事务提交时.再把binlog cache写入到binlog文件中. ...

  9. mysql外键无法删除_mysql外键无法删除数据的情况

    最近碰到一次在msyql主从删除数据,居然报错 delete from pt_game_server where id=2; ERROR 1451 (23000): Cannot delete or ...

最新文章

  1. Java中的浅拷贝与深拷贝
  2. hibernate mysql longblob_使用hibernate 插入mysql blob 字段 最大能插入多大的数据
  3. 全卷积神经网路【U-net项目实战】U-Net源码上实现自己数据集的分割任务
  4. linux 播放器系统,在Linux上安装和使用开源视频播放器MPlayer
  5. windows下如何启动redis
  6. 关于LBS坐标系与精度的问题
  7. Qt使用udp的Broadcast实现广播图片
  8. 还原oracle控制文件位置,oracle 11.2 控制文件还原
  9. (附源码)Flutter Demo
  10. java(8) HashMap源码
  11. 在竞赛中不断成长--(广油最帅的崽)行走的皮卡丘
  12. windows-API劫持(API-HOOK)
  13. 网上书店销售管理系统java_网上书店销售管理系统的设计与实现(JSP,SQLServer)
  14. cisco路由器RIP基础配置命令
  15. H.264 AVCC header
  16. 全选反选的逻辑和代码
  17. 如何制作独一无二的简历?
  18. 如何利用手机云控系统来体现
  19. rnnlm源码分析 六
  20. 网络营销实战课-文案实操案例

热门文章

  1. 电脑假死卡的动不了_电脑卡机动不了怎么解决 电脑突然卡死动不了如何处理...
  2. 阿里巴巴经典智力问题
  3. PAT_乙级1012
  4. [华为OD 004] 完美走位
  5. linux中cmd是什么文件格式,CMD 文件扩展名: 它是什么以及如何打开它?
  6. 问题条件数(Conditioning of a problem)
  7. pybullet中欧拉角姿态可视化及顺序记录(画机械臂末端坐标)
  8. JAVA.SE Socket网络编程
  9. mac之把打开终端设置快捷键为Ctrl+Alt+T
  10. 快手答题恢复账号6道题