全部博文(321)
分类: LINUX
2009-06-02 11:53:35
如果你使用InnoDB存储引擎,那么InnoDB数据文件管理将是你要面临的一个问题,
下面介绍如何正确的添加、删除数据文件以及添加数据文件时常见问题解决。
l 添加InnoDB数据文件
了解了InnoDB表空间的配置方法后,我们来尝试增加表空间的数据文件,在通常情况下,我们会遇到一个问题就是一个表空间的某个数据文件所在的磁盘空间磁盘紧张,这时需要为表空间增加一个新位置的新数据文件,同时关闭原来数据文件的自动扩展,这样才能保证不会因为磁盘满导致MySQL出现问题。
举例:
innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:
假设/ibdata/下可用空间为
innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:
添加完成后,重启MySQL服务,这时会停止对/ibdata/ibdata1数据文件的扩展,并创建新的数据文件/disk2/ibdata2。
MySQL重启时会看到如下日志:
--日志内容--
080909 19:09:26 InnoDB: Data file /disk2/ibdata2 did not exist: new to be created
080909 19:09:26 InnoDB: Setting file /disk2/ibdata2 size to 50 MB
InnoDB: Database physically writes the file full: wait...
另外,很多网友在增加表空间的数据文件时通常会遇到下面的问题,导致MySQL无法启动或启动后无法正常工作。
现象: 在MySQL日志中出现如下提示
080909 19:07:12 mysqld started
InnoDB: Error: data file /ibdata/ibdata1 is of a different size
InnoDB: 63872 pages (rounded down to MB)
InnoDB: than specified in the .cnf file 63872 pages!
InnoDB: Could not open or create data files.
出现上述问题的主要原因是“innodb_data_file_path = /ibdata/ibdata1:
计算公式:
64pages相当于
63872/64=
所以,设置为 innodb_data_file_path = /ibdata/ibdata1:
l 删除InnoDB数据文件
操作步骤如下:
1. 使用mysqldump转储所有InnoDB表。
2. 停止服务器。
3. 删除所有已存在的表空间文件。
4. 配置新表空间。
5. 重启服务器。
6. 导入转储文件。