ホームページ データベース mysql チュートリアル 为MySQL数据文件ibdata1瘦身_MySQL

为MySQL数据文件ibdata1瘦身_MySQL

Jun 01, 2016 pm 01:31 PM
空間

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

機械学習に基づいた数値距離: 空間内の点間の距離 機械学習に基づいた数値距離: 空間内の点間の距離 Apr 11, 2023 pm 11:40 PM

この記事は WeChat 公開アカウント「情報時代に生きる」から転載したものであり、著者は情報時代に生きています。この記事を転載するには、情報時代の暮らしの公開アカウントまでご連絡ください。機械学習では、2 つのサンプル間の類似性とカテゴリ情報を評価するために、2 つのサンプル間の差異をどのように判断するかが基本的な概念です。この類似性を判断する尺度は、特徴空間内の 2 つのサンプル間の距離です。さまざまなデータ特性に基づいた多くの測定方法があります。一般的に言えば、2 つのデータ サンプル x、y に対して、関数 d(x, y) を定義します。これが 2 つのサンプル間の距離として定義される場合、d(x, y) は次の基本特性を満たす必要があります。負性: d(x, y)>=0 恒等式: d(x, y)=0 ⇔ x=y のペア

Ubuntu 22.04 LTSにスワップスペースを追加する方法 Ubuntu 22.04 LTSにスワップスペースを追加する方法 Feb 20, 2024 am 11:12 AM

Linux システムでは、特にシステムのメモリが少ない場合に、スワップ スペースが重要な役割を果たします。これは、システムがスムーズに動作し、高負荷下でも安定性を維持できるようにするバックアップ メモリの保存スペースとして機能します。この記事では、システムのパフォーマンスが最適化され、さまざまなワークロードを処理できるようにするために、Ubuntu 22.04LTS にスワップ領域を追加するための詳細なガイドを提供します。スワップ スペースについて スワップ スペースは、システムの物理 RAM を補足するために使用される仮想メモリを提供します。システムの RAM が不足すると、カーネルはメモリ不足やシステムのクラッシュを防ぐためにデータをディスクにスワップします。 Linux システムは通常、この状況に対処するためにスワップ領域を使用します。メモリを大量に消費する複数のアプリケーションを同時に実行して、非常に大きなファイルやデータを処理します。

Cドライブの空き容量はどれくらいが適切でしょうか? Cドライブの空き容量はどれくらいが適切でしょうか? Jun 27, 2023 pm 02:51 PM

ドライブ c の残りのスペースは 50 ~ 80G がより適切です。システムは将来ジャンク ファイルやキャッシュ ファイルなどを生成するため、ソフトウェアをインストールするときにパスを選択することに慣れておらず、クリーンアップを行わない場合は、C ドライブに少なくとも 50 GB ~ 80 GB のスペースを確保することをお勧めします。コンピュータを頻繁に使用する場合は、少なくとも 100GB が必要です。

win11アップグレードに必要なCドライブの空き容量について紹介 win11アップグレードに必要なCドライブの空き容量について紹介 Dec 23, 2023 am 08:57 AM

ご存知のとおり、システムのインストール完了後にシステム ディスクの占有量が大きすぎると、システムの遅れ、遅延、さらにはファイルの損失が発生する可能性があります。したがって、win11 システムをインストールする前に、win11 のアップグレードに必要な C ドライブの空き容量をエディタで確認してみましょう。 win11 のアップグレードに必要な C ドライブの空き容量: 回答: win11 のアップグレードには、20 ~ 30 GB の C ドライブの空き容量が必要です。 1. Microsoft の win11 構成要件によると、win11 のインストールには 64 GB のハード ドライブ容量が必要であることがわかります。 2. しかし、実際には、一般的には、それほど広いスペースは必要ありません。 3. すでに win11 をインストールしているユーザーからのフィードバックによると、win11 のアップグレードには約 20 ~ 30GB の C ドライブ容量が必要です。 4. しかし、もし私たちのドアにこれしかないとしたら、

Xbox Series S または Xbox Series X のスペースを解放する方法 Xbox Series S または Xbox Series X のスペースを解放する方法 Apr 19, 2023 pm 01:46 PM

Xbox 本体には、ダウンロードしてプレイできるゲームが豊富に揃っています。 Microsoft の Xbox Game Pass サブスクリプションと組み合わせると、ゲーム コレクションの楽しみが止まらなくなります。ただし、ゲームに使用できるスペースの問題があり、Xbox Series S では 356 GB、Xbox Series X では 850 GB です。以前のバージョンのゲームではこれで問題ありませんでしたが、ゲームの最大サイズはおそらく 20 ~ 45 GB の間であり、最近のゲームには当てはまりません。最近入手したゲームはディスク上の多くのスペースを占有し、他のゲームをダウンロードするためのスペースが少なくなります。 ForzaHorizo​​n5 と Halo5Guardians など

iOS 17.2: iPhone 15 Pro で空間ビデオを録画する方法 iOS 17.2: iPhone 15 Pro で空間ビデオを録画する方法 Dec 15, 2023 pm 01:09 PM

iPhone 15 または iPhone 15 Pro Max をお持ちの場合、iOS 17.2 では空間ビデオを録画して、Apple の次期 Vision Pro ヘッドフォンの写真アプリで表示できるようになります。その方法は次のとおりです。 AppleのVisionProヘッドフォンは2024年2月頃に発売される予定だ。それまでは、これに備える 1 つの方法は、iPhone を使用して空間ビデオと呼ばれる特別な形式でビデオを録画し、Apple のヘッドフォンで視聴できるようにすることです。空間ビデオは iPhone で表示すると通常のビデオのように見えますが、VisionPro では 3 次元に近い感覚が得られます。

Baidu Cloud の容量が足りない場合の対処方法 Baidu Cloud の容量が足りない場合の対処方法 Mar 25, 2024 pm 11:01 PM

クラウド ストレージは私たちの日常生活や仕事に欠かせないものになっています。ファイル数が増加し続けるにつれて、クラウド ストレージ スペースに対する需要がますます顕著になっています。中国の大手クラウド ストレージ サービス プロバイダーとして、Baidu Cloud は強力なストレージ機能と便利な操作体験でユーザーの支持を得ています。しかし、多くのユーザーは使用中に容量不足の問題に遭遇するかもしれないので、このチュートリアルでは容量を拡張するための詳細な解決策を提供します。 1. Baidu Cloud のアカウントにログインします。 (BaiduアカウントまたはQQアカウントでログインできます) 2.ログイン後、Baidu Cloudの左側にある「2048G容量を無料で受け取る」をクリックします。 3. Baidu Cloud モバイル クライアントをダウンロードします。Android スマートフォン用にクリックしてダウンロードします。

サイバースペースセキュリティにおける人工知能技術のレビュー サイバースペースセキュリティにおける人工知能技術のレビュー Apr 11, 2023 pm 04:10 PM

1. はじめに 現在のコンピュータ ネットワークの爆発的な成長により、それに伴う問題はネットワーク攻撃の数が急増していることです。政府機関から社会のさまざまな重要インフラに至るまで、私たちの社会のさまざまな部門は、コンピューター ネットワークと情報技術に大きく依存しています。どうやらサイバー攻撃に対しても脆弱であるようです。一般的なネットワーク攻撃では、ターゲット コンピューターが無効になったり、サービスがオフラインになったり、ターゲット コンピューターのデータにアクセスされたりします。 1990 年代以降、サイバー攻撃の数と影響は大幅に増加しました。ネットワーク セキュリティとは、ネットワーク デバイスのアクティビティを保護するために使用される一連のテクノロジーと、考えられるすべての脅威からネットワーク デバイスを保護するための手段を指します。従来のネットワークセキュリティ技術では、そのほとんどが静的なアクセス管理であり、セキュリティ制御システムは事前に設定された定義に基づいて保護します。

See all articles