py_innodb_page_info
python py_innodb_page_info.py -v /usr/local/var/mysql/ibdata1
mylib.py

#encoding=utf-8
import os
import include
from include import *
TABLESPACE_NAME='D:\\mysql_data\\test\\t.ibd'
VARIABLE_FIELD_COUNT = 1
NULL_FIELD_COUNT = 0
class myargv(object):
    def __init__(self, argv):
        self.argv = argv
        self.parms = {}
        self.tablespace = ''
    def parse_cmdline(self):
        argv = self.argv
        if len(argv) == 1:
            print 'Usage: python py_innodb_page_info.py [OPTIONS] tablespace_file'
            print 'For more options, use python py_innodb_page_info.py -h'
            return 0
        while argv:
            if argv[0][0] == '-':
                if argv[0][1] == 'h':
                    self.parms[argv[0]] = ''
                    argv = argv[1:]
                    break
                if argv[0][1] == 'v':
                    self.parms[argv[0]] = ''
                    argv = argv[1:]
                else:
                    self.parms[argv[0]] = argv[1]
                    argv = argv[2:]
            else:
                self.tablespace = argv[0]
                argv = argv[1:]
        if self.parms.has_key('-h'):
            print 'Get InnoDB Page Info'
            print 'Usage: python py_innodb_page_info.py [OPTIONS] tablespace_file\n'
            print 'The following options may be given as the first argument:'
            print '-h        help '
            print '-o output put the result to file'
            print '-t number thread to anayle the tablespace file'
            print '-v        verbose mode'
            return 0
        return 1
def mach_read_from_n(page,start_offset,length):
    ret = page[start_offset:start_offset+length]
    return ret.encode('hex')
def get_innodb_page_type(myargv):
    f=file(myargv.tablespace,'rb')
    fsize = os.path.getsize(f.name)/INNODB_PAGE_SIZE
    ret = {}
    for i in range(fsize):
        page = f.read(INNODB_PAGE_SIZE)
        page_offset = mach_read_from_n(page,FIL_PAGE_OFFSET,4)
        page_type = mach_read_from_n(page,FIL_PAGE_TYPE,2)
        if myargv.parms.has_key('-v'):
            if page_type == '45bf':
                page_level = mach_read_from_n(page,FIL_PAGE_DATA+PAGE_LEVEL,2)
                print "page offset %s, page type <%s>, page level <%s>"%(page_offset,innodb_page_type[page_type],page_level)
            else:
                print "page offset %s, page type <%s>"%(page_offset,innodb_page_type[page_type])
        if not ret.has_key(page_type):
            ret[page_type] = 1
        else:
            ret[page_type] = ret[page_type] + 1
    print "Total number of page: %d:"%fsize
    for type in ret:
        print "%s: %s"%(innodb_page_type[type],ret[type])
###

py_innodb_page_info.py

#! /usr/bin/env python
#encoding=utf-8
import mylib
from sys import argv
from mylib import myargv
if __name__ == '__main__':
    myargv = myargv(argv)
    if myargv.parse_cmdline() == 0:
        pass
    else:
        mylib.get_innodb_page_type(myargv)
####

include.py

