当前位置: 首页 > news >正文

mysql之二进制日志

Mysql—二进制日志(binlog) - 刘_love_田 - 博客园 (cnblogs.com)

二进制日志的主要用在两个场景:主从复制和数据恢复。
1、主从复制场景:在主从复制中,从库利用主库上的binlog进行重播,实现主从同步。在 Master 主端开启Binlog,将Binlog发送到各个 Slave 从端,Slave 从端重放 Binlog 从而达到主从数据一致。
2、数据恢复场景:用于数据库的基于时间点的还原。通过使用 mysqlbinlog 工具来恢复数据。
3、日志审计场景:用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入攻击。

熟悉MYSQL数据库,例如:二进制安装部署,DML、DCL、DDL语句、事务、日志。
performance性能 ,执行、表演。

MYSQL注入攻击:
用户(黑客)对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
SQL注入攻击属于数据库安全攻击手段之一,可以通过数据库安全防护技术实现有效防护,数据库安全防护技术包括:数据库漏扫、数据库加密、数据库防火墙、数据脱敏、数据库安全审计系统。
SQL注入攻击会导致的数据库安全风险包括:刷库、拖库、撞库。
sql注入是在浏览器输入url中传入的时候注入。

什么时候会产生二进制日志?
binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。

二进制日志不是存储引擎管理的,是MySQL内部的相关线程去完成。

二进制日志保存下来有2个过程:
flush:将二进制日志写到binlog_buffer里
sync:将binlog_buffer里的内容刷盘到disk里binlog file

二进制的作用:
1.恢复数据(增量)
2.主从复制需要使用
一个二进制日志文件是否记录了整个mysql进程里所有的库的操作?
数据写入的过程。二进制日志刷盘时机:是指啥时候,通过什么策略将内存日志写入磁盘中。
sync_binlog=[N]: 表示写缓冲多少次,刷一次盘。默认值为0。取值是 0、1 和 N 三种值。
binlog_cache_size: 二进制日志缓存部分的大小,默认值32k。设置过大,会造成内存浪费。设置过小,会频繁将缓冲日志写入临时文件。
sync_binlog=0: 表示刷新binlog时间点由操作系统自身来决定,操作系统自身会每隔一段时间就会刷新缓存数据到磁盘,这个性能最好。
sync_binlog=1: 表示每次事务提交都要调用fsync(),刷新binlog写入到磁盘。
sync_binlog=N: 表示 N个事务提交,才会调用 fsync()进行一次binlog刷新,写入磁盘。
先写日志在写数据。

MySQL的刷盘时机为1(默认)
root@(none) 15:28 mysql>show variables like ‘sync_binlog’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| sync_binlog | 1 |
±--------------±------+
1 row in set (0.01 sec)

查看当前使用的二进制日志
root@(none) 16:28 mysql>show binary logs;
ERROR 1381 (HY000): You are not using binary logging
root@(none) 16:30 mysql>show master logs;
ERROR 1381 (HY000): You are not using binary logging

========redo日志
先redo后undo,
redo存放位置: 放在数据目录下

innodb 存储引擎产生的日志:
redo log:记录的是脏数据的变化–》buffer pool里的
作用:
MySQL意外宕机重启也不要紧。只要在重启时解析redo log中的事务而后重放一遍。将Buffer Pool中的缓存页重作成脏页。后续再在合适的时机将该脏页刷入磁盘便可。

undo log:记录某 数据 被修改 前 的值undo log:ibdata1
作用:方便回滚 rollback --》相当于做了一个快照(备份)

redo:解决事务commit不成功,重新redo
undo: 解决事务rollback,撤销。
1、redo和undo-checkpoint:日志文件的路径和名字
/data/mysql
ib_logfile0
ib_logfile1
2、undo存放位置:数据目录下/data/mysql
撞库:https://baike.baidu.com/pic/SQL%E6%B3%A8%E5%85%A5%E6%94%BB%E5%87%BB/4766224/0/72ccb777585a2158b051b9a9?fr=lemma&ct=single#aid=0&pic=72ccb777585a2158b051b9a9

redo:重新做
undo:不做
page 页:16k。

物理的:硬件的
磁盘对拷
逻辑的:软件的

dump 导出
tcpdump
mysqldump

http://www.dtcms.com/a/426752.html

相关文章:

  • 【完整源码+数据集+部署教程】染色体图像分割系统: yolov8-seg-KernelWarehouse
  • Docker MySQL 使用全流程
  • Visual Studio主题、字体、快捷键、开发环境设置,自用
  • 火山 19 混音伴音 接口
  • Bean精细化控制属性序列化反序列化
  • 前端权限模型——RBAC
  • 杭州知名网站建设公司电商网站建设好么
  • 不忘初心网站建设做网站的工具
  • VSCode实现字符串粘贴转义复制反转义
  • 第2章 三个小工具的编写(2)
  • 【DeepResearch】langgraph自主迭代研究能力的 AI 代理及分析
  • 专题:2025医药行业数智赋能与AI应用全景研究报告|附200+份报告PDF、数据仪表盘汇总下载
  • Alibaba Cloud Linux 3 +Docker 部署 ThinkPHP6 (宝塔环境)-问题篇
  • LeetCode 刷题【93. 复原 IP 地址】
  • Python类和对象----实例属性,类属性(这是我理解类和对象最透彻的一次!!)
  • 文档解析Logics-Parsing
  • 网站设计报价.doc网页端
  • IDEA中Add New Configuration找不到Tomcat
  • 学习笔记092——Windows如何将 jar 包启动设置成系统服务
  • React前端框架有哪些?
  • 文昌市建设局网站无锡工厂网站建设
  • 龙岗网站建设-信科网络深圳房地产论坛家在深圳
  • Ceph 分布式存储学习笔记(三):块存储和对象存储管理
  • Ubuntu22.4安装Samba服务器
  • 服务器安装Java与nginx与nacos
  • Navicat导入Excel至瀚高数据库
  • 网站的制作与调试微网站服务合同
  • JavaScript调试工具有哪些?常见问题与常用调试工具推荐
  • 网站项目建设策划方案超级外链发布
  • 使用 Lens连接阿里云k8s集群