#万答10:mysqldump 是如何实现一致性备份的

DNN系统host密码丢失的恢复与安全强化方案 在.NET技术栈中,身份认证系统的密码管理是系统安全的核心环节。DotNetNuke作为经典的开源CMS框架,采用RFC2898派生密钥算法实现密码加密存储,涉及SHA-256哈希和盐值机制。当出现host管理员密码丢失等紧急情况时,可通过数据库字段替换或权限提升两种技术方案恢复访问权限,其中关键要确保Password与PasswordSalt字段的同步更新。对于企业级应用,建议结合自动化备份脚本和双因素认证等安全实践,同时注意在集群环境中同步缓存更新。本文以DNN密码恢复为切入点,详细解析了数据库加密原理 阅读详情

万答10:mysqldump 是如何实现一致性备份的

实验场景

MySQL 8.0.25 InnoDB

实验步骤:

先开启 general_log 观察导出执行过程的变化

set global general_log=ON;

mysqldump 关键参数说明:

--single-transaction 参数说明:

将隔离级别设为 REPEATABLE READ , 并开启一个只读事务,该事务中会进行一致性快照读,这个选项对InnoDB的数据表有效,但是不能保证MyISAM表和MEMORY表的数据一致性,dump 操作期间会先关闭所有打开的表,并产生FTWRL锁 ,然后快速释放FTWRL锁。

general_log 日志显示如下:

FLUSH /*!40101 LOCAL */ TABLES
FLUSH TABLES WITH READ LOCK
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */

如果这时候当前的数据库已经有表锁,那么dump操作会被堵塞,直到先前的表锁被释放后继续执行;或者超过锁定时间 lock_wait_timeout 后退出。

下面是先模拟执行了 LOCK TABLES t_user READ; 操作后,dump操作被堵塞的情况。

(Sun Nov 21 06:42:07 2021)[root@GreatSQL][(none)]>show processlist;
+----+-----------------+-----------+------+---------+-------+-------------------------+--------------------------------+----------+-----------+---------------+
| Id | User            | Host      | db   | Command | Time  | State                   | Info                           | Time_ms  | Rows_sent | Rows_examined |
+----+-----------------+-----------+------+---------+-------+-------------------------+--------------------------------+----------+-----------+---------------+
|  5 | event_scheduler | localhost | NULL | Daemon  | 77523 | Waiting on empty queue  | NULL                           | 77523235 |         0 |             0 |
| 11 | root            | localhost | test | Sleep   |   266 |                         | NULL                           |   266664 |         0 |             0 |
| 14 | root            | localhost | NULL | Query   |   263 | Waiting for table flush | FLUSH /*!40101 LOCAL */ TABLES |   263751 |         0 |             0 |
| 17 | root            | localhost | NULL | Query   |     0 | init                    | show processlist               |        0 |         0 |             0 |
+----+-----------------+-----------+------+---------+-------+-------------------------+--------------------------------+----------+-----------+---------------+
4 rows in set (0.00 sec)

--master_data=1|2 参数说明:

执行 show master status\G; 获取binlog文件和position值,区别在于参数设置为2,导出的内容被注释了。 general_log日志显示如下:

正常备份流程图解

  • 正常备份流程图解

没有加 --single-transaction 和 --master_data 参数执行流程

file

  • 加了--single-transaction 和 --master_data 参数执行流程

file

推荐延伸阅读:

Enjoy GreatSQL :)

文章推荐:

技术分享 | MGR最佳实践(MGR Best Practice) https://mp.weixin.qq.com/s/66u5K7a9u8GcE2KPn4kCaA

技术分享 | 万里数据库MGR Bug修复之路 https://mp.weixin.qq.com/s/IavpeP93haOKVBt7eO8luQ

Macos系统编译percona及部分函数在Macos系统上运算差异 https://mp.weixin.qq.com/s/jAbwicbRc1nQ0f2cIa_2nQ

