自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如果 MySQL磁盤滿了,會(huì)發(fā)生什么?還真被我遇到了

數(shù)據(jù)庫 MySQL
網(wǎng)上查了很多資源,說要進(jìn)行磁盤碎片化整理。原因是datafree占據(jù)的空間太多啦。具體可以通過這個(gè)sql查看。

 [[439330]]

使用命令發(fā)現(xiàn)磁盤使用率為100%了,還剩幾十兆。

一系列神操作

備份數(shù)據(jù)庫,刪除實(shí)例、刪除數(shù)據(jù)庫表、重啟mysql服務(wù),結(jié)果磁盤空間均沒有釋放。

怎么辦

網(wǎng)上查了很多資源,說要進(jìn)行磁盤碎片化整理。原因是datafree占據(jù)的空間太多啦。具體可以通過這個(gè)sql查看。 

  1. SELECT CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size,  
  2. CONCAT(TRUNCATE(SUM(max_data_length)/1024/1024,2),'MB') AS max_data_size,  
  3. CONCAT(TRUNCATE(SUM(data_free)/1024/1024,2),'MB') AS data_free,  
  4. CONCAT(TRUNCATE(SUM(index_length)/1024/1024,2),'MB') AS index_size  
  5. FROM information_schema.tables WHERE TABLE_NAME = 'datainfo'

這個(gè)是后來的圖了,之前的圖沒有留,當(dāng)時(shí)顯示一張表里的data_free都達(dá)到了20 個(gè)G。

網(wǎng)上推薦的做法如下所示,對(duì)表格進(jìn)行碎片化整理。 

  1. ALTER TABLE datainfo ENGINE=InnoDB 
  2. ANALYZE TABLE datainfo;  
  3. optimize table datainfo;  

僵局:

查看數(shù)據(jù)庫版本為5.562不支持inodb,要么選擇升級(jí)數(shù)據(jù)庫。正在這時(shí),有個(gè)不好的消息發(fā)生了,那張表格給刪掉了,但是磁盤空間還是沒有釋放啊。所以對(duì)表進(jìn)行碎片化整理的路也走不通了,因?yàn)楸頉]了。。。

后來的神操作

1、使用命令查看mysql安裝的位置和配置文件所在的地方 

  1. mysql 1118 945 0 14:28 ? 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock 

2、關(guān)閉mysql 

  1. service mysql stop 

3、刪除datadir目錄下的ibdata1、ib_logfile0 ib_logfile1這些文件

4、 移動(dòng)mysql的啟動(dòng)參數(shù) 

  1. mv /etc/my.cnf ./abc 

5、重新啟動(dòng)mysql 發(fā)現(xiàn)磁盤空間釋放了 

  1. service mysql start 

磁盤空間終于釋放了

下一步數(shù)據(jù)庫還原

1、采用navicate備份工具,進(jìn)行數(shù)據(jù)庫備份

備份成功后生成了,生成psc文件。200409141055.psc

2、新建一個(gè)數(shù)據(jù)庫實(shí)例,設(shè)置數(shù)據(jù)庫名和字符集

3、然后對(duì)備份數(shù)據(jù)庫進(jìn)行還原,點(diǎn)擊還原

4、開始進(jìn)行還原 第一次還原后發(fā)現(xiàn)還原后數(shù)據(jù)庫表建成功了,但是表里面沒有數(shù)據(jù)。

后來網(wǎng)上查找資料發(fā)現(xiàn)是,遇到錯(cuò)誤就停止了。所以更改了還原的配置,再次進(jìn)行還原。之前是這樣設(shè)置的。

還原時(shí)當(dāng)成一個(gè)事務(wù)進(jìn)行了,遇到錯(cuò)誤就停止了。更改配置。

圖片重新進(jìn)行還原,數(shù)據(jù)庫里的數(shù)據(jù)有了,并且驗(yàn)證沒有問題。

問題解決

mysql碎片化產(chǎn)生的原因

(1)表的存儲(chǔ)會(huì)出現(xiàn)碎片化,每當(dāng)刪除了一行內(nèi)容,該段空間就會(huì)變?yōu)楸涣艨眨谝欢螘r(shí)間內(nèi)的大量刪除操作,會(huì)使這種留空的空間變得比存儲(chǔ)列表內(nèi)容所使用的空間更大;

(2)當(dāng)執(zhí)行插入操作時(shí),MySQL會(huì)嘗試使用空白空間,但如果某個(gè)空白空間一直沒有被大小合適的數(shù)據(jù)占用,仍然無法將其徹底占用,就形成了碎片;

(3)當(dāng)MySQL對(duì)數(shù)據(jù)進(jìn)行掃描時(shí),它掃描的對(duì)象實(shí)際是列表的容量需求上限,也就是數(shù)據(jù)被寫入的區(qū)域中處于峰值位置的部分。

清除碎片的優(yōu)點(diǎn):

降低訪問表時(shí)的IO,提高mysql性能,釋放表空間降低磁盤空間使用率。

注意

1.MySQL官方建議不要經(jīng)常(每小時(shí)或每天)進(jìn)行碎片整理,一般根據(jù)實(shí)際情況,只需要每周或者每月整理一次即可(我們現(xiàn)在是每月凌晨4點(diǎn)清理mysql所有實(shí)例下的表碎片)。

2.在OPTIMIZE TABLE運(yùn)行過程中,MySQL會(huì)鎖定表。因此,這個(gè)操作一定要在網(wǎng)站訪問量較少的時(shí)間段進(jìn)行。

3.清理student的105萬條數(shù)據(jù), OPTIMIZE TABLE 庫.student;本地測(cè)試需要37秒。

自測(cè)

大家可以用這條語句看看自己的系統(tǒng)的datafree大不大 show table status from 表名; 

 

責(zé)任編輯:龐桂玉 來源: 民工哥技術(shù)之路
相關(guān)推薦

2023-08-26 07:44:13

系統(tǒng)內(nèi)存虛擬

2011-10-11 15:42:54

大數(shù)據(jù)數(shù)據(jù)庫

2015-11-19 00:11:12

2023-04-27 07:40:08

Spring框架OpenAI

2021-08-11 08:32:24

Firefox英特爾LLVM

2022-08-16 13:41:24

穩(wěn)定幣加密世界攻擊

2015-08-18 09:09:46

WiFiO2O

2023-05-15 10:27:53

人工智能AI

2021-12-27 08:24:08

漏洞網(wǎng)絡(luò)安全

2021-08-19 17:27:41

IT數(shù)據(jù)中心災(zāi)難

2022-05-23 14:57:36

加密貨幣比特幣投資

2018-04-12 20:19:19

無線網(wǎng)絡(luò)人工智能機(jī)器學(xué)習(xí)

2020-05-11 08:36:21

程序員工作生活

2020-09-16 12:29:03

線程池任務(wù)函數(shù)

2020-06-08 15:15:26

程序員擺地?cái)?/a>技術(shù)

2024-02-29 16:51:36

GenAI運(yùn)營(yíng)供應(yīng)鏈

2023-06-27 16:53:50

2021-03-10 10:40:04

Redis命令Linux

2015-09-25 10:41:48

r語言

2021-10-18 22:29:54

OOMJava Out Of Memo
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)