免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3823 | 回复: 4
打印 上一主题 下一主题

ibdata1 缩小 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-01 17:46 |只看该作者 |倒序浏览
不用 重新装mysql 的 办法

首先 mysqldump -uroot ----all-databases > all.sql
rm /var/lib/mysql   的  ib_data1 ib_logfile1 ib_logfile2 以及其他 mysql.index
  之后重新启动 mysql   service mysql start

再倒入all.sql就可以了 /usr/local/mysql/bin/mysqldump -uDBuser -pPassword --quick --force --routines --add-drop-database --all-databases --add-drop-table > /data/bkup/mysqldump.sql

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-10-11 06:20:00数据库技术版块每日发帖之星
日期:2015-10-12 06:20:00数据库技术版块每日发帖之星
日期:2015-10-15 06:20:00数据库技术版块每日发帖之星
日期:2015-10-30 06:20:00综合交流区版块每月发帖之星
日期:2015-12-02 14:59:01数据库技术版块每日发帖之星
日期:2015-12-15 06:20:00
2 [报告]
发表于 2011-07-05 15:12 |只看该作者
如果我的数据库有500GB,怎么弄呀.

论坛徽章:
0
3 [报告]
发表于 2011-08-02 12:52 |只看该作者
本帖最后由 liyihongcug 于 2011-08-02 13:37 编辑

不可思议 (高压环境下有时候会遇到怪问题 )

重启机器 解决
++ /usr/bin/mysqladmin -uUNKNOWN_MYSQL_USER ping
+ RESPONSE='/usr/bin/mysqladmin: connect to server at '\''localhost'\'' failed
error: '\''Can'\''t connect to local MySQL server through socket '\''/var/lib/mysql/mysql.sock'\'' (2)'\''
Check that mysqld is running and that the socket: '\''/var/lib/mysql/mysql.sock'\'' exists!'
+ echo '/usr/bin/mysqladmin: connect to server at '\''localhost'\'' failed
error: '\''Can'\''t connect to local MySQL server through socket '\''/var/lib/mysql/mysql.sock'\'' (2)'\''
的问题 。

重新安装 没有 用 my.cnf 发现能导入数据的    (撞邪 本地测试几台机器都没有任何问题 在线几人在一起不停出现古怪问题 。你做就是不行 。换个人才可以。连rm 600g 数据都20分钟。
思路全部打乱。 有时候思路在高压会堵塞 客户上司压力下  正常能力会被质疑。  这个 db3年多没有动过 一碰就出现问题  mysql5.0.45。 本地测试 5.1.149没有问题的)

有时候重新安装mysql 确实比之前的要解决问题快。rpm -Uivh
装完换路径的 时候 需要 cp /var/lib/mysql  ----------->你的 当前的 /data/mysql  请必须做这个操作 否则没有办法做的 因为很多的 mysql控制权限安装 后的 文件在那个目录

但是 用了my.cnf 就发生问题   (这个配置比较复杂 先禁止innodb_file_per_table = 1 )
经验
1 备份 (库文件 +my.cnf)压倒一切 。
2 在线 高压下冷静思考  切勿慌乱 (最好喝杯咖啡)。所有历史操作快速思考 。平时时刻积累 看书必须独立思考
3 测试的时候必须保证版本都一样

如果不用  my.cnf 什么都正常 。
用了my.cnf 发生问题 。这个时候需要 删除ibdata1  删除 iblogfile 。把所有 数据库文件 删除 之后就可以建立了

这个时候
之后导入数据 出现
ERROR 1051 (42S02) at line 30: Unknown table 'alert'----------------------(确实测试库灭有发现这变态问题 )

解决是   delete db. recreatedb drop   据说是bug 我不知道 他 是如何想到 这个方法来解决的

论坛徽章:
0
4 [报告]
发表于 2011-08-02 16:27 |只看该作者
本帖最后由 liyihongcug 于 2011-08-02 16:37 编辑

指导 1. install a clean mysql
2. restarted as it is (with his my.cnf)--------------这里是ok的
3. change the my.cnf with ours
4. restart mysql


仅仅加入  innodb_file_per_table = 1  导致的错误如下   mysql5.045 直接用   innodb_file_per_table
110801 10:23:49  InnoDB: Setting file /data/mysql/innodb_files/ibdata1 size to 1000 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100 200 300 400 500 600 700 800 900 1000
110801 10:23:56  InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 128 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100
110801 10:23:57  InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 128 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
110801 10:23:58  InnoDB: Started; log sequence number 0 0
110801 10:23:58 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
110801 10:23:58 [ERROR] Do you already have another mysqld server running on port: 3306 ?

没有cp var/lib/mysql 数据到 /data/mysql 引起错误如下


110801 10:25:24  mysqld started
110801 10:25:25  InnoDB: Started; log sequence number 0 43656
110801 10:25:25 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
110801 10:25:25  mysqld ended

110801 10:26:24  mysqld started
110801 10:26:25  InnoDB: Started; log sequence number 0 43656
110801 10:26:25 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
110801 10:26:25  mysqld ended

110801 10:23:58 [ERROR] Aborting

模拟错误发现的 mysql -uroot < all.sql
ERROR 1005 (HY000) at line 33: Can't create table 'eMQ.AMQ_AKS' (errno: -1)
需要 把 /data/mysql 下的 所有库 除了mysql test 留下其他的都 删除
ib-data1 id_logfile等也要删除的

论坛徽章:
0
5 [报告]
发表于 2011-08-02 17:53 |只看该作者
这不相当于重建库嘛~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP