一個mysql /tmp目錄爆滿問題的處理

來源:互聯網
上載者:User

標籤:mysql   一個   /tmp   

突然收到zabbix警示,說mysql伺服器的/目錄磁碟空間不足。

登入到伺服器,看了下發現100GB的根目錄,居然使用了差不多90GB。這台伺服器上只跑了一個MySQL,應該不是日誌未清理等其它原因造成的。


(說明:下面的幾張是後期截的,當時已經有部分SQL跑完,釋放掉部分磁碟空間了)

lsof |grep deleted 發現如下:

650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/99/39/wKioL1lF_ezRJ2IyAABQPE-MFtA584.png" title="1.png" alt="wKioL1lF_ezRJ2IyAABQPE-MFtA584.png" />可以看到這個臨時檔案差不多有40GB。



show processlist; 如下:

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M00/99/39/wKiom1lF_mTxOcCPAAApUEGKL_0121.png" title="2.png" alt="wKiom1lF_mTxOcCPAAApUEGKL_0121.png" />

看的話,沒有涉及到寫binlog的操作,但是由於單純的select並不會造成/tmp目錄爆滿的情況,所以猜測他這個同一個事務裡面之前還有涉及到寫binlog的操作(update、delete等)。



官方的說明:

https://dev.mysql.com/doc/refman/5.6/en/binary-log.html

650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/99/39/wKioL1lF_rbCcs8ZAAAYLZg3Ma8340.png" title="3.png" alt="wKioL1lF_rbCcs8ZAAAYLZg3Ma8340.png" />

當事務開始時,它將緩衝區語句分配一個binlog_cache_size大小的緩衝區(我這裡設定的是16777216bytes,即16MB)。 如果一個語句大於此,線程將開啟一個臨時檔案來儲存事務(預設是存放在/tmp/目錄下)。 當線程結束時,臨時檔案會自動被刪除。


上面就是因為事務裡面的臨時檔案超過16MB了,被放到/tmp目錄下了,但是這個臨時檔案實在太大了,導致磁碟空間不足警示了。


解決方案:

等上面的查詢結束後,我們先關閉mysqld。(條件能允許的話,當然是讓查詢自己結束。如果直接kill掉的話,估計復原也要話挺長時間的)


然後調整mysql的tmpdir到其他更大的磁碟去。

mkdir /bdata/mysql_tmp

chown mysql.mysql /bdata/mysql_tmp -R

chown 1777 -R /bdata/mysql_tmp -R

vim /etc/my.cnf 

[mysqld]

tmpdir = /bdata/mysql_tmp


然後啟動mysql即可

再次執行lsof|grep deleted 可以看到臨時檔案的路徑已經改到了/bdata/mysql_tmp目錄下了。

650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/99/39/wKioL1lF_t_yqanfAABBKYK1EhA286.png" title="4.png" alt="wKioL1lF_t_yqanfAABBKYK1EhA286.png" />


一個mysql /tmp目錄爆滿問題的處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.