百独托管7500 紫田网络超高转化播放器收cps[推荐]速盾CDN 免实名免备防屏蔽阿里云 爆款特卖9.9元封顶提升alexa、IP流量7Q5团队
【腾讯云】中小企福利专场【腾讯云】多款产品1折起高防 随时退换 好耶数据小飞国外网赚带你月入万元炎黄网络4H4G10M 99每月
香港带宽CN2/美国站群优惠中客数据中心 服务器租用联盟系统移动广告平台 中易企业专场腾讯云服务器2.5折九九数据 工信部正规资质
腾讯云新用户大礼包代金券高价收cpa注册量高价展示【腾讯云】2核2G/9.93起租服务器找45互联 随时退换阿里云 短信服务 验证秒达

[国内信息] 阿里云服务器2核2G低至49.68元/年 [复制链接]
查看:276612 | 回复:423

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8388
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2022-11-12 12:59:57 | 显示全部楼层 来自 中国河北衡水
同时,更多的责任意味着更复杂的管理逻辑,InnoDB中其实是把Undo当做一种数据来维护和使用的,也就是说,Undo Log日志本身也像其他的数据库数据一样
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8388
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2022-11-12 13:53:30 | 显示全部楼层 来自 中国河北衡水
这种Undo Record在代码中对应的是TRX_UNDO_INSERT_REC类型。不同于Update类型的Undo Record,Insert Undo Record仅仅是为了可能的事务回滚准备的,
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8388
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2022-11-12 15:51:33 | 显示全部楼层 来自 中国河北衡水
其中Undo Number是Undo的一个递增编号,Table ID用来表示是哪张表的修改。下面一组Key Fields的长度不定,因为对应表的主键可能由多个field组成
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8388
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2022-11-13 16:14:26 | 显示全部楼层 来自 中国河北衡水
trx_undo_create中会轮询选择当前Rollback Segment中可用的Slot,也是就值FIL_NUL的Slot,申请新的Undo Page,初始化Undo Page Header,Undo Segment Header等信息,创建新的trx_undo_t内存结构并挂到trx_rseg_t的对应List中。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8388
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2022-11-14 16:37:57 | 显示全部楼层 来自 中国河北衡水
如数据库故障恢复机制的前世今生中讲过的ARIES过程,Crash Recovery的过程中会先重放所有的Redo Log,整个Undo的磁盘组织结构,也会作为一种数据类型也会通过上面讲到的这些Redo类型的重放恢复出来。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8388
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2022-11-16 09:08:59 | 显示全部楼层 来自 中国河北衡水
数据库故障恢复机制的前世今生中提到过,Undo Log用来记录每次修改之前的历史值,配合Redo Log用于故障恢复。这也就是InnoDB中Undo Log的第一个作用:
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8388
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2022-11-16 20:33:56 | 显示全部楼层 来自 中国河北衡水
每个事务其实会修改一组的Record,对应的也就会产生一组Undo Record,这些Undo Record收尾相连就组成了这个事务的Undo Log。除了一个个的Undo Record之外,还在开头增加了一个Undo Log Header来记录一些必要的控制信息,因此,一个Undo Log的结构如下所示:
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8388
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2022-11-17 08:59:50 | 显示全部楼层 来自 中国河北衡水
每当InnoDB中需要修改某个Record时,都会将其历史版本写入一个Undo Log中,对应的Undo Record是Update类型。当插入新的Record时,还没有一个历史版本,但为了方便事务回滚时做逆向(Delete)操作,这里还是会写入一个Insert类型的Undo Record。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8388
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2022-11-17 09:37:06 | 显示全部楼层 来自 中国河北衡水
这种Undo Record在代码中对应的是TRX_UNDO_INSERT_REC类型。不同于Update类型的Undo Record,Insert Undo Record仅仅是为了可能的事务回滚准备的,并不在MVCC功能中承担作用。因此只需要记录对应Record的Key,供回滚时查找Record位置即可。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

141

主题

9万

帖子

1030

积分

落伍者(两全齐美)

Rank: 2

贡献
8388
鲜花
24
注册时间
2008-10-11

落伍者落伍手机绑定

 楼主| 发表于 2022-11-18 10:13:33 | 显示全部楼层 来自 中国河北衡水
Rollback Segment Header是按需分配的,其中包含1024个Slot,每个Slot占四个字节,指向一个Undo Segment的First Page。
免费领取2000元阿里云代金券 https://www.aliyun.com/minisite/goods?userCode=2a7uv47d
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

论坛客服/商务合作/投诉举报:2171544 (QQ)
落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
© 2001-2014

浙公网安备 33060302000191号

浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

  落伍法律顾问: ITlaw-庄毅雄

手机版|找回帐号|不能发帖?|Archiver|落伍者

GMT+8, 2024-11-24 10:55 , Processed in 0.087585 second(s), 26 queries , Gzip On.

返回顶部