注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

江志祥的博客

可恶的中国银行,信用卡像病毒啊,取消那么难,,,

 
 
 

日志

 
 

mysql的innodb扩容、ibdata1 瘦身  

2014-02-20 00:21:22|  分类: 计算机_mysql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

mysql的innodb扩容

为了添加一个数据文件到表空间中,首先要关闭 MySQL 数据库,编辑 my.cnf 文件,确认innodb ibdata文件的实际情况和my.cnf的配置是否一致,这里有两种情况:

my.cnf的配置

  1. innodb_data_file_path=ibdata1:10G;ibdata2:10G:autoextend  
如果当前数据库正在使用ibdata1,或者使用ibdata2,但ibdata2没有超过10G,则对my.cnf配置直接改成:

  1. innodb_data_file_path=ibdata1:10G;ibdata2:10G;ibdata3:10G:autoextend  

如果设置了最后一个ibdata自动扩展时,有可能最后一个ibdata的占用空间大于my.cnf的配置空间。例如:

  1. mysql@test:/data1/mysqldata/innodb/data> ls -lh  
  2. -rw-rw---- 1 mysql mysql 10737418240 2010-01-26 16:34 ibdata1  
  3. -rw-rw---- 1 mysql mysql 16106127360 2010-01-26 16:34 ibdata2  
这时,需要精确的计算ibdata2的大小 15360M,修改:

  1. innodb_data_file_path=ibdata1:10G;ibdata2:15360M;ibdata3:10G:autoextend  

重启mysql。

注意:

1、扩容前注意磁盘空间是否足够。
2、restart后关注是否生成了新的ibdata。

更多说明:

如果,最后一个文件以关键字 autoextend 来描述,那么编辑 my.cnf 的过程中,必须检查最后一个文件的尺寸,并使它向下接近于 1024 * 1024 bytes (= 1 MB) 的倍数(比方说现在autoextend 的/ibdata/ibdata1为18.5M,而在旧的my.ini中为10M,则需要修改为innodb_data_file_path = /ibdata/ibdata1:19M; 且必须是19M,如果指定20M,就会报错。),并在 innodb_data_file_path 中明确指定它的尺寸。然后你可以添加另一个数据文件。记住只有 innodb_data_file_path 中的最后一个文件可以被指定为 auto-extending。

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

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

ibdata1 瘦身

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

1、备份数据库

  1. mysqldump -uroot -p123456 --default-character-set=utf8 --opt --extended-insert=true --triggers -R --hex-blob --single-transaction --no-autocommit  test > db_name.sql  
2、停止数据库

  1. service mysqld stop  
3、删除相关文件

  1. ibdata1  
  2. ib_logfile*  
  3. mysql-bin.index  
4、手动删除除Mysql之外所有数据库文件夹,然后启动数据库

  1. service mysqld start  
5、还原数据

  1. /usr/local/mysql/bin/mysql -uroot -phigkoo < /data/bkup/mysqldump.sql  
主要是使用Mysqldump时的一些参数,建议在使用前看一个说明再操作。另外备份前可以先查看一下当前数据库里哪些表占用空间大,把一些不必要的给truncate table掉。这样省些空间和时间

改变 InnoDB 的日志文件数目

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

  评论这张
 
阅读(156)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017