데이터 베이스 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 Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

머신러닝 기반의 수치적 거리: 공간 내 점 사이의 거리 머신러닝 기반의 수치적 거리: 공간 내 점 사이의 거리 Apr 11, 2023 pm 11:40 PM

이 기사는 WeChat 공개 계정 "정보 시대에 살기"에서 재인쇄되었습니다. 저자는 정보 시대에 살고 있습니다. 이 기사를 재인쇄하려면 Living in the Information Age 공개 계정에 문의하세요. 머신러닝에서는 두 샘플 간의 차이를 판단하는 방법을 기본 개념으로 하여 두 샘플 간의 유사성과 카테고리 정보를 평가할 수 있습니다. 이러한 유사성을 판단하는 척도는 특징 공간에서 두 샘플 사이의 거리입니다. 다양한 데이터 특성에 따라 다양한 측정 방법이 있습니다. 일반적으로 두 데이터 샘플 x, y에 대해 함수 d(x, y)를 정의합니다. 두 샘플 사이의 거리로 정의되면 d(x, y)는 다음 기본 속성을 충족해야 합니다. 부정성: d(x, y)&gt;=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 드라이브용으로 최소 50GB~80GB의 공간을 확보하는 것이 좋습니다. 컴퓨터를 자주 사용하는 경우 최소 100GB가 필요합니다.

win11 업그레이드에 필요한 C 드라이브 공간 소개 win11 업그레이드에 필요한 C 드라이브 공간 소개 Dec 23, 2023 am 08:57 AM

우리 모두 알고 있듯이 시스템 설치가 완료된 후 차지하는 시스템 디스크가 너무 크면 시스템 지연, 지연 및 파일 손실이 발생할 수 있습니다. 따라서 win11 시스템을 설치하기 전에 win11을 업그레이드하는 데 필요한 C 드라이브 공간이 얼마나 되는지 알아야 합니다. win11을 업그레이드하는 데 필요한 C 드라이브 공간: 답변: win11을 업그레이드하려면 20-30GB의 C 드라이브 공간이 필요합니다. 1. Microsoft의 win11 구성 요구 사항에 따르면 win11 설치에는 64GB의 하드 드라이브 공간이 필요함을 알 수 있습니다. 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의 경우 356GB, Xbox Series X의 경우 850GB에 달하는 게임용 공간 문제가 있습니다. 이전 버전의 게임에서는 문제가 없었지만 게임의 최대 크기는 아마도 20GB에서 45GB 사이였을 것입니다. 최근 게임에서는 그렇지 않습니다. 최근에 사용 가능한 게임은 결국 디스크 공간을 많이 차지하게 되어 다른 게임을 다운로드할 수 있는 공간이 줄어듭니다. ForzaHorizon5 및 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월경에 출시될 것으로 예상됩니다. 그때까지 이를 준비할 수 있는 한 가지 방법은 iPhone을 사용하여 Apple 헤드폰에서 볼 수 있는 공간 비디오라는 특수 형식으로 비디오를 녹화하는 것입니다. 공간 비디오는 iPhone에서 볼 때 일반 비디오로 나타나지만 VisionPro에서는 거의 3차원에 가까운 비디오를 제공합니다.

사이버공간 보안에서의 인공지능 기술에 대한 고찰 사이버공간 보안에서의 인공지능 기술에 대한 고찰 Apr 11, 2023 pm 04:10 PM

1. 서론 현재 컴퓨터 네트워크의 폭발적인 성장으로 인해, 그에 따른 문제는 네트워크 공격의 수가 급증하고 있다는 점이다. 정부 부서부터 사회의 다양한 주요 인프라에 이르기까지 우리 사회의 다양한 부문은 컴퓨터 네트워크와 정보 기술에 크게 의존하고 있습니다. 분명히 그들은 사이버 공격에도 취약합니다. 일반적인 네트워크 공격은 대상 컴퓨터를 비활성화하거나, 서비스를 오프라인으로 전환하거나, 대상 컴퓨터의 데이터에 액세스합니다. 사이버 공격의 횟수와 영향은 1990년대 이후 크게 증가했습니다. 네트워크 보안은 네트워크 장치 활동을 보호하는 데 사용되는 일련의 기술과 가능한 모든 위협으로부터 이를 보호하기 위한 조치를 의미합니다. 기존 네트워크 보안 기술에서는 대부분 정적 액세스 관리이며 보안 제어 시스템은 미리 설정된 정의에 따라 보호합니다.

Baidu Cloud의 공간이 부족한 경우 어떻게 해야 할까요? Baidu Cloud의 공간이 부족한 경우 어떻게 해야 할까요? Mar 25, 2024 pm 11:01 PM

클라우드 스토리지는 우리의 일상생활과 업무에서 없어서는 안 될 부분이 되었습니다. 파일 수가 지속적으로 증가함에 따라 클라우드 저장 공간에 대한 수요가 점점 더 두드러지고 있습니다. 중국 최고의 클라우드 스토리지 서비스 제공업체인 Baidu Cloud는 강력한 스토리지 기능과 편리한 운영 경험으로 사용자의 호감을 얻었습니다. 하지만 많은 사용자들이 사용 중에 공간이 부족하다는 문제를 겪을 수 있으므로 이 튜토리얼이 용량 확장을 위한 자세한 솔루션을 제공할 것입니다. 1. Baidu Cloud에 로그인하세요. (바이두 계정, QQ 계정으로 로그인 가능합니다.) 2. 로그인 후 바이두 클라우드 좌측의 "2048G 용량 무료로 받기"를 클릭하세요. 3. Baidu Cloud 모바일 클라이언트를 다운로드하세요. Android 휴대폰용으로 다운로드하려면 클릭하세요.

See all articles