#encoding=utf-8
INNODB_PAGE_SIZE = 16*1024*1024
# Start of the data on the page
FIL_PAGE_DATA = 38
FIL_PAGE_OFFSET = 4 # page offset inside space
FIL_PAGE_TYPE = 24 # File page type
# Types of an undo log segment */
TRX_UNDO_INSERT = 1
TRX_UNDO_UPDATE = 2
# On a page of any file segment, data may be put starting from this offset
FSEG_PAGE_DATA = FIL_PAGE_DATA
# The offset of the undo log page header on pages of the undo log
TRX_UNDO_PAGE_HDR = FSEG_PAGE_DATA
PAGE_LEVEL = 26    #level of the node in an index tree; the leaf level is the level 0 */         
innodb_page_type={
    '0000':u'Freshly Allocated Page',
    '0002':u'Undo Log Page',
    '0003':u'File Segment inode',
    '0004':u'Insert Buffer Free List',
    '0005':u'Insert Buffer Bitmap',
    '0006':u'System Page',
    '0007':u'Transaction system Page',
    '0008':u'File Space Header',
    '0009':u'扩展描述页',
    '000a':u'Uncompressed BLOB Page',
    '000b':u'1st compressed BLOB Page',
    '000c':u'Subsequent compressed BLOB Page',
    '45bf':u'B-tree Node'
}
innodb_page_direction={
    '0000': 'Unknown(0x0000)',
    '0001': 'Page Left',
    '0002': 'Page Right',
    '0003': 'Page Same Rec',
    '0004': 'Page Same Page',
    '0005': 'Page No Direction',
    'ffff': 'Unkown2(0xffff)'
}
INNODB_PAGE_SIZE=1024*16 # InnoDB Page 16K
####

python py_innodb_page_info.py /usr/local/var/mysql/ibdata1

python py_innodb_page_info.py -v /usr/local/var/mysql/ibdata1

