给innodb表空间添加数据文件

| |
[不指定 2008/10/26 14:47 | by real ]
最简单的办法是
先把所有使用innodb引擎的表全部转储为myisam
关闭数据库,删除innodb的数据文件和日志文件
编辑my.cnf文件,添加新的数据文件,例如

引用
innodb_data_file_path = ibdata1:200M;ibdata2:200M;ibdata3:200M;ibdata4:200M;ibdata5:200M:autoextend

注意只有最后一个数据文件才能指定 autoextend属性。
启动数据库
再将原来的使用innodb引擎的表转储为innodb。
这样虽然麻烦一些,但不容易出错。
下面是转载的别人的做法,谁爱试试看就试试看,不拦着

引用
需要编辑my.ini文件中innodb_data_file_path条目。且需要调整已有数据文件的大小,比方说现在autoextend 的/ibdata/ibdata1为18.5M,而在旧的my.ini中为10M,则需要修改为innodb_data_file_path = /ibdata/ibdata1:19M; 且必须是19M,如果指定20M,就会报错。

然后添加新文件到innodb_data_file_path ,”/ibdata/ibdata1:19M;/disk2/ibdata2:50M”.这个ibdata2先不能在文件系统存在,重新启动后mysql将会自动创建并识别这个新增加的这个ibdata2。

为了添加一个数据文件到表空间中,首先要关闭 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)所有的数据表,再重新建立一个新的数据库,并将数据导入新的数据库中。
Tags:
mysql | 评论(0) | 引用(0) | 阅读(160)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 请输入左侧的字母,不区分大小写