91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

InnoDB: Error: space id and page n:o stored in the page?

發布時間:2020-08-12 21:09:09 來源:ITPUB博客 閱讀:379 作者:gaopengtttt 欄目:MySQL數據庫
2016-06-08 04:38:11 7fa7ddd86700  InnoDB: Error: space id and page n:o stored in the page
InnoDB: read in are 4294967295:4294967295, should be 22291:4096!
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 4096.
InnoDB: You may have to recover from a backup.
2016-06-08 04:38:11 7fa7ddd86700 InnoDB: Page dump in ascii and hex (16384 bytes):

所用到的工具是自己寫的mysqlblock和bcview,
我放到了百度云盤
http://pan.baidu.com/s/1num76RJ
供大家下載和使用

今天MYSQL遇到上面的錯誤:
顯然
InnoDB: read in are 4294967295:4294967295, should be 22291:4096! 
這里拋出了出錯信息,結合前面的提示翻譯為,
在space id 22291的4096塊上出現了問題,讀到的信息為4294967295:4294967295
顯現SPACE ID 讀到的信息有誤 4294967295
那么這第一個4294967295 是怎么來的呢。
首先我們要找到SPACEID 是22291是什么表
select * from INNODB_SYS_TABLESPACES where space = 22291;
然后取出他的ibd文件如果是單獨的表空間就非常簡單了,目的在于分析原因確定確實是這個表的問題。

然后使用工具查看二進制文件我使用的是自己編寫的bcview工具。
******************************************************************
This Tool Is Uesed For Find The Data In Binary format(Hexadecimal)
Usage:./bcview file blocksize offset cnt-bytes!                   
file: Is Your File Will To Find Data!                             
blocksize: Is N kb Block.Eg: 8 Is 8 Kb Blocksize(Oracle)!         
                         Eg: 16 Is 16 Kb Blocksize(Innodb)!       
offset:Is Every Block Offset Your Want Start!                                     
cnt-bytes:Is After Offset,How Bytes Your Want Gets!                               
Edtor QQ:22389860!                                                
Used gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)                
******************************************************************
usage:./bcview file blocksize offset cnt-bytes!

其實這個4294967295來自于塊的34-37 的4個字節,
如果我們打開2進制文件使用工具bcview(自己編寫的)
./bcview product_info_snapshot.ibd 16 34 4|more
current block:00004096--Offset:00034--cnt bytes:04--data is:ffffffff
我們很清楚看到了這里4個字節全是ffffffff,實際上正常的塊是
current block:00000085--Offset:00034--cnt bytes:04--data is:00005713
那么第二個4294967295也就是塊號來自哪里呢?
其實這個塊號我也占時沒有找到他來自哪里,
但是他為什么能讀取到正確的
4096塊呢?
肯能的原意你是每個塊的 4-11 8個字節是當前的塊號和上一個塊的塊號
我們來看看
current block:00004090--Offset:00004--cnt bytes:08--data is:00000ffa00000ff9
current block:00004091--Offset:00004--cnt bytes:08--data is:00000ffb00000ffa
current block:00004092--Offset:00004--cnt bytes:08--data is:00000ffc00000ffb
current block:00004093--Offset:00004--cnt bytes:08--data is:00000ffd00000ffc
current block:00004094--Offset:00004--cnt bytes:08--data is:00000ffe00000ffd
current block:00004095--Offset:00004--cnt bytes:08--data is:00000fff00000ffe
current block:00004096--Offset:00004--cnt bytes:08--data is:0000100000000fff
current block:00004097--Offset:00004--cnt bytes:08--data is:0000100100001000
current block:00004098--Offset:00004--cnt bytes:08--data is:0000100200001001

很明顯的這里看到了0000100000000fff 當前塊號4096 上一個塊是4095

這里就確定了確實是這個塊出現了問題。那么怎么恢復呢?
當然有從庫直接刪除導入即可。
如果沒有從庫沒有備份,那么準備好丟數據的可能。
我們可以create table t_bak as select * from t;
這個肯定報錯 報錯就是讀取到了出問題的塊,但是t_bak出來了,這個時候我們取自增主鍵,試著向后推移一部分
如果報錯在推 比如一次主鍵+10 這個還是和你的行大小有關。如果1K的行一個塊大約也就10來條數據左右,
我們只要跳過了出錯的塊,讀取應該會正常。但是肯定會丟一些數據,丟的就是壞塊的數據。
如果死馬當活馬醫,可以改一下34-37字節為正常的值。再試試。

當然也可以通過mysqlblock工具看一下是否有異常的塊
異常:
[root@bak tmp]# ./mysqlblock product_info_snapshotbak.ibd -t
FILE SIZE IS : 1589641216
Total Block Status    :
Total  block                   : 97024,Total size is: 1516.000000 MB
Total undo block               :     0,Total size is: 0.000000 MB
Total inode block              :     1,Total size is: 0.015625 MB
Total insert buffer free blocks:     0,Total size is: 0.000000 MB
Total data(index pages) block  : 92434,Total size is: 1444.281250 MB
Total new allocate blocks      :  4540,Total size is: 70.937500 MB
Total insert buf bitmap blocks :     6,Total size is: 0.093750 MB
Total system blocks            :     0,Total size is: 0.000000 MB
Total transaction system blocks:     0,Total size is: 0.000000 MB
Total file space header blocks :     1,Total size is: 0.015625 MB
Total extrenl disc blocks      :     5,Total size is: 0.078125 MB
Total LOB blocks               :    24,Total size is: 0.375000 MB
Total Unkown blocks            :    13,Total size is: 0.203125 MB
正常:
[root@bak tmp]# ./mysqlblock product_info_snapshot.ibd -t
FILE SIZE IS : 1589641216
Total Block Status    :
Total  block                   : 97024,Total size is: 1516.000000 MB
Total undo block               :     0,Total size is: 0.000000 MB
Total inode block              :     1,Total size is: 0.015625 MB
Total insert buffer free blocks:     0,Total size is: 0.000000 MB
Total data(index pages) block  : 92449,Total size is: 1444.515625 MB
Total new allocate blocks      :  4538,Total size is: 70.906250 MB
Total insert buf bitmap blocks :     6,Total size is: 0.093750 MB
Total system blocks            :     0,Total size is: 0.000000 MB
Total transaction system blocks:     0,Total size is: 0.000000 MB
Total file space header blocks :     1,Total size is: 0.015625 MB
Total extrenl disc blocks      :     5,Total size is: 0.078125 MB
Total LOB blocks               :    24,Total size is: 0.375000 MB
Total Unkown blocks            :     0,Total size is: 0.000000 MB







向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平昌县| 秦安县| 波密县| 贺州市| 黑山县| 河曲县| 南投县| 江口县| 成武县| 汉沽区| 梓潼县| 磐石市| 宜川县| 德惠市| 松滋市| 弋阳县| 屏东市| 宜春市| 剑河县| 延长县| 彰化县| 精河县| 禄劝| 东莞市| 大同市| 广东省| 益阳市| 岗巴县| 施秉县| 仁化县| 西贡区| 桦川县| 潜江市| 东安县| 和政县| 富川| 英山县| 汕头市| 凭祥市| 青阳县| 嘉荫县|