mysql 二进制日志
1.日志类型
二进制日志记录了所有对mysql数据库的修改事件,包括增删改事件和对表结构的修改事件。
2.配置使用二进制日志
在my.ini 配置
log-bin=mysql-bin
3.二进制日志格式
基于段的日志格式
binlog_format=STATEMENT
记录了操作的sql语句。
优点:
日志记录量相对较小,节约磁盘及网络I/O,只对以一条记录修改或插入ROW格式所产生日量小于段产生的日志量。
缺点:
必须记录上下文信息,保证语句在从服务器上的执行结果和在主服务器上相同。
特定函数如UUID,USER()这样非确定性的函数无法复制。
可能造成mysql复制的主备服务器数据不一致,从而中断复制链路。
显示binlog 格式
show variables like 'binlog_format';
set session binlog_format=statement;
显示二进制日志
show binary logs;
//刷新日志
flush logs;
在命令行下执行:
mysqlbinlog ../data/mysql-bin.000003
基于行的日志格式
将my.ini 二进制格式修改为binlog_format=ROW
row 的优点
row格式可以避免MYSQL复制中出现主从不一致的问题,官方推荐这种格式。
同一个sql语句修改了10000条数据的情况下。基于段的日志只会记录这个SQL语句。基于行的日志会有10000条记录,分别记录每一行数据的修改。
1.是mysql主从复制更加安全。
2.对每一行数据修改比基于段的复制高效。
如果误操作修改了数据库中的数据,同时没有备份可以恢复时,我们就可以通过分析二进制日志,对日志中记录的数据修改操作做反向处理的方式来达到恢复数据的目的。
缺点:
记录日志量较大
binlog_row_image=[full,minimal,noblob]
full : 记录列的所有修改
minimal :只记录修改的列。
noblob :如果是text类型或clob字段,不记录 这些日志。
使用 mysqlbinlog -vv ../data/mysql-bin.000005 查看明细日志。
set session binlog_row_image=minimal
混合日志格式:
binlog_format=MIXED
特点:
根据sql语句由系统决定在记录端和基于行的日志格式中进行选择。
数据量大小由所执行的SQL决定。
如何选择二进制格式
建议
binlog_formart =mixed
or
binlog_format=row;
binlog_row_image=minimal;
4.复制方式:
1.基于SQL语句的复制(SBR)
优点:
生成日志量少,节约网络传输的ID.
并不要求对主从数据库的表定义完全相同。
相比于基于行的复制方式更为灵活。
缺点:
对于非确定事件,无法保证主从复制数据的一致性。
对于存储过程,触发器
2.基于行的复制(RBR)
优点:
可以应用于任何SQL的复制包括非确定性函数,存储过程等。
可以减少数据库锁的使用。
缺点:
要求主从数据库的表结构相同,否则就会中断复制。
5.复制工作方式
1.主服务器将变更写入二进制日志。
2.从读取主的二进制日志变更并写入到relay_log中。
基于日志点的复制,基于GTID的复制。
3.在从上重放relay_log中的日志。
基于SQL端的日志是在从库上重新执行记录的SQL。
基于行的日志则是在从库上直接应用对数据行的修改。
mysql 二进制日志相关推荐
- mysql二进制日志管理_MYSQL二进制日志管理脚本
MYSQL二进制日志管理脚本脚本原理是每小时对进行flush生成新的二进制日志,将二进制日志备份至NFS,并压缩存放:#!/bin/bash#Purpose:管理二进制日志,每小时刷新二进制日志,并将 ...
- mysql 二进制日志 解析c++_mysql二进制日志文件恢复数据库
二进制日志的文件的作用 mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句.如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所 ...
- mysql 二进制日志后缀数字最大为多少
之前看到mysql二进制日志后面会加一个以数字递增为结尾的后缀,一直在想当尾数到达999999后会发生什么情况,先查了一下官网,对后缀有这样一句介绍:The server creates binary ...
- mysql二进制日志内容说明_MySQL二进制日志相关问题详细说明
软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...
- 2.5.2 MySQL二进制日志介绍
MySQL二进制日志介绍 什么是 binary log 这个文件记录了mysql数据库所有的DDL和DML(除了数据查询语句 select)语句事件.用来记录数据库中发生的修改情况. 比如:数据的修改 ...
- mysql 二进制日志变化_MySQL运维之二进制日志
MySQL二进制日志里保存会造成或可能造成数据变化的SQL语句.通过二进制日志可以完成如实时异地容灾备份.读写分离.数据恢复等功能.下面,我们一起来看看Mysql二进制日志. 开启bin-log日志 ...
- mysql 二进制日志大小_mysql二进制日志。
mysql二进制日志: 命令行参数: --log-bin[=file_name] 文件名 --log-bin-index[=file]文件索引 --max_binlog_size 单个文件 ...
- mysql二进制日志的开启和使用
mysql二进制日志的开启和使用 二进制日志(BINLOG)记录了所有的ddl和dml语句,但不包括数据查询语句.语句以"事件"的形式保存,描述数据更改过程. 环境:win8 my ...
- 不属于mysql二进制日志相关的参数_MySQL二进制日志相关问题详解
本文出处: (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 今天无意中发现了一个云栖社区举行的MySQL"第一 ...
- mysql 二进制日志恢复
mysql开启二进制日志记录文件 # Binary Logging. log-bin=/data0/mysql/mybinlog.log sync_binlog=1 innodb_support_xa ...
最新文章
- hibernate和struts2实现分页功能
- java虚拟机内存比例,【Java虚拟机】堆内存分配策略总结
- 【机器学习基本理论】详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解
- 更多Java之行内容,需要看直播请关注微薄
- taskAffinity(Activity默认Application,Application默认包名,Task默认根Activity) singleInstance放入新栈
- Android内存泄漏的检测流程、捕捉以及分析
- kamailio 局域网无法连接
- Leetcode题目:Lowest Common Ancestor of a Binary Search Tree
- 解决 googel 无法直接跳转网页打开搜索结果
- html怎么截取部分图片,【原创】详解css用坐标来截取部分图片
- 教你快速学习PID控制原理
- 路由器的工作原理、超详细的路由器转发数据包的封装过程及华为配置静态和默认路由命令
- 2023年出入境政策-喜忧参半
- 【微信每日早安推送】每日天气推送
- 程序员专不专业,这些词汇拼写一看便知!
- 端口映射原理,公网和内网,NA
- 小程序源码:(自营)独家最新款带部分采集功能壁纸/头像/动态壁纸小程序上线超炫裂变超强支持投稿+视频教程
- 计算机硕士非全日制的有双证吗,双证非全日制太坑了?非全日制研究生有哪些优势?...
- TX2 刷机 安装 jetpack 卡在determining IP adress问题
- android 应用商店
热门文章
- The number of Oracle redo threads (2) is not the same as the number of checkpoint threads (1)
- 在symfony2项目中100%提升doctrine的性能
- ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项
- 如何启用漫游用户功能
- 面试官:说说Java中的信号量?Semaphore
- 你了解 Performance Timeline Level 2 吗?
- 使用Maven打包你的应用——maven-jar-plugin maven-assembly-plugin maven-shade-plugin
- 一个母婴电子商务网站贝贝网的大数据平台及机器学习实践【转】
- Android热修复升级探索——代码修复冷启动方案
- php基础:switch cass控制结构 代替if