搜尋
首頁資料庫mysql教程为MySQL数据文件ibdata1瘦身_MySQL

bitsCN.com

为MySQL数据文件ibdata1瘦身

 

MySQL在运行一段时间后,ibdata1的文件会增长大小,就算删除了表的数据,ibdata1的体积也不会减小。由于硬盘空间有限,这样一直膨胀下去磁盘空间接近崩溃。今天在导出数据的时候就发现了,磁盘竟然满了,明明预留了1个月的用量,1周就占满了,下面就要给ibdata1做个瘦身。

 

1. 系统环境

Linux Ubuntu 13.04 64bit server

 

~ uname -a

Linux d2 3.8.0-21-generic #32-Ubuntu SMP Tue May 14 22:16:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

~ cat /etc/issue

Ubuntu 13.04 /n /l

MySQL: 5.5.31-0ubuntu0.13.04.1

 

~ mysql --version

mysql  Ver 14.14 Distrib 5.5.31, for debian-linux-gnu (x86_64) using readline 6.2

硬盘:36G+4G+4G+36G

 

~ df -hFilesystem                    Size  Used Avail Use% Mounted on/dev/mapper/server3--vg-root   36G   31G  3.2G  91% /none                          4.0K     0  4.0K   0% /sys/fs/cgroupudev                          4.1G  1.1G  3.0G  26% /devtmpfs                         824M  280K  823M   1% /runnone                          5.0M     0  5.0M   0% /run/locknone                          4.1G  3.4G  729M  83% /run/shmnone                          100M     0  100M   0% /run/user/dev/vda1                     228M   30M  187M  14% /boot192.168.1.10:/home/amg/data    36G   13G   21G  39% /home/amg/dataMySQL的ibdata1占用空间:20G~ cd /var/lib/mysql~ ls -ldrwxr-xr-x 2 mysql mysql        4096 Aug  2 19:38 CBdrwxr-xr-x 2 mysql mysql        4096 Jun 24 23:08 conandrwxr-xr-x 2 mysql mysql        4096 Jun  2 00:52 dbwordpress-rwxr-xr-x 1 root  root            0 May 23 00:48 debian-5.5.flag-rwxr-xr-x 1 mysql mysql 20101201920 Aug  2 20:08 ibdata1-rwxr-xr-x 1 mysql mysql     5242880 Aug  2 20:08 ib_logfile0-rwxr-xr-x 1 mysql mysql     5242880 Aug  2 19:38 ib_logfile1drwxr-xr-x 2 mysql mysql        4096 Jun 26 09:03 Macrodrwxr-xr-x 2 mysql root         4096 May 23 00:48 mysql-rwxr-xr-x 1 root  root            6 May 23 00:48 mysql_upgrade_infodrwxr-xr-x 2 mysql mysql        4096 May 23 00:48 performance_schemadrwxr-xr-x 2 mysql mysql        4096 May 23 00:53 phpmyadmindrwxr-xr-x 2 mysql root         4096 May 23 00:48 testdrwxr-xr-x 2 mysql mysql        4096 Jul 22 14:09 TFdrwxr-xr-x 2 mysql mysql        4096 Jun  2 01:04 wordpress业务数据表mysql> show tables;+-----------------+| Tables_in_CB    |+-----------------+| NSpremium       || cb_hft          || cb_hft_20130801 || cb_hft_20130802 |+-----------------+4 rows in set (0.00 sec)

 

 

2. 发现问题

ibdata1单个文件占用20G大小。

1. MySQL默认设置,没有按表空间分离数据,所有的表的数据都被放到ibdata1文件中。

2. 业务操作,每天会产生一张表cb_hft,晚上的时候对表进行重命名。

 

 

RENAME TABLE cb_hft TO cb_hft_20130801;

create table cb_hft like cb_hft_20130801;

3. 每周会把数据导出,同时drop表。但drop后,ibdata1不会减少,随着数据的积累ibdata1越来越大,根空间已经不够用了。

 

3. 解决问题

1). 导出数据

现在数据库中,有两个数据表,cb_hft_20130801,cb_hft_20130802,分别导出到/run/shm, /dev

 

