Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6683710
  • 博文数量: 1005
  • 博客积分: 8199
  • 博客等级: 中将
  • 技术积分: 13071
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-25 20:19
个人简介

脚踏实地、勇往直前!

文章分类

全部博文(1005)

文章存档

2020年(2)

2019年(93)

2018年(208)

2017年(81)

2016年(49)

2015年(50)

2014年(170)

2013年(52)

2012年(177)

2011年(93)

2010年(30)

分类: Mysql/postgreSQL

2014-10-21 17:28:48

   innodb引起的数据库,即使开启了 innodb_file_per_table=1 每个表一个ibdata文件,但是一些数据信息还是会存入到innodb_data_file_path定义的共享文件中,若是没有开启innodb_file_per_table的话,所有的数据都存放在共享文件中,这样的话就会导致ibdata文件不停的增长,导致磁盘空间紧张,通过下面的办法可以给ibdata文件瘦身.

1.备份所有的数据库
$mysqldump -h node2 -uroot -poracle --default-character-set=gbk --routines --single-transaction --all-databases|gzip>/dbext/mysql/bak/all_db_bak.sql.gz


2.删除数据库
mysql> drop database hxl;
Query OK, 0 rows affected (0.03 sec)

这个步骤可以不用,我这里是因为这个数据库有点问题,将其删除掉

3.停止mysql

mysqladmin -h hostname -uroot -p shutdown


4.删除ibdata*,ib_logfile文件
根据配置文件中相应参数(innodb_data_file_path,innodb_log_group_home_dir)指定的路径进行删除,每个数据库的环境都可能不一样
$rm /db/mysql/innodb/redolog/*
$rm /db/mysql/innodb/data/*


5.重新启动mysqld
重启动后,系统会根据配置innodb_data_file_path参数(这里可以根据需要调整ibdata文件,比如大小,个数
)自动生成ibdata文件,根据innodb_log_group_home_dir参数生成ib_logfile文件

6.导入数据
$time gunzip -c /dbext/mysql/bak/all_db_bak.sql.gz|mysql -h node2 -uroot -p

[mysql@node2 config]$ time gunzip -c /dbext/mysql/bak/all_db_bak.sql.gz|mysql -h node2 -uroot -p
Enter password:
ERROR 1813 (HY000) at line 45: Tablespace for table '`cr_debug`.`breakpoints`' exists. Please DISCARD the tablespace before IMPORT.


我这里报如上的错误,打算删除数据库cr_debug,这个可以放心删除,因为前面我们做了整个数据的备份
mysql> drop database cr_debug;
ERROR 1010 (HY000): Error dropping database (can't rmdir './cr_debug', errno: 39)
mysql> drop database cr_debug;
Query OK, 0 rows affected (0.00 sec)

进入到数据库目录cr_debug将该目录下的文件删除掉,然后再次执行导入命令.

-- The End --

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