➜ ~ python py_innodb_page_info.py -v /usr/local/var/mysql/ibdata1 page offset 00000000, page type <File Space Header> page offset 00000001, page type <Insert Buffer Bitmap> page offset 00000002, page type <File Segment inode> page offset 00000003, page type <System Page> page offset 00000004, page type <B-tree Node>, page level <0000> page offset 00000005, page type <Transaction system Page> page offset 00000006, page type <System Page> page offset 00000007, page type <System Page> page offset 00000008, page type <B-tree Node>, page level <0001> page offset 00000009, page type <B-tree Node>, page level <0001> page offset 0000000d, page type <Freshly Allocated Page> page offset 0000000e, page type <Freshly Allocated Page> page offset 0000000f, page type <Freshly Allocated Page> page offset 00000010, page type <Freshly Allocated Page> page offset 0000002d, page type <System Page> page offset 0000002e, page type <System Page> page offset 0000002f, page type <System Page> page offset 00000030, page type <System Page> page offset 000001c6, page type <Undo Log Page> page offset 00000000, page type <File Space Header> page offset 000001e0, page type <File Segment inode> page offset 00000108, page type <System Page> page offset 00000109, page type <System Page> page offset 00000003, page type <B-tree Node>, page level <0000> page offset 00000005, page type <B-tree Node>, page level <0000> page offset 000001c9, page type <Undo Log Page> page offset 00000003, page type <B-tree Node>, page level <0000> page offset 000000f3, page type <File Segment inode> page offset 0000011c, page type <Undo Log Page> page offset 00000034, page type <System Page> page offset 0000015c, page type <B-tree Node>, page level <0000> page offset 000001a1, page type <B-tree Node>, page level <0000> page offset 0000019b, page type <B-tree Node>, page level <0000> page offset 00000149, page type <B-tree Node>, page level <0000> page offset 00000009, page type <B-tree Node>, page level <0001> page offset 00000000, page type <File Space Header> page offset 0000027f, page type <B-tree Node>, page level <0000> page offset 0000000c, page type <B-tree Node>, page level <0001> page offset 00000007, page type <System Page> page offset 00000000, page type <File Space Header> page offset 00000001, page type <Insert Buffer Bitmap> page offset 00000002, page type <File Segment inode> page offset 00000003, page type <B-tree Node>, page level <0001> page offset 00000004, page type <B-tree Node>, page level <0000> page offset 00000005, page type <B-tree Node>, page level <0000> page offset 0000015e, page type <Undo Log Page> page offset 00000172, page type <Undo Log Page> page offset 0000018a, page type <Undo Log Page> page offset 0000012d, page type <Undo Log Page> page offset 000001c4, page type <Undo Log Page> page offset 00000103, page type <System Page> page offset 00000104, page type <System Page> page offset 000001b2, page type <Undo Log Page> page offset 00000002, page type <File Segment inode> page offset 00000003, page type <B-tree Node>, page level <0001> page offset 00000004, page type <B-tree Node>, page level <0000> page offset 00000005, page type <B-tree Node>, page level <0000> page offset 00000006, page type <B-tree Node>, page level <0000> page offset 00000000, page type <File Space Header> page offset 00000001, page type <Insert Buffer Bitmap> page offset 00000002, page type <File Segment inode> page offset 00000003, page type <B-tree Node>, page level <0000> page offset 00000000, page type <File Space Header> page offset 00000001, page type <Insert Buffer Bitmap> page offset 00000002, page type <File Segment inode> page offset 00000003, page type <B-tree Node>, page level <0000> page offset 00000004, page type <B-tree Node>, page level <0000> page offset 00000000, page type <File Space Header> page offset 00000001, page type <Insert Buffer Bitmap> page offset 00000002, page type <File Segment inode> page offset 00000003, page type <B-tree Node>, page level <0000> page offset 00000000, page type <File Space Header> page offset 00000001, page type <Insert Buffer Bitmap> page offset 00000002, page type <File Segment inode> page offset 00000003, page type <B-tree Node>, page level <0001> page offset 00000004, page type <B-tree Node>, page level <0000> page offset 00000000, page type <File Space Header> page offset 00000001, page type <Insert Buffer Bitmap> page offset 00000002, page type <File Segment inode> page offset 00000003, page type <B-tree Node>, page level <0001> page offset 00000004, page type <B-tree Node>, page level <0000> page offset 00000000, page type <File Space Header> page offset 00000001, page type <Insert Buffer Bitmap> page offset 00000002, page type <File Segment inode> page offset 00000003, page type <B-tree Node>, page level <0000> page offset 00000000, page type <File Space Header> page offset 00000001, page type <Insert Buffer Bitmap> page offset 00000002, page type <File Segment inode> page offset 00000003, page type <B-tree Node>, page level <0000> page offset 00000000, page type <File Space Header> page offset 00000005, page type <B-tree Node>, page level <0000> page offset 00000004, page type <B-tree Node>, page level <0000> page offset 00000005, page type <B-tree Node>, page level <0000> page offset 000000bb, page type <Freshly Allocated Page> page offset 000000bc, page type <Freshly Allocated Page> page offset 000000c0, page type <System Page> page offset 000000c1, page type <System Page> page offset 000000e4, page type <System Page> page offset 000000e5, page type <System Page> page offset 000000f3, page type <File Segment inode> page offset 000000f4, page type <System Page> page offset 000000f5, page type <System Page> page offset 000000f6, page type <System Page> page offset 000000f7, page type <System Page> page offset 0000010d, page type <Undo Log Page> page offset 0000010e, page type <B-tree Node>, page level <0000> page offset 0000010f, page type <B-tree Node>, page level <0000> page offset 00000110, page type <B-tree Node>, page level <0000> page offset 00000111, page type <B-tree Node>, page level <0000> page offset 00000112, page type <Undo Log Page> page offset 00000113, page type <B-tree Node>, page level <0001> page offset 00000114, page type <B-tree Node>, page level <0001> page offset 00000115, page type <Undo Log Page> page offset 00000116, page type <B-tree Node>, page level <0000> page offset 00000117, page type <Undo Log Page> page offset 00000118, page type <Undo Log Page> page offset 00000119, page type <Undo Log Page> page offset 0000011a, page type <Undo Log Page> page offset 00000148, page type <B-tree Node>, page level <0000> page offset 00000149, page type <B-tree Node>, page level <0000> page offset 0000014a, page type <Undo Log Page> page offset 0000014b, page type <B-tree Node>, page level <0000> page offset 0000014c, page type <B-tree Node>, page level <0000> page offset 0000014d, page type <Undo Log Page> page offset 0000014e, page type <Undo Log Page> page offset 0000014f, page type <Undo Log Page> page offset 00000150, page type <Undo Log Page> page offset 00000157, page type <File Segment inode> page offset 00000158, page type <Undo Log Page> page offset 00000159, page type <Undo Log Page> page offset 0000015a, page type <B-tree Node>, page level <0000> page offset 0000015b, page type <Undo Log Page> page offset 0000015c, page type <B-tree Node>, page level <0000> page offset 0000015d, page type <Undo Log Page> page offset 0000015e, page type <Undo Log Page> page offset 0000015f, page type <Undo Log Page> page offset 00000165, page type <B-tree Node>, page level <0000> page offset 00000166, page type <B-tree Node>, page level <0000> page offset 00000167, page type <B-tree Node>, page level <0000> page offset 00000168, page type <B-tree Node>, page level <0000> page offset 00000169, page type <Undo Log Page> page offset 0000016a, page type <Undo Log Page> page offset 0000016b, page type <B-tree Node>, page level <0000> page offset 0000016c, page type <Undo Log Page> page offset 0000016d, page type <Undo Log Page> page offset 0000016e, page type <Undo Log Page> page offset 0000016f, page type <Undo Log Page> page offset 00000170, page type <B-tree Node>, page level <0000> page offset 00000171, page type <Undo Log Page> page offset 00000172, page type <Undo Log Page> page offset 00000173, page type <Undo Log Page> page offset 00000174, page type <Undo Log Page> page offset 00000175, page type <Undo Log Page> page offset 00000176, page type <B-tree Node>, page level <0000> page offset 00000177, page type <Undo Log Page> page offset 00000178, page type <B-tree Node>, page level <0000> page offset 00000179, page type <B-tree Node>, page level <0000> page offset 0000017a, page type <B-tree Node>, page level <0000> page offset 0000017d, page type <Undo Log Page> page offset 0000017e, page type <B-tree Node>, page level <0000> page offset 0000017f, page type <Undo Log Page> page offset 00000180, page type <Undo Log Page> page offset 00000181, page type <Undo Log Page> page offset 00000182, page type <File Segment inode> page offset 00000183, page type <Undo Log Page> page offset 00000184, page type <B-tree Node>, page level <0000> page offset 00000185, page type <Undo Log Page> page offset 00000186, page type <B-tree Node>, page level <0000> page offset 00000187, page type <Undo Log Page> page offset 00000188, page type <Undo Log Page> page offset 00000189, page type <Undo Log Page> page offset 0000018a, page type <Undo Log Page> page offset 0000018b, page type <Undo Log Page> page offset 0000018c, page type <Undo Log Page> page offset 0000018d, page type <Undo Log Page> page offset 0000018e, page type <Undo Log Page> page offset 0000018f, page type <Undo Log Page> page offset 00000190, page type <Undo Log Page> page offset 00000191, page type <B-tree Node>, page level <0000> page offset 00000192, page type <B-tree Node>, page level <0000> page offset 00000193, page type <Undo Log Page> page offset 00000194, page type <Undo Log Page> page offset 00000195, page type <B-tree Node>, page level <0000> page offset 00000196, page type <Undo Log Page> page offset 00000197, page type <B-tree Node>, page level <0000> page offset 00000198, page type <Undo Log Page> page offset 00000199, page type <Undo Log Page> page offset 0000019a, page type <B-tree Node>, page level <0000> page offset 0000019b, page type <B-tree Node>, page level <0000> page offset 0000019c, page type <Undo Log Page> page offset 0000019d, page type <Undo Log Page> page offset 0000019e, page type <Undo Log Page> page offset 0000019f, page type <Undo Log Page> page offset 000001a0, page type <Undo Log Page> page offset 000001a1, page type <B-tree Node>, page level <0000> page offset 000001a2, page type <Undo Log Page> page offset 000001a3, page type <B-tree Node>, page level <0000> page offset 000001a4, page type <Undo Log Page> page offset 000001a5, page type <Undo Log Page> page offset 000001a6, page type <Undo Log Page> page offset 000001a7, page type <Undo Log Page> page offset 000001a8, page type <Undo Log Page> page offset 000001a9, page type <B-tree Node>, page level <0000> page offset 000001aa, page type <Undo Log Page> page offset 000001ab, page type <Undo Log Page> page offset 000001ac, page type <Undo Log Page> page offset 000001ad, page type <Undo Log Page> page offset 000001ae, page type <Undo Log Page> page offset 000001af, page type <B-tree Node>, page level <0000> page offset 000001b0, page type <Undo Log Page> page offset 000001b1, page type <Undo Log Page> page offset 000001b2, page type <Undo Log Page> page offset 000001cc, page type <B-tree Node>, page level <0000> page offset 000001cd, page type <Undo Log Page> page offset 000001ce, page type <B-tree Node>, page level <0000> page offset 000001cf, page type <Undo Log Page> page offset 000001d0, page type <B-tree Node>, page level <0000> page offset 000001d1, page type <B-tree Node>, page level <0000> page offset 000001d2, page type <Undo Log Page> page offset 000001d3, page type <Undo Log Page> page offset 000001d4, page type <B-tree Node>, page level <0000> page offset 000001d5, page type <B-tree Node>, page level <0000> page offset 000001d6, page type <B-tree Node>, page level <0000> page offset 000001d7, page type <Undo Log Page> page offset 000001d8, page type <Undo Log Page> page offset 000001d9, page type <Undo Log Page> page offset 000001de, page type <B-tree Node>, page level <0000> page offset 000001df, page type <Undo Log Page> page offset 000001e0, page type <File Segment inode> page offset 000001e1, page type <Undo Log Page> page offset 000001e2, page type <Undo Log Page> page offset 000001e3, page type <Undo Log Page> page offset 000001ef, page type <B-tree Node>, page level <0000> page offset 000001f0, page type <Undo Log Page> page offset 000001f1, page type <Undo Log Page> page offset 000001f2, page type <Undo Log Page> page offset 000001f5, page type <B-tree Node>, page level <0000> page offset 000001f6, page type <Undo Log Page> page offset 000001f7, page type <Undo Log Page> page offset 000001f8, page type <Undo Log Page> page offset 000001f9, page type <Undo Log Page> page offset 000001ff, page type <B-tree Node>, page level <0000> page offset 00000200, page type <B-tree Node>, page level <0000> page offset 00000201, page type <Undo Log Page> page offset 00000202, page type <Undo Log Page> page offset 00000203, page type <Undo Log Page> page offset 00000204, page type <Undo Log Page> page offset 00000205, page type <Undo Log Page> page offset 00000206, page type <Undo Log Page> --undo页的分配 page offset 00000207, page type <Undo Log Page> page offset 00000208, page type <Undo Log Page> page offset 00000209, page type <Undo Log Page> page offset 0000020a, page type <Undo Log Page> page offset 0000020b, page type <Undo Log Page> page offset 00000000, page type <Freshly Allocated Page> page offset 00000000, page type <Freshly Allocated Page> page offset 00000000, page type <Freshly Allocated Page> page offset 00000000, page type <Freshly Allocated Page> page offset 00000000, page type <Freshly Allocated Page> --64个连续页的分配 Total number of page: 4864: Insert Buffer Bitmap: 9 System Page: 104 Transaction system Page: 1 Freshly Allocated Page: 4293 Undo Log Page: 281 File Segment inode: 16 B-tree Node: 148 File Space Header: 12
py_innodb_page_info的更多相关文章
- python py_innodb_page_info.py -v /usr/local/var/mysql/ibdata1
		
