整个过程初始化完成后的分布图

为了让图更加美观和好理解,我这里使用的是innodb_undo_tablespaces=2的情况下作图,也就是只有2个 undo tablespace的情况。其实4个也是同样的道理,因为rollback segment slot是轮询在表空间分配的。

640?wx_fmt=jpeg

undo phy5.jpg

最终,我们看到初始化完成后undo segment slot指向的都是FIL_NULL,及没有指向,当实际分配的时候这些slot就会指向我们的undo segment header。

同时我们可以看看undotablespace到底包含哪些类型块,使用自制的小工具读取如下:

./myblock undo001 -d|more(http://www.amjmh.com/v/)

current read blocks is : 0 --This Block is file space header blocks!
current read blocks is : 1 --This Block is insert buffer bitmap blocks!
current read blocks is : 2 --This Block is inode blocks!
current read blocks is : 3 --This Block is system blocks!
current read blocks is : 4 --This Block is system blocks!
current read blocks is : 5 --This Block is system blocks!
current read blocks is : 6 --This Block is system blocks!
current read blocks is : 7 --This Block is system blocks!
current read blocks is : 8 --This Block is system blocks!
current read blocks is : 9 --This Block is system blocks!
current read blocks is : 10 --This Block is system blocks!
current read blocks is : 11 --This Block is system blocks!
current read blocks is : 12 --This Block is system blocks!
current read blocks is : 13 --This Block is system blocks!
current read blocks is : 14 --This Block is system blocks!
current read blocks is : 15 --This Block is system blocks!
current read blocks is : 16 --This Block is system blocks!
current read blocks is : 17 --This Block is system blocks!
current read blocks is : 18 --This Block is system blocks!
current read blocks is : 19 --This Block is system blocks!
current read blocks is : 20 --This Block is system blocks!
current read blocks is : 21 --This Block is system blocks!
current read blocks is : 22 --This Block is system blocks!
current read blocks is : 23 --This Block is system blocks!
current read blocks is : 24 --This Block is system blocks!
current read blocks is : 25 --This Block is system blocks!
current read blocks is : 26 --This Block is system blocks!
current read blocks is : 27 --This Block is undo blocks!
current read blocks is : 28 --This Block is undo blocks!
current read blocks is : 29 --This Block is undo blocks!
current read blocks is : 30 --This Block is undo blocks!
current read blocks is : 31 --This Block is undo blocks!
current read blocks is : 32 --This Block is undo blocks!
current read blocks is : 33 --This Block is undo blocks!
current read blocks is : 34 --This Block is undo blocks!
current read blocks is : 35 --This Block is undo blocks!
current read blocks is : 36 --This Block is undo blocks!
current read blocks is : 37 --This Block is undo blocks!
current read blocks is : 38 --This Block is new allocate blocks!
current read blocks is : 39 --This Block is new allocate blocks!
current read blocks is : 40 --This Block is new allocate blocks!
current read blocks is : 41 --This Block is new allocate blocks!
current read blocks is : 42 --This Block is new allocate blocks!
这里 block3-block26 就是我们的rollback segment header block。我这里当然是 4个undo tablespace的情况,看的是undo tablespace 1。看来没有问题。分析正确。

posted @ 2019-08-06 19:32  李艳艳665  阅读(67)  评论(0编辑  收藏  举报