昨天去客户现场, 遇到了一个貌似不咋地的问题。
描述如下:
IBDATA1的体积太大, 已经达到了300多G, 然后要扩展新的IBDATA, 于是我就在配置文件里面新加了一句,
innodb_data_file_path = /old/ibdata1:296664170496;/new/ibdata2:500G:autoextend:max:1000G
然后看到错误日志里面出现下面的信息,
110322 18:00:59 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: Error: data file d:\data\ibdata1 is of a different size
InnoDB:
18106944
pages (rounded down to MB)
InnoDB: than specified in the .cnf file
262080 pages!
InnoDB: Could not open or create data files.
InnoDB: If you tried to add new data files, and it failed here,
InnoDB: you should now edit innodb_data_file_path in my.cnf back
InnoDB: to what it was, and remove the new ibdata files InnoDB created
InnoDB: in this failed attempt. InnoDB only wrote those files full of
InnoDB: zeros, but did not yet use them in any way. But be careful: do not
InnoDB: remove old data files which contain your precious data!
110322 18:01:01 [ERROR] Plugin 'InnoDB' init function returned error.
110322 18:01:01 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
110322 18:01:01 [ERROR] Unknown/unsupported table type: INNODB
110322 18:01:01 [ERROR] Aborting
解决办法:
就是把ibdata1的文件单位扩大的MB,而不是字节,像下面这样写就对了,
innodb_data_file_path = /old/ibdata1:289711104M;/new/ibdata2:500G:autoextend:max:1000G