IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 10.1 MySQL文件——二进制日志(bin log) -> 正文阅读

[大数据]10.1 MySQL文件——二进制日志(bin log)

bin log只会记录数据库更改的所有操作,即便操作没有对数据库产生变化也会记录。

bin log主要有以下三个作用:

  • 恢复:通过bin log可以将数据恢复到过去的某个时刻。
  • 复制:通过复制和执行bin log使一台远程的MySQL数据库与令一台MySQL数据库进行实时同步。
  • 审计:可以通过bin log中的信息进行审计,判断是否有对数据库进行注入的攻击。

bin log默认是不开启的,需要手动指定参数启动。

在my.inf主配置文件中直接添加三行即可开启bin log:

//第一个参数是打开binlog日志
log_bin=ON
//第二个参数是binlog日志的基本文件名,后面会追加标识来表示每一个文件
log_bin_basename=/var/lib/mysql/mysql-bin
//第三个参数指定的是binlog文件的索引文件,这个文件管理了所有的binlog文件的目录
log_bin_index=/var/lib/mysql/mysql-bin.index

//5.7及以上版本的话,重启mysql服务会报错,必须还要指定一个参数
server-id=123454

配置文件中的其他参数:

  • max_binlog_size:指定bin log文件的最大值,如果超过该值则产生新的bin log文件,后缀+1,并记录到.index文件。
  • binlog_cache_size:当使用InnoDB存储引擎时,所有未提交的bin log会被记录到一个缓存中,等该事务提交时会直接将缓存中的bin log写入bin log文件,该缓存的大小由binlog_cache_size控制,默认为32KB。
  • sync_binlog:默认bin log先写入缓存等提交事务再写入磁盘,当数据库所在操作系统宕机时会导致最后一部分数据没有写入bin log文件。sync_binlog=1表示采用同步写磁盘的方式,不适用缓存;sync_binlog=0是默认值,使用缓存。推荐设置成sync_binlog=1,但即便这样还会有个问题,bin log同步写入磁盘后,提交事务之前发生宕机,那么下次启动时事务被回滚,但是bin log已经记录了该事务,不能被回滚。这个问题可以通过参数innodb_support_xa设为1来解决,可以确保bin log和InnoDB存储引擎数据文件同步。
  • binlog-do-db:表示记录指定数据库的bin log,默认全部记录。
  • binlog-ignore-db:表示不记录指定数据库的bin log。
  • log-slave-update:表示将会从master数据库获得bin log写入到slave数据库。
  • binlog_format:可设置值为STATEMENT、ROW、MIXED
    • STATEMENT:记录逻辑SQL语句。在复制的情况下,如果在主服务器运行rand、uuid等函数或触发器等操作会造成主从服务器上表数据不一致。
    • ROW:记录表的更改情况。解决了STATEMENT格式在复制情况下数据不一致的问题。
    • MIXED:STATEMENT和ROW的混合格式,默认采用STATEMENT格式,在以下情况会使用ROW格式:
      1. 表的存储引擎为NDB
      2. 使用了临时表
      3. 使用了用户定义函数(UDF)
      4. 使用了INSERT DELAY 语句
      5. 使用了uuid()、user()、current_user()、found_rows()、row_count()等不确定函数。

注意:ROW格式记录的数据会远远大于STATEMENT格式记录的数据。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 11:06:45  更:2022-05-06 11:08:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:18:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码