远洋万和四季二期:002.MySQL innoDB表扩展

来源:百度文库 编辑:九乡新闻网 时间:2024/05/03 21:39:53
MySQL innoDB表扩展问题实践作者:bigguo 场景:
(1)数据库大部分表是innodb,小部分是MyISAM引擎存储。
(2)因为开初配置时未考虑过多,只采用了一个数据库文件(即ibdata1文件,当然会附加两个log files)来存储innodb表,导致系统运行之后数据库文件飙升
至少目前达到了5G多。很担心OS能否撑得住大文件,于是要考虑对innodb表空间进行扩展。
(3)MySQL 版本 mysql 5.1.33 win32
(4)一般有2种思路:第一种思路是,重新配置my.ini,采用多文件存储,但必须把原库数据dump出来,然后在新的配置下import进来。因为时间不允许,放弃该方案;
第二种是,依然重新配置my.ini,但不dump数据库。下面讲这个配置过程:
Step1.备份之前的全部和data有关的文件,以免“悲剧”重现
Step2.计算ibdata1的文件大小,单位M
Step3.
在my.ini中配置对【innodb_data_file_path = ibdata1:2866M;ibdata2:1000M:autoextend】参数进行修改。
但是看上去简单。上面ibdata1就是原来的唯一一个数据库文件,规定其大小必须是2886M,特别注意,这个大小必须是ibdata1的文件大小(需要重属性中找到文件大小字节数量,连除以1024两次,得到M),这个配置就会指示mysql进程启动时,重新构建ibdata2,且大小是1000M。这里千万注意ibdata1的大小如果不设置为实际大小,比如设置为比2886M大一点如2890M,那么mysql可以启动,但是我的实验表明,除了myisam表可以找到外,其他innodb表就不能打开,show engines之后发现innodb引擎根本启动不了的。