Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1098187
  • 博文数量: 321
  • 博客积分: 7872
  • 博客等级: 少将
  • 技术积分: 2120
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 09:06
文章分类

全部博文(321)

文章存档

2017年(1)

2016年(1)

2015年(12)

2014年(17)

2013年(78)

2012年(15)

2011年(17)

2010年(67)

2009年(102)

2008年(11)

分类: LINUX

2009-06-02 11:53:35

3.3.2 InnoDB数据文件管理

如果你使用InnoDB存储引擎,那么InnoDB数据文件管理将是你要面临的一个问题,

下面介绍如何正确的添加、删除数据文件以及添加数据文件时常见问题解决。

l 添加InnoDB数据文件

了解了InnoDB表空间的配置方法后,我们来尝试增加表空间的数据文件,在通常情况下,我们会遇到一个问题就是一个表空间的某个数据文件所在的磁盘空间磁盘紧张,这时需要为表空间增加一个新位置的新数据文件,同时关闭原来数据文件的自动扩展,这样才能保证不会因为磁盘满导致MySQL出现问题。

举例:

innodb_data_home_dir =

innodb_data_file_path = /ibdata/ibdata1:10M:autoextend

假设/ibdata/下可用空间为1G ,这个数据文件过一段时间已经长到988MB。这必须添加一个新位置的新数据文件,来保证充裕的表空间,下面是添加一个可扩展数据文件之后的配置行:

innodb_data_home_dir =

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

添加完成后,重启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:900M”中数据文件大小指定不正确,这里给出了一个计算公式可以解决网友的这个问题

计算公式:

64pages相当于1M
     63872/64=988M

所以,设置为 innodb_data_file_path = /ibdata/ibdata1: 988M 就可以避免上述错误出现。

l 删除InnoDB数据文件

操作步骤如下:

1.    使用mysqldump转储所有InnoDB表。

2.    停止服务器。

3.    删除所有已存在的表空间文件。

4.    配置新表空间。

5.    重启服务器。

6.    导入转储文件。

阅读(997) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~