mylib.py #encoding=utf-8 import os import include from include import * TABLESPACE_NAME='D:\\mysql_d ...
 - 【mysql】关于innodb_file_format
		
一.几条mysql命令 通过以下命令看一下mysql中 innodb_file_format的配置 mysql> show engines; +--------------------+---- ...
 - MySQL ibdata1撑爆占满磁盘空间
		
MySQL主从由于ibdata1占满磁盘空间-->主从失效 因为设置了innodb_file_per_table = 1,ibdata1依旧撑爆占满磁盘空间 主从断的时候,IO线程在连接,SQL ...
 - innodb 页分配
		
[root@localhost test]# python /root/soft/py_innodb_page_info.py -v t1.ibdpage offset 00000000, page ...
 - InnoDB行格式(compact,redundant)对照
		
InnoDB行格式分两种格式(COMPACT,redundant)默觉得COMPACT compact的存储格式为 首部为一个非NULL的变长字段长度列表,并且是依照列的顺序逆序放置的,当列的长度小于 ...
 - InnoDB的数据页结构
		
页是InnoDB存储引擎管理数据库的最小磁盘单位.页类型为B-tree node的页,存放的即是表中行的实际数据了. InnoDB数据页由以下七个部分组成,如图所示: File Header(文件头) ...
 - InnoDB的行溢出数据,Char的行结构存储
		
