5 添加与移除 InnoDB 数据和日志文件

为了添加一个数据文件到表空间中,首先要关闭 MySQL 数据库,编辑 my.cnf 文件,在 innodb_data_file_path 中添加一个新文件,然后再重新启动服务。

如果,最后一个文件以关键字 autoextend 来描述,那么编辑 my.cnf 的过程如下所示。必须检查最后一个文件的尺寸,并使它向下接近于 1024 * 1024 bytes (= 1 MB) 的倍数,并在 innodb_data_file_path 中明确指定它的尺寸。然后你可以添加另一个数据文件。记住只有 innodb_data_file_path 中的最后一个文件可以被指定为 auto-extending。

一个例子:假设起先仅仅只有一个 auto-extending 数据文件 ibdata1 ,这个文件越越接近于 988 MB。下面是添加了另一个 auto-extending 数据文件后的可能示例 。

innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend

通常不能移除 InnoDB 的数据文件。为了减小数据文件的大小,你必须使用 mysqldump 来转储(dump)所有的数据表,再重新建立一个新的数据库,并将数据导入新的数据库中。

如果希望改变 InnoDB 的日志文件数目,必须先关闭 MySQL 并确定完全关闭而没有发生任何错误。将旧的日志文件复制到其它安全的地方,以防在关闭服务时发生了错误而需要恢复数据库。删除所有日志文件,编辑 my.cnf,再重新启动 MySQL。InnoDB 在启动时将会提示它在建立新的日志文件。