<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如果mysql磁盤(pán)滿(mǎn)了,會(huì)發(fā)生什么?還真被我遇到了~

          共 2494字,需瀏覽 5分鐘

           ·

          2021-03-07 12:23

          上一篇:再見(jiàn)了,收費(fèi)的Navicat
          作者:會(huì)飛的豬
          來(lái)源 :https://testerhome.com/topics/23049

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


          # 一系列神操作


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


          # 怎么辦


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

          SELECT CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size,CONCAT(TRUNCATE(SUM(max_data_length)/1024/1024,2),'MB') AS max_data_size,CONCAT(TRUNCATE(SUM(data_free)/1024/1024,2),'MB') AS data_free,CONCAT(TRUNCATE(SUM(index_length)/1024/1024,2),'MB') AS index_sizeFROM information_schema.tables WHERE TABLE_NAME = 'datainfo';

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

          個(gè)G。


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

          ALTER TABLE datainfo ENGINE=InnoDB;ANALYZE TABLE datainfo;
          optimize table datainfo;

          # 僵局:


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


          # 后來(lái)的神操作


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

          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
          service mysql stop

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


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

          mv /etc/my.cnf ./abc

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


          # 磁盤(pán)空間終于釋放了


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


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


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


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


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


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


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


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

          重新進(jìn)行還原,數(shù)據(jù)庫(kù)里的數(shù)據(jù)有了,并且驗(yàn)證沒(méi)有問(wèn)題。


          # 問(wèn)題解決


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


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


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


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


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


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


          注意


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


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


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


          # 自測(cè)


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



          PS:如果覺(jué)得我的分享不錯(cuò),歡迎大家隨手點(diǎn)贊、在看。

          大家一起在評(píng)論區(qū)聊聊唄~


          關(guān)注微信公眾號(hào):互聯(lián)網(wǎng)架構(gòu)師,在后臺(tái)回復(fù):2T,可以獲取我整理的教程,都是干貨。


          猜你喜歡

          1、GitHub 標(biāo)星 3.2w!史上最全技術(shù)人員面試手冊(cè)!FackBoo發(fā)起和總結(jié)

          2、如何才能成為優(yōu)秀的架構(gòu)師?

          3、從零開(kāi)始搭建創(chuàng)業(yè)公司后臺(tái)技術(shù)棧

          4、程序員一般可以從什么平臺(tái)接私活?

          5、37歲程序員被裁,120天沒(méi)找到工作,無(wú)奈去小公司,結(jié)果懵了...

          6、滴滴業(yè)務(wù)中臺(tái)構(gòu)建實(shí)踐,首次曝光

          7、不認(rèn)命,從10年流水線工人,到谷歌上班的程序媛,一位湖南妹子的勵(lì)志故事

          8、15張圖看懂瞎忙和高效的區(qū)別

          9、2T架構(gòu)師學(xué)習(xí)資料干貨分享

          瀏覽 27
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  足交一区二区三区 | 一区二区三区四区五区六区在线 | 操一操夜夜| 靠逼视频免费网站 | 欧美成人午夜无码A片秀色直播 |