- 论坛徽章:
- 0
|
问题现象,只要数据大小超过2G,在phpMyAdmin里面打开最后面的数据就会报错
系统内核(CentOS5.2)
# uname -a
Linux centos52 2.6.18-92.el5 #1 SMP Tue Jun 10 18:49:47 EDT 2008 i686 i686 i386 GNU/Linux
文件格式(ext3)
# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
ext3 60499848 23780324 33596736 42% /
MySQL编译参数
# cat /usr/local/mysql/bin/mysqlbug |grep ./configure
CONFIGURE_LINE="./configure '--prefix=/usr/local/mysql' '--localstatedir=/usr/data/mysql' '--with-mysqld-user=mysql4' '-with-named-thread-libs=-lpthread' '--without-debug' '--with-extra-charsets=gbk'"
数据超过2G时:
在mysql查看表状态
mysql> show table status from discuz like 'cdb_posts01'\G
*************************** 1. row ***************************
Name: cdb_posts01
Type: MyISAM
Row_format: Dynamic
Rows: 12615563
Avg_row_length: 198
Data_length: 2510425460
Max_data_length: 1099511627775
Index_length: 846066688
Data_free: 0
Auto_increment: 27231847
Create_time: 2008-11-17 06:36:45
Update_time: 2008-11-18 06:23:28
Check_time: 2008-11-17 15:57:11
Create_options: max_rows=1000000000 avg_row_length=202
Comment:
1 row in set (0.11 sec)
用myisamchk查看表状态
# /usr/local/mysql/bin/myisamchk -dv /usr/data/mysql/discuz/cdb_posts01
MyISAM file: /usr/data/mysql/discuz/cdb_posts01
Record format: Packed
Character set: latin1 (
File-version: 1
Creation time: 2008-11-17 6:36:45
Recover time: 2008-11-17 15:57:11
Status: open,changed
Auto increment key: 1 Last value: 27231846
Data records: 12615563 Deleted blocks: 0
Datafile parts: 12615563 Deleted data: 0
Datafile pointer (bytes): 5 Keyfile pointer (bytes): 4
Datafile length: 2510425460 Keyfile length: 846066688
Max datafile length: 1099511627774 Max keyfile length: 4398046510079
Recordlength: 151
table description:
Key Start Len Index Type Rec/key Root Blocksize
1 1 4 unique unsigned long 0 97449984 1024
2 5 2 multip. unsigned short 0 172725248 1024
3 109 4 multip. unsigned long 0 270175232 1024
4 26 3 multip. uint24 0 356802560 1024
5 139 1 multip. int8 0 421388288 1024
6 7 3 multip. uint24 0 811988992 1024
139 1 int8 0
109 4 unsigned long 0
7 7 3 multip. uint24 0 660605952 1024
10 1 int8 0
此时用phpMyAdmin打开表最后的几个记录报错
MySQL 返回:
#1030 - Got error 127 from table handler
尝试用myisamchk修复表
# /usr/local/mysql/bin/myisamchk -r /usr/data/mysql/discuz/cdb_posts01.MYI
- recovering (with sort) MyISAM-table '/usr/data/mysql/discuz/cdb_posts01.MYI'
Data records: 12615563
- Fixing index 1
Read error for block at: 2151038968 (error: 22); Skipped
- Fixing index 2
- Fixing index 3
- Fixing index 4
- Fixing index 5
- Fixing index 6
- Fixing index 7
Data records: 10615563
修复完再用myisamchk查看状态大量的记录被忽略,数据大小停留在2G位置
# /usr/local/mysql/bin/myisamchk -dv /usr/data/mysql/discuz/cdb_posts01
MyISAM file: /usr/data/mysql/discuz/cdb_posts01
Record format: Packed
Character set: latin1 (
File-version: 1
Creation time: 2008-11-17 6:36:45
Recover time: 2008-11-18 8:24:38
Status: checked,optimized keys
Auto increment key: 1 Last value: 27231846
Data records: 10615563 Deleted blocks: 0
Datafile parts: 10615563 Deleted data: 0
Datafile pointer (bytes): 5 Keyfile pointer (bytes): 4
Datafile length: 2151038964 Keyfile length: 660606976
Max datafile length: 1099511627774 Max keyfile length: 4398046510079
Recordlength: 151
table description:
Key Start Len Index Type Rec/key Root Blocksize
1 1 4 unique unsigned long 0 97449984 1024
2 5 2 multip. unsigned short 0 172725248 1024
3 109 4 multip. unsigned long 0 270175232 1024
4 26 3 multip. uint24 0 356802560 1024
5 139 1 multip. int8 0 421388288 1024
6 7 3 multip. uint24 0 563155968 1024
139 1 int8 0
109 4 unsigned long 0
7 7 3 multip. uint24 0 660605952 1024
10 1 int8 0 |
|