~ cd /dev~ mysqldump -uroot -p CB cb_hft_20130802 > export_cb_hft_20130802.sql~ cd /run/shm~ mysqldump -uroot -p CB cb_hft_20130801 > export_cb_hft_20130801.sql~ df -hFilesystem                    Size  Used Avail Use% Mounted on/dev/mapper/server3--vg-root   36G   31G  3.2G  91% /none                          4.0K     0  4.0K   0% /sys/fs/cgroupudev                          4.1G  3.7G  368M  92% /devtmpfs                         824M  280K  823M   1% /runnone                          5.0M     0  5.0M   0% /run/locknone                          4.1G  3.4G  729M  83% /run/shmnone                          100M     0  100M   0% /run/user/dev/vda1                     228M   30M  187M  14% /boot192.168.1.10:/home/amg/data    36G   13G   21G  39% /home/amg/data两张表分别占了,3.4G,3.7G。登陆mysql删除CB数据库~ mysql -uroot -p~ drop database CB导出其他数据库数据~ cd /run/shm~ mysqldump -uroot -p -R -q --all-databases > others.sql

 

2). 修改配置文件/etc/mysql/my.cnf

对每张表使用单独的数据文件存储innodb_file_per_table

 

停止mysql服务器~ sudo /etc/init.d/mysql stop#清空所有数据文件~ sudo rm -rf /var/lib/mysql/*修改配置文件~ sudo vi /etc/mysql/my.cnf[mysqld]innodb_file_per_table重新构建数据库实例~ /usr/bin/mysql_install_db~ ls /var/lib/mysqlmysql  performance_schema  test#启动MySQL~ sudo /etc/init.d/mysql start

 

3). 恢复其他数据库

 

~ mysql < /run/shm/others.sql ~ mysql -umysql -p mysql> show databases;+--------------------+| Database           |+--------------------+| information_schema || Macro              || TF                 || conan              || dbwordpress        || mysql              || performance_schema || phpmyadmin         || test               || wordpress          |+--------------------+10 rows in set (0.01 sec)#查看ibdata1大小~ ls -l /var/lib/mysqldrwx------ 2 mysql mysql     4096 Aug  2 21:33 CBdrwx------ 2 mysql mysql     4096 Aug  2 21:23 conandrwx------ 2 mysql mysql     4096 Aug  2 21:23 dbwordpress-rw-rw---- 1 mysql mysql 18874368 Aug  2 21:34 ibdata1-rw-rw---- 1 mysql mysql  5242880 Aug  2 21:34 ib_logfile0-rw-rw---- 1 mysql mysql  5242880 Aug  2 21:34 ib_logfile1drwx------ 2 mysql mysql     4096 Aug  2 21:23 Macrodrwx------ 2 mysql root      4096 Aug  2 21:23 mysqldrwx------ 2 mysql mysql     4096 Aug  2 21:19 performance_schemadrwx------ 2 mysql mysql     4096 Aug  2 21:23 phpmyadmindrwx------ 2 mysql root      4096 Aug  2 21:19 testdrwx------ 2 mysql mysql     4096 Aug  2 21:23 TFdrwx------ 2 mysql mysql     4096 Aug  2 21:23 wordpress

 

4). 恢复CB数据库

 