行溢出数据 InnoDB存储引擎可以将一条记录中的某些数据存储在真正的数据页面之外,即作为行溢出数据.一般认为BLOB.LOB这类的大对象列类型的存储会把数据存放在数据页面之外.但是,这个理解有点偏差 ...
 - MySQL 如何存储长度较大的varchar与blob
		
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/96 最近,在工作中遇到了MySQL中如何存储长度较长的字段类型问 ...
 - MySQL InnoDB下关于MVCC的一个问题的分析
		
这个是网友++C++在群里问的一个关于MySQL的问题,本篇文章实验测试环境为MySQL 5.6.20,事务隔离级别为REPEATABLE-READ ,在演示问题前,我们先准备测试环境.准备一个测 ...
 
随机推荐
- 三、thymeleaf模板引擎构建前台html,  后台使用 ModelAndView 和 Model  模型
			
项目源码:https://github.com/y369q369/springBoot.git -> thymeleaf 私聊QQ: 1486866853 1.pom.xml中 ...
 - ssh 端口转发实践
			
A: 172.28.92.114 本地主机B: 172.28.92.117 中间主机C: 172.28.92.118 目的主机 (这里名字叫目的主机更合适,原先把这里叫成远程主机,导致我一直认为远程端 ...
 - sklearn错误
			
1.No module named 'sklearn.cross_validation' sklearn.cross_validation会报错,关键在于新版本的sklearn没有cross_vali ...
 - 搭建 Jest+ Enzyme 测试环境
			
1.为什么要使用单元测试工具? 因为代码之间的相互调用关系,又希望测试过程单元相互独立,又能正常运行,这就需要我们对被测函数的依赖函数和环境进行mock,在测试数据输入.测试执行和测试结果检查方面存在 ...
 - centos7 下安装zabbix3.0 agent
			
设置YUM源:rpm -ivh http://mirrors.aliyun.com/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpmrpm - ...
 - [HTML]HTML隐藏文本框的四种方式
			
.<input type="hidden" value=""></input>对所有的文本框都起作用(隐藏域,多用于存数据) .< ...
 - spark-rpc是如何实现将netty的Channel隐藏在inbox中的
			
class TransportServer bootstrap.childHandler(new ChannelInitializer<SocketChannel>() { @Overri ...
 - C# Winform开发程序调用VLC播放器控件播放视频.
			
VLC是个好东西,支持的格式多,还无广告,关键还有调用它的播放控件不用安装. 开个文章记录下调用这个控件的流水账,以便以后需要的时候查阅 创建工程 首先新建一个Winform工程. 这里姑且叫做VLC ...
 - codeblock字体问题
			
有的时候在codeblock中打下划线,会显示空格, 这个时候可以修改一下字体 settings->editor->editor settings最上面的fonts框中选择choose,然 ...
 - POJ1083 Moving Tables
			
POJ1083 Moving Tables Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 35297 Accepted: ...