mysql最高安全级别双一_Mysql 双一配置保证数据0丢失
预备知识
请先看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丢失相关推荐
- mysql选出重复的字段_mysql查询表里的重复数据方法:
INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11') delete from hk_test ...
- mysql 多实例 独立配置文件_mysql 5.7 配置多实例 — 独立配置文件方式
使用独立配置文件来实现 mysql 的单机多实例 一下教程皆以已在 /usr/local 下安装了 mysql 为说明 我们将在原 3306 实例的基础上新建 3307 和 3308 两个实例 1.创 ...
- mysql函数 字符长度限制_MySQL中使用group_concat()函数数据字符过长报错的问题解决方法...
最近在办公软件项目,在开发权限指标遇到一个问题: 我们系统的一些逻辑处理是用存储过程实现的,但是有一天客户反馈说权限指标分配报错,查了分配的权限数据牵扯到的数据权限基础资源,没有问题. 权限指标分配的 ...
- mysql完全备份 二进制日志_MySQL完全备份脚本:数据+二进制日志+备份日志
1 #!/bin/bash2 #3 # Function:实现mysql完全备份4 # Notes:5 6 # 定义备份使用到的相关变量(需要根据用户实际环境做相应的修改)7 backup_data= ...
- Mysql数据库查询去除重复_mysql数据库如何去重复数据
mysql数据库去重复数据的方法: 方法一:防止表中出现重复数据 当表中未添加数据时,可以在MySQL数据表中设置指定的字段为PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据 ...
- mysql双主双从_mysql双主双从
l 主mysql上: # cp /etc/my.cnf /etc/my.cnf.bak # vi /etc/my.cnf log_bin=mysql-bin //开启二进制日志 serve ...
- win2008MySQL双主_MySQL双主配置
双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做的好处多. 1. 可以做灾备,其中一个坏了可以切换到 ...
- mysql如何保证数据不丢失_Mysql 是怎么保证数据不丢的
binlog写盘状态.png 一.binlog的写入机制 binlog写入逻辑: 事务执行过程中.先写日志导binlog cache.事务提交时.再把binlog cache写入到binlog文件中. ...
- mysql外键无法删除_mysql外键无法删除数据的情况
最近碰到一次在msyql主从删除数据,居然报错 delete from pt_game_server where id=2; ERROR 1451 (23000): Cannot delete or ...
最新文章
- Java中的浅拷贝与深拷贝
- hibernate mysql longblob_使用hibernate 插入mysql blob 字段 最大能插入多大的数据
- 全卷积神经网路【U-net项目实战】U-Net源码上实现自己数据集的分割任务
- linux 播放器系统,在Linux上安装和使用开源视频播放器MPlayer
- windows下如何启动redis
- 关于LBS坐标系与精度的问题
- Qt使用udp的Broadcast实现广播图片
- 还原oracle控制文件位置,oracle 11.2 控制文件还原
- (附源码)Flutter Demo
- java(8) HashMap源码
- 在竞赛中不断成长--(广油最帅的崽)行走的皮卡丘
- windows-API劫持(API-HOOK)
- 网上书店销售管理系统java_网上书店销售管理系统的设计与实现(JSP,SQLServer)
- cisco路由器RIP基础配置命令
- H.264 AVCC header
- 全选反选的逻辑和代码
- 如何制作独一无二的简历?
- 如何利用手机云控系统来体现
- rnnlm源码分析 六
- 网络营销实战课-文案实操案例
热门文章
- 电脑假死卡的动不了_电脑卡机动不了怎么解决 电脑突然卡死动不了如何处理...
- 阿里巴巴经典智力问题
- PAT_乙级1012
- [华为OD 004] 完美走位
- linux中cmd是什么文件格式,CMD 文件扩展名: 它是什么以及如何打开它?
- 问题条件数(Conditioning of a problem)
- pybullet中欧拉角姿态可视化及顺序记录(画机械臂末端坐标)
- JAVA.SE Socket网络编程
- mac之把打开终端设置快捷键为Ctrl+Alt+T
- 快手答题恢复账号6道题