mysql> create database CB;Query OK, 1 row affected (0.00 sec)~  mysql --database CB < /run/shm/export_cb_hft_20130801.sql~  mysql --database CB < /dev/export_cb_hft_20130802.sql~  mysql --database CB < /dev/export_NSpremium.sql#查看ibdata1大小:还是出初始值没有增长~ ls -l /var/lib/mysqldrwx------ 2 mysql mysql     4096 Aug  2 21:33 CBdrwx------ 2 mysql mysql     4096 Aug  2 21:23 conandrwx------ 2 mysql mysql     4096 Aug  2 21:23 dbwordpress-rw-rw---- 1 mysql mysql 18874368 Aug  2 22:01 ibdata1-rw-rw---- 1 mysql mysql  5242880 Aug  2 22:01 ib_logfile0-rw-rw---- 1 mysql mysql  5242880 Aug  2 22:01 ib_logfile1drwx------ 2 mysql mysql     4096 Aug  2 21:23 Macrodrwx------ 2 mysql root      4096 Aug  2 21:23 mysqldrwx------ 2 mysql mysql     4096 Aug  2 21:19 performance_schemadrwx------ 2 mysql mysql     4096 Aug  2 21:23 phpmyadmindrwx------ 2 mysql root      4096 Aug  2 21:19 testdrwx------ 2 mysql mysql     4096 Aug  2 21:23 TFdrwx------ 2 mysql mysql     4096 Aug  2 21:23 wordpress#查看CB库目录:所有的数据都保存在自己单独的数据文件~ ls -l /var/lib/mysql/CB-rw-rw---- 1 mysql mysql       9928 Aug  2 21:33 cb_hft_20130801.frm-rw-rw---- 1 mysql mysql 7159676928 Aug  2 22:08 cb_hft_20130801.ibd-rw-rw---- 1 mysql mysql       9928 Aug  2 22:09 cb_hft_20130802.frm-rw-rw---- 1 mysql mysql 7805599744 Aug  2 22:38 cb_hft_20130802.ibd-rw-rw---- 1 mysql mysql         61 Aug  2 21:30 db.opt

 

 

刚才设置的innodb_file_per_table参数已经起作用了,当我们再导出表drop后,对应的数据文件idb就会被删除,系统硬盘空间使用就会在正常值范围内。

 

查看表数据

 

mysql> show tables;+-----------------+| Tables_in_CB    |+-----------------+| cb_hft_20130801 || cb_hft_20130802 |+-----------------+2 rows in set (0.00 sec)mysql> select count(1) from cb_hft_20130801;+----------+| count(1) |+----------+| 21063172 |+----------+1 row in set (1 min 1.46 sec)#删除表~ drop table cb_hft_20130801;#查看数据文件~ ls -l /var/lib/mysql/CB-rw-rw---- 1 mysql mysql       9928 Aug  2 22:09 cb_hft_20130802.frm-rw-rw---- 1 mysql mysql 7805599744 Aug  2 22:38 cb_hft_20130802.ibd-rw-rw---- 1 mysql mysql         61 Aug  2 21:30 db.opt-rw-rw---- 1 mysql mysql       9274 Aug  2 22:52 NSpremium.frm-rw-rw---- 1 mysql mysql      98304 Aug  2 22:53 NSpremium.ibd

 

drop后,数据就一起被删除了。

 

经过对MySQL的调优,ibdata1已经被瘦身!数据库又可以继续正常的稳定的工作了。

 

bitsCN.com
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
机器学习基础之数字上的距离:点在空间中的距离机器学习基础之数字上的距离:点在空间中的距离Apr 11, 2023 pm 11:40 PM

本文转载自微信公众号「活在信息时代」,作者活在信息时代。转载本文请联系活在信息时代公众号。在机器学习中,一个基础的概念就是如何判断两个样本之间的差异,从而能够评价两个样本之间的相似性和类别等信息。而判断这种相似性的度量就是两个样本在特征空间内的距离。根据数据特征的不同,度量方法有很多种。一般而言,对两个数据样本x,y,定义一个函数d(x,y),如果定义其为两个样本之间的距离,那么d(x,y)则需要满足以下几条基本性质:非负性:d(x,y)&gt;=0同一性:d(x,y)=0 ⇔ x=y对

升级win11需要的C盘空间介绍升级win11需要的C盘空间介绍Dec 23, 2023 am 08:57 AM

众所周知,如果系统安装完成后占用系统盘太大,可能会导致系统运行卡顿、延迟,甚至是文件丢失。因此大家在安装win11系统之前,需要了解升级win11需要多大C盘空间,下面就跟着小编一起来看看吧。升级win11需要多大C盘空间:答:升级win11需要20-30GB的C盘空间。1、根据微软的win11配置要求可以看到,win11安装需要64GB的硬盘空间。2、但其实一般来说是不需要这么大的空间的。3、根据已经安装win11的用户反馈,win11升级大概需要20-30GB的C盘空间。4、但是如果我门只有

c盘剩余空间多大合适c盘剩余空间多大合适Jun 27, 2023 pm 02:51 PM

