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

py_innodb_page_info_第1张图片

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 
page offset 00000001, page type  page offset 00000002, page type  page offset 00000003, page type  page offset 00000004, page type , page level <0000> page offset 00000005, page type  page offset 00000006, page type  page offset 00000007, page type  page offset 00000008, page type , page level <0001> page offset 00000009, page type , page level <0001> page offset 0000000d, page type  page offset 0000000e, page type  page offset 0000000f, page type  page offset 00000010, page type  page offset 0000002d, page type  page offset 0000002e, page type  page offset 0000002f, page type  page offset 00000030, page type  page offset 000001c6, page type  page offset 00000000, page type  page offset 000001e0, page type  page offset 00000108, page type  page offset 00000109, page type  page offset 00000003, page type , page level <0000> page offset 00000005, page type , page level <0000> page offset 000001c9, page type  page offset 00000003, page type , page level <0000> page offset 000000f3, page type  page offset 0000011c, page type  page offset 00000034, page type  page offset 0000015c, page type , page level <0000> page offset 000001a1, page type , page level <0000> page offset 0000019b, page type , page level <0000> page offset 00000149, page type , page level <0000> page offset 00000009, page type , page level <0001> page offset 00000000, page type  page offset 0000027f, page type , page level <0000> page offset 0000000c, page type , page level <0001> page offset 00000007, page type  page offset 00000000, page type  page offset 00000001, page type  page offset 00000002, page type  page offset 00000003, page type , page level <0001> page offset 00000004, page type , page level <0000> page offset 00000005, page type , page level <0000> page offset 0000015e, page type  page offset 00000172, page type  page offset 0000018a, page type  page offset 0000012d, page type  page offset 000001c4, page type  page offset 00000103, page type  page offset 00000104, page type  page offset 000001b2, page type  page offset 00000002, page type  page offset 00000003, page type , page level <0001> page offset 00000004, page type , page level <0000> page offset 00000005, page type , page level <0000> page offset 00000006, page type , page level <0000> page offset 00000000, page type  page offset 00000001, page type  page offset 00000002, page type  page offset 00000003, page type , page level <0000> page offset 00000000, page type  page offset 00000001, page type  page offset 00000002, page type  page offset 00000003, page type , page level <0000> page offset 00000004, page type , page level <0000> page offset 00000000, page type  page offset 00000001, page type  page offset 00000002, page type  page offset 00000003, page type , page level <0000> page offset 00000000, page type  page offset 00000001, page type  page offset 00000002, page type  page offset 00000003, page type , page level <0001> page offset 00000004, page type , page level <0000> page offset 00000000, page type  page offset 00000001, page type  page offset 00000002, page type  page offset 00000003, page type , page level <0001> page offset 00000004, page type , page level <0000> page offset 00000000, page type  page offset 00000001, page type  page offset 00000002, page type  page offset 00000003, page type , page level <0000> page offset 00000000, page type  page offset 00000001, page type  page offset 00000002, page type  page offset 00000003, page type , page level <0000> page offset 00000000, page type  page offset 00000005, page type , page level <0000> page offset 00000004, page type , page level <0000> page offset 00000005, page type , page level <0000> page offset 000000bb, page type  page offset 000000bc, page type  page offset 000000c0, page type  page offset 000000c1, page type  page offset 000000e4, page type  page offset 000000e5, page type  page offset 000000f3, page type  page offset 000000f4, page type  page offset 000000f5, page type  page offset 000000f6, page type  page offset 000000f7, page type  page offset 0000010d, page type  page offset 0000010e, page type , page level <0000> page offset 0000010f, page type , page level <0000> page offset 00000110, page type , page level <0000> page offset 00000111, page type , page level <0000> page offset 00000112, page type  page offset 00000113, page type , page level <0001> page offset 00000114, page type , page level <0001> page offset 00000115, page type  page offset 00000116, page type , page level <0000> page offset 00000117, page type  page offset 00000118, page type  page offset 00000119, page type  page offset 0000011a, page type  page offset 00000148, page type , page level <0000> page offset 00000149, page type , page level <0000> page offset 0000014a, page type  page offset 0000014b, page type , page level <0000> page offset 0000014c, page type , page level <0000> page offset 0000014d, page type  page offset 0000014e, page type  page offset 0000014f, page type  page offset 00000150, page type  page offset 00000157, page type  page offset 00000158, page type  page offset 00000159, page type  page offset 0000015a, page type , page level <0000> page offset 0000015b, page type  page offset 0000015c, page type , page level <0000> page offset 0000015d, page type  page offset 0000015e, page type  page offset 0000015f, page type  page offset 00000165, page type , page level <0000> page offset 00000166, page type , page level <0000> page offset 00000167, page type , page level <0000> page offset 00000168, page type , page level <0000> page offset 00000169, page type  page offset 0000016a, page type  page offset 0000016b, page type , page level <0000> page offset 0000016c, page type  page offset 0000016d, page type  page offset 0000016e, page type  page offset 0000016f, page type  page offset 00000170, page type , page level <0000> page offset 00000171, page type  page offset 00000172, page type  page offset 00000173, page type  page offset 00000174, page type  page offset 00000175, page type  page offset 00000176, page type , page level <0000> page offset 00000177, page type  page offset 00000178, page type , page level <0000> page offset 00000179, page type , page level <0000> page offset 0000017a, page type , page level <0000> page offset 0000017d, page type  page offset 0000017e, page type , page level <0000> page offset 0000017f, page type  page offset 00000180, page type  page offset 00000181, page type  page offset 00000182, page type  page offset 00000183, page type  page offset 00000184, page type , page level <0000> page offset 00000185, page type  page offset 00000186, page type , page level <0000> page offset 00000187, page type  page offset 00000188, page type  page offset 00000189, page type  page offset 0000018a, page type  page offset 0000018b, page type  page offset 0000018c, page type  page offset 0000018d, page type  page offset 0000018e, page type  page offset 0000018f, page type  page offset 00000190, page type  page offset 00000191, page type , page level <0000> page offset 00000192, page type , page level <0000> page offset 00000193, page type  page offset 00000194, page type  page offset 00000195, page type , page level <0000> page offset 00000196, page type  page offset 00000197, page type , page level <0000> page offset 00000198, page type  page offset 00000199, page type  page offset 0000019a, page type , page level <0000> page offset 0000019b, page type , page level <0000> page offset 0000019c, page type  page offset 0000019d, page type  page offset 0000019e, page type  page offset 0000019f, page type  page offset 000001a0, page type  page offset 000001a1, page type , page level <0000> page offset 000001a2, page type  page offset 000001a3, page type , page level <0000> page offset 000001a4, page type  page offset 000001a5, page type  page offset 000001a6, page type  page offset 000001a7, page type  page offset 000001a8, page type  page offset 000001a9, page type , page level <0000> page offset 000001aa, page type  page offset 000001ab, page type  page offset 000001ac, page type  page offset 000001ad, page type  page offset 000001ae, page type  page offset 000001af, page type , page level <0000> page offset 000001b0, page type  page offset 000001b1, page type  page offset 000001b2, page type  page offset 000001cc, page type , page level <0000> page offset 000001cd, page type  page offset 000001ce, page type , page level <0000> page offset 000001cf, page type  page offset 000001d0, page type , page level <0000> page offset 000001d1, page type , page level <0000> page offset 000001d2, page type  page offset 000001d3, page type  page offset 000001d4, page type , page level <0000> page offset 000001d5, page type , page level <0000> page offset 000001d6, page type , page level <0000> page offset 000001d7, page type  page offset 000001d8, page type  page offset 000001d9, page type  page offset 000001de, page type , page level <0000> page offset 000001df, page type  page offset 000001e0, page type  page offset 000001e1, page type  page offset 000001e2, page type  page offset 000001e3, page type  page offset 000001ef, page type , page level <0000> page offset 000001f0, page type  page offset 000001f1, page type  page offset 000001f2, page type  page offset 000001f5, page type , page level <0000> page offset 000001f6, page type  page offset 000001f7, page type  page offset 000001f8, page type  page offset 000001f9, page type 

转载于:https://www.cnblogs.com/duanzexun/p/10782765.html

你可能感兴趣的:(python,数据库)