MySQL一次沒有報錯的關閉
我的公眾號原文連結:
遇到 一個問題如圖:之前沒見過。背景是資料庫自己關閉了。MySQL8
但是輸出的第一行報錯不是資料庫自己的日誌,而是terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc。從字面分析錯誤的分配。 懷疑和記憶體溢位有關。結合監控看到了 SWAP開始大量釋放。
MySQL的記憶體給了20G,不大但是也不算小。懷疑是大事務導致 連續記憶體不足,而導致溢位。解析一下binlog,發現有些的確是比較大的。
std::bad_alloc這個報錯經過查詢是C++的輸出,該異常是因為在使用new分配記憶體空間時,記憶體空間不夠時就會丟擲該異常。這麼一想就通了。MySQL是C寫的。那麼一定是資料庫需要記憶體而沒有,導致了資料庫異常退出。
為此我特意去官網上查Bug發現沒有。進而我們看看整個機制。malloc分配記憶體是先在虛擬記憶體中分配地址的,到實際使用時才真正的對映到實體記憶體
到了MySQL真正要對映實體記憶體時,首先分配實體記憶體,此時top的res增加。如果實體記憶體不夠用了,分配swap,此時效能很差,此時top的res增加
所以,如果由於機器記憶體使用不當,到了MySQL真正要對映實體記憶體時,如果實體記憶體(記憶體+swap)不足了,就會出錯甚至退出。
(為什麼資料庫物理機相對來說好,這又是一個佐證)
結論:innodb_buffer_pool_size在mysqld啟動時在虛擬記憶體中分配地址,在使用過程中再對映到實體記憶體,如果實體記憶體(記憶體+swap)不足了,就會出錯甚至退出。
一般來說其實記憶體也夠用,即使不夠用也就是慢。因為記憶體和磁碟大量互動。而直接退出這個的確不常見。我依然懷疑這個是大事務造成,而且是連續性的。這裡不得不說這個機器的背景,就是用來做大量分析。其實這不是MySQL擅長的。我們們不能因為講MySQL就說MySQL什麼都好,也不能說其他就不行。尺有所短寸有所長。如果使用MySQL做分析,請使用MySQL雲端的企業版,配上heatwave外掛。
資料庫選型是個學問,最好是懂資料庫的人一錘定音,而不是負責應用開發的人發表想法。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2850479/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 請教關於mysql有沒有rowid?MySql
- MySQL 5.5 關閉資料庫報錯"Can't connect to local MySQL server through socket"MySql資料庫Server
- win10有沒有關閉鍵盤功能 win10筆記本如何關閉鍵盤的使用Win10筆記
- java培訓沒有錯 錯的是你沒有好好學Java
- Nginx報錯:Permission denied,沒有許可權!Nginx
- 記一次令人絕望的mysql啟動報錯MySql
- win10 關閉自動傳送錯誤報告方法 windows10錯誤報告怎麼關閉Win10Windows
- MySQL AttributeError: ‘Engine’物件沒有’execute’屬性的錯誤MySqlError物件
- 工作286:v-model沒有值會報錯
- 有沒有人曾告訴你,你的SQL又報錯了?SQL
- linux iptable 防火牆沒有關閉會影響監聽Linux防火牆
- Python匯入包報錯(沒有這個包)Python
- imagick使用readImage報錯 Failed to read the file 或者沒有報錯內容的解決方法AI
- mysql的啟動和關閉MySql
- javascript如何檢查並閉合沒有閉合的html元素JavaScriptHTML
- mysql關閉過程MySql
- 解決mysql_query()報錯的相關問題MySql
- 變數沒有宣告的錯誤變數
- 關閉PHP錯誤提示的方法PHP
- 解決element---el-dialog--關閉報錯問題
- 關閉windows2003開機事件報錯Windows事件
- 關於移除 .user.ini檔案報錯,提示沒有許可權問題解決方案
- MySQL Oracle 查詢快慢和表的資料量多少有沒有關係?MySqlOracle
- 有沒有關於go 的富文字外掛Go
- spring明明沒有迴圈引用的,為什麼總報這個錯?Spring
- MysqL自動提交機制的關閉MySql
- 如何關閉PHP錯誤提示PHP
- 關於Symbian的"程式已經關閉"錯誤
- Oracle有沒有MySQL的分割槽DDL遇到的問題OracleMySql
- Windows 7系統出現Bug無法關機 “你沒有關閉這臺電腦的許可權”Windows
- 命令列下執行 PHP artisan 相關命令沒有效果且沒有錯誤提示命令列PHP
- pip 命令安裝庫時沒有下載完畢就報錯
- 11g啟動sqlplus報錯沒有許可權SQL
- 【Mysql】into outfile報錯的問題MySql
- 智雲通CRM:銷售過程中,沒有關心就沒有關係?
- oracle關閉狀態刪除活動日誌報錯恢復(一)Oracle
- Vue+iview Modal元件關閉彈框之後報錯問題VueView元件
- MySQL5.7關閉NUMA方法MySql