c盘剩余空间50-80G比较合适。由于系统在日后使用当中会产生垃圾文件,缓存文件等因此建议至少预留50GB-80GB的空间给C盘;如果您不习惯在安装软件时选择路径,日常也不是经常清理电脑,那么至少需要100GB。

如何在 Ubuntu 上添加交换空间 22.04 LTS如何在 Ubuntu 上添加交换空间 22.04 LTSFeb 20, 2024 am 11:12 AM

交换空间在Linux系统中扮演着重要角色,特别是在系统内存不足时。它充当着一个备用的内存存储空间,可以帮助系统平稳运行,即使在负载高的情况下也能保持稳定性。本文为您提供了在Ubuntu22.04LTS上添加交换空间的详细指南,以确保您的系统性能得到优化并能应对各种工作负载。了解交换空间交换空间提供虚拟内存,用于补充系统的物理RAM。当系统的RAM不足时,内核会将数据交换到磁盘,以防止内存不足和系统崩溃。Linux系统常用交换空间来处理这种情况。同时运行多个内存密集型应用程序处理非常大的文件或数据

如何释放 Xbox Series S 或 Xbox Series X 上的空间如何释放 Xbox Series S 或 Xbox Series X 上的空间Apr 19, 2023 pm 01:46 PM

Xbox游戏机有大量可供下载和玩的游戏。再加上Microsoft的Xbox游戏通行证订阅,乐趣无穷无尽的游戏收藏永远不会停止。但是,存在可用于游戏的空间问题,XboxSeriesS为356GB,XboxSeriesX为850GB。虽然这在以前的游戏版本中很好,游戏的最大大小可能在20到45GB之间,这不是最近的游戏。最近可用的游戏最终占用了磁盘上的大量空间,从而使我们下载其他游戏的空间更少。ForzaHorizo​​n5和Halo5Guardians等

iOS 17.2:如何在 iPhone 15 Pro 上录制空间视频iOS 17.2:如何在 iPhone 15 Pro 上录制空间视频Dec 15, 2023 pm 01:09 PM

如果您使用的是iPhone15或iPhone15ProMax,iOS17.2允许您录制空间视频,以便在Apple即将推出的VisionPro耳机上的照片应用程序中查看。这是你如何做到的。Apple的VisionPro耳机预计将于2024年&lt;&gt;月左右发布。在那之前,您可以为此做好准备的一种方法是使用iPhone以一种称为空间视频的特殊格式录制视频,该格式可在Apple的耳机上观看。在iPhone上观看时,空间视频显示为普通视频,但它们在VisionPro上提供了近乎三维

百度云空间不足怎么办百度云空间不足怎么办Mar 25, 2024 pm 11:01 PM

云存储已经成为我们日常生活和工作中不可或缺的一部分。随着文件数量的不断增加,云存储空间的需求也日益凸显。作为国内领先的云存储服务提供商,百度云凭借其强大的存储功能和便捷的操作体验,赢得了广大用户的青睐。但是很多用户们可能都在使用过程中遇到过空间不足的困扰,那么这篇教程就为大家带来详细的解决扩充容量办法,希望能帮助到大家!1.在百度云中登录自己的账号。(可以使用百度账号登录,也可以使用QQ账号登录)2.登录后点击百度云左侧的“免费领取2048G容量”。3.下载百度云的手机客户端,安卓手机的点击下载

头条搜索极速版空间不足怎么办头条搜索极速版空间不足怎么办Feb 27, 2024 am 11:46 AM

随着手机使用的日益频繁,许多用户可能会发现手机存储空间不足,这可能会导致一些应用无法正常运行或影响手机的整体性能。对于头条搜索极速版的用户来说,可能有的时候缓存内容很多,那么手机提示空间不足时,应该如何处理呢?那么就快来下文中跟着小编一起操作清理吧!头条搜索极速版空间不足怎么办答案:清理空间。清理空间的方法:1、首先打开头条搜索极速版软件,进入到软件的首页中后我们点击右下角的【我的】;2、然后在我的页面中滑动到下方之后找到【系统设置】功能点击;3、接着在系统设置的页面中我们点击【清除缓存】;4、

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具