技术分享 | 利用systemd管理MySQL单机多实例 https://mp.weixin.qq.com/s/iJjXwd0z1a6isUJtuAAHtQ

产品 | GreatSQL,打造更好的MGR生态 https://mp.weixin.qq.com/s/ByAjPOwHIwEPFtwC5jA28Q

产品 | GreatSQL MGR优化参考 https://mp.weixin.qq.com/s/5mL_ERRIjpdOuONian8_Ow

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

Gitee: https://gitee.com/GreatSQL/GreatSQL

GitHub: https://github.com/GreatSQL/GreatSQL

微信&QQ群:

可扫码添加GreatSQL社区助手微信好友,发送验证信息“加群”加入GreatSQL/MGR交流微信群,亦可直接扫码加入GreatSQL/MGR交流QQ群。

file

本文由博客一文多发平台 OpenWrite 发布!

Claude Opus成本优化实战:Effort控制与Fast模式配置指南 在大模型API调用中,成本控制与性能优化是开发者面临的核心工程挑战。通过理解模型推理的原理,我们可以利用其内置的调控参数,在保证输出质量的前提下显著降低使用成本。Effort控制参数通过调节模型内部计算资源的分配策略,直接影响推理链的深度与生成质量;而Fast模式则优化了解码路径,提升了响应速度。这两项技术的核心价值在于,它们允许开发者根据任务复杂度进行精细化调控,实现成本与效果的平衡。在代码生成、数据格式化等确定性高的应用场景中,合理配置低Effort与Fast模式,可将月度API成本降低至原来的三分之一 阅读详情

相关推荐

个人信息保护合规审计人员(高级)能力考核试卷+面试模拟

《个人信息保护合规审计考试与面试指南》 摘要:本文提供个人信息保护合规审计考试及面试的全面指导。考试采用闭卷笔试形式,满分100分,合格线75分,时长120分钟,包含单选、多选、判断题及综合案例分析题。内容涵盖《个人信息保护法》核心条款、审计程序、风险评估等实务要点。面试环节采用情景模拟方式,重点考察应试者在压力下处理审计独立性、客户关系与监管要求的平衡能力,以及应对数据泄露等突发事件的处置流程。案例题聚焦大型互联网平台的数据收集、共享、跨境传输等高风险环节的合规审计,要求设计完整的审计方案框架。面试评分标

qq_41525079的博客 1143

mysqldump数据库备份原理

2021-02-08T18:49:14.721338+08:00 3631 Connect root@localhost on using Socket 2021-02-08T18:49:14.721621+08:00 3631 Query /*!40100 SET @@SQL_MODE='' */ 2021-02-08T18:49:14.721780+08:00 3631 Query /*!40103 SET TIME_ZONE='+0

liu379702831的博客 1313

Geant4 学习笔记(一):实现multi-thread多线程

简单修改实现Geant4多线程

weixin_52417815的博客 6084

MySQL备份

MySQL备份整理备份类别逻辑备份mysqldumpmysqlpumpmydumper物理备份xtrabackup 备份类别 MySQL 备份大致可以分为冷备与热备,冷备是指备份数据文件,需要停机(备份Datadir目录下的所有文件)。 热备,是指在线备份,对应用几乎没有影响,不需要停机,目前生产主要使用备份方案。 热备又可以分为逻辑备份,物理备份; 逻辑备份工具:mysqldump/mysqlpump, mydumper 物理备份工具:xtrabackup,ibbackup(官方,收费) 逻辑备份 mys

qq_40801599的博客 455

[图解]SysML与EA实战:住宅安全系统接口块设计全解析

本文详细解析了使用SysML和EA工具进行住宅安全系统接口块设计的全流程。从系统上下文图入门到接口块实战技巧,涵盖块定义图与内部块图的视角转换,以及多图协同建模方法论。特别分享EA工具的高效操作指南和常见问题避坑建议,帮助工程师掌握精确信号定义、端口方向设置等关键技能,提升安防系统设计效率。

weixin_29234509的博客 333

优化QT QML中RTSP流播放延迟:海康摄像头实时监控实践

本文详细探讨了在QT QML中优化海康摄像头RTSP流播放延迟的实践方法。通过调整MediaPlayer缓冲策略、硬件加速、解码器优选等五大技巧,显著降低实时监控场景下的延迟问题。文章还提供了海康摄像头RTSP连接实战代码和避坑指南,帮助开发者快速实现高效流媒体播放。

weixin_28363123的博客 557

MySQL5.7 Waiting FOR TABLE FLUSH

系统不能使用,数据库上99%的会话等待是Waiting FOR TABLE FLUSH,找到等待时间最长的会话kill,系统恢复正常。是什么原因造成的呢? 日志分析: Time: 2018-12-15T10:45:50.116723+08:00 User@Host: gg[gg] @ [10.92.221.131] Id: 9435656 Query_time: 58475.741298 L...

关注系统性能调优 1719

全国各省份影像下载地址(11级别)

cesium中使用urltemplate加载,leaflet中使用tile加载,具体加载有问题可以给我留言。

资深三维GIS开发 5148

MySql重置root密码和jmeter

su-root 切换为管理员。

sharesb的博客 1452

NVIDIA Jetson之远程控制软件NoMachine安装使用

参考:https://www.bilibili.com/video/BV1cg4y1i776?t=12 0 背景

ZONGXP的博客 1万+

美团mtgsig 1.2算法分析

mtgsig1.2的一些算法总结

记录一些web逆向的过程 3502

万答17,AWS RDS怎么搭建本地同步库

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。背景说明AWS RDS 权限受限,使用 mysqldump 的时候无法添加 --master_data 参...

老叶茶馆 689

IPOP 使用详解 (附IPOP工具包)

IP 地址动态绑定功能;路由信息查询和配置功能;MAC 地址信息查询和修改功能;MAC 、主机信息扫描功能;本机网络报文统计功能;本机端口列表、远程端口扫描功能;端口映射功能;网卡流量统计功能;本机 IP 报文捕获和发送功能;终端控制功能(支持 telnet 、 dos、 ssh、 sftp 、ftp、com 等协议);TCL 脚本支持;多种服务功能( tcp/udp/ping/telnet/ftp/tftp/web/team/syslog/smtp );

悦分享 1万+

mysqldump备份时导致所有数据表锁定,无法提供服务

在备份的过程中每次只取一行数据,而不是把所有行都缓存到内存里,这主要考虑了服务器内存限制,以防备份失败。这在生产环境下是不可接受的,而且这才20+G,后续数据库Size会越来越大,备份的时间必然也越长。直接使用上述语句备份数据库,存在的问题是:备份完成之前,会把所有的表锁住,导致无法写入。这样,在备份时并不会对数据表加锁,线上业务完全不受影响,经测试,备份耗时基本不变。那么,有没有一种方法在完成备份的同时并不锁定表呢?,这样,便可以在备份库的时候并不锁定数据表。这个参数备份大型数据库时,可考虑和。

Heartsuit的博客 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

mysqldump的内部实现原理

我们可以通过打开general log,查看mysqldump全库备份时执行的命令来了解mysqldump背后的原理。 打开general log mysql> set global general_l...

cjh81378066的博客 297

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Mysql数据库逻辑备份-mysqldump参数

上面只是展示了对不同引擎来讲加的参数只是为了让数据保持一致性,但在备份中业务并没有停止,时刻可能有新的数据进行写入,为了让我们知道备份时是备份了哪些数据,或者截止到那个指针(二进制日志),我们可以再加入 --master-data参数,备份好的sql文件就会记录从备份截至到哪个指针,指针之后的数据更新我们可以通过二进制日志进行恢复。②、导出单个库:加--lock-tables参数,这会在备份开始的时候锁该库的所有表,其他session可以读但不能更新该库的所有表,该库的数据一致;

oradbm的博客 9530

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

已有的MGR集群上配置InnoDB Cluster

1. 环境信息 ip 主机名 mysqld端口 replication通信端口 安装的软件 备注 10.45.53.31 rac2 3306 33061 mysql,mysql-shell mgr多主集群 172.16.23.170 .

Du.的博客 719

MySQL 怎么保证备份数据的一致性?

为了数据安全,数据库需要定期备份,这个大家都懂,然而数据库备份的时候,最怕写操作,因为这个最容易导致数据的不一致,松哥举一个简单的例子大家来看下: 假设在数据库备份期间,有用户下单了,那么可能会出现如下问题: 库存表扣库存。 备份库存表。 备份订单表数据。 订单表添加订单。 用户表扣除账户余额。 备份用户表。 如果按照上面这样的逻辑执行,备份文件中的订单表就少了一条记录。将来如果使用这个备份文件恢复数据的话,就少了一条记录,造成数据不一致。 为了解决这个问题,MySQL 中提供了很多方案,我们来逐一进行

江南一点雨的专栏 8348

mysqldump一致性热备原理剖析

来源:公众号腾讯游戏存储与计算技术引言在日常数据库运维中,经常要对数据库进行热备。热备的一个关键点是保证数据的一致性,即在备份进行时发生的数据更改,不会在备份结果中出现。mysqldum...

老叶茶馆 939

mysqldump

引言 先说说写这篇文章的目的:主要就是最近在学一些MySQL原理性的问题,顺便把一些常用的工具也熟悉下,对工具不能只停留在 “ 用 ” 。希望读完这篇文章,你不仅仅是停留在会使用mysqldump。 文章目录引言前言 前言 本篇文章主要从mysqldump工作原理 ...

qq_42315096的博客 157

【MySQL】锁 —— 全局锁 —— 一致性数据备份

加上这个参数,实际上MySQL的InnoDB引擎的底层实际上是通过快照读来实现的。在InnoDB引擎中,我们可以在备份时加上参数。参数来完成不加锁的一致性数据备份。

qq_39921135的博客 457

MySQL数据库在线备份保证数据一致性

mysql数据在线备份,使用--single-transaction参数

oJieSi的专栏 520

MySQL Mysqldump 一致性备份与大数据库备份 与 PG MYSQL 到底谁是NO.1

这开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内,可以解决你的问题。加群请联系 liuaustin3 ,(共1830人左右 1 + 2 + 3 + 4 +5) 4群(340+ 到350将关闭自由申请),另欢迎 OpenGauss 的技术人员加入。我其实是想...

sql server的专栏 1246

START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */

在使用mysqldump 进行数据库备份的时候,如果我们指定了--single-transaction参数。我们在generallog中会有如下输出: 160203 9:51:59 63 Connect root@localhost on 63 Connect Access denied for user 'root'@'localhost'

渔夫数据库笔记 3047

mysqldump备份时的数据一致性问题

作者:魏新平,知数堂优秀校友。 在日常运维当中,经常会用到mysqldump。使用mysqldump导出数据的时候,我们最关心的问题之一就是表的一致性。简单的说就是所有表是不是同...

老叶茶馆 3348

深入理解mysqldump原理 --single-transaction --lock-all-tables --master-data

在mysqldump过程中,之前其实一直不是很理解为什么加了--single-transaction就能保证innodb的数据是完全一致的,而myisam引擎无法保证,必须加--lock-all-tables,前段时间抽空详细地查看了整个mysqldump过程。 理解master-data和--dump-slave --master-data=2表示在dump过程中记录主库的binlog和po

cug_jiang126com的专栏 5万+
上一篇: 在Ubuntu下编译安装GreatSQL
下一篇: 万答#11,MySQL中char与varchar有什么区别
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值