<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磁盤滿了,會(huì)發(fā)生什么?

          共 2192字,需瀏覽 5分鐘

           ·

          2020-12-27 12:40

          來(lái)源:https://testerhome.com/topics/23049

          問(wèn)題

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

          一系列神操作

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

          怎么辦

          網(wǎng)上查了很多資源,說(shuō)要進(jì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_size
          FROM?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ā)生了,那張表格給刪掉了,但是磁盤空間還是沒(méi)有釋放啊。所以對(duì)表進(jìn)行碎片化整理的路也走不通了,因?yàn)楸頉](méi)了。。。

          后來(lái)的神操作

          使用命令查看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

          關(guān)閉mysql

          service?mysql?stop  

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

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

          mv?/etc/my.cnf?./abc

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

          service?mysql?start

          磁盤空間終于釋放了

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

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

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

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

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

          開始進(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)楸涣艨眨谝欢螘r(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ù)被寫入的區(qū)域中處于峰值位置的部分;

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

          降低訪問(wè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)行過(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?表名;


          題外話:推薦一個(gè)GitHub項(xiàng)目,這個(gè) GitHub 整理了上百本常用技術(shù)PDF,絕大部分核心的技術(shù)書籍都可以在這里找到,GitHub地址:https://github.com/gsjqwyl/awesome-ebook(電腦打開體驗(yàn)更好),地址閱讀原文直達(dá)。麻煩打個(gè)給個(gè)Star,持續(xù)更新中...


          ---END---

          文末福利





          瀏覽 55
          點(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>
                  欧美高清猛交xxx黑人猛交性乱 | 免费看黄网站 7 7入口 | 色情片在线播放 | 成人 免费视频A片视频88p | 亚洲日韩视频在线观看 |