緊急應對Linux MySQL dump 程式崩潰三步走

來源:互聯網
上載者:User

Linux MySQL dump 程式崩潰不要慌,遵循下面三個簡單的步驟,就可以輕鬆解決。

一、Linux mysql dump要保證存放Coredump的目錄存在且進程對該目錄有寫入權限。存放Coredump的目錄即進程的目前的目錄,一般就是當初發出命令啟動該進程時所在的目錄。但如果是通過指令碼啟動,則指令碼可能會修改目前的目錄,這時進程真正的目前的目錄就會與當初執行指令碼所在目錄不同。這時可以查看”/proc/<進程pid>/cwd“符號連結的目標來確定進程 真正的目前的目錄地址。通過系統服務啟動的進程也可通過這一方法查看。

二、Linux mysql dump若程式調用了seteuid()/setegid()改變 了進程的有效使用者或組,則在預設情況下系統不會為這些進程產生Coredump。很多服務程式都會調用seteuid(),如MySQL,不論你用什麼用 戶運行mysqld_safe啟動MySQL,mysqld進行的有效使用者始終是msyql使用者。如果你當初是以使用者A運行了某個程式,但在ps裡看到的 這個程式的使用者卻是B的話,那麼這些進程就是調用了seteuid了。為了能夠讓這些進程產生core dump,需要將/proc/sys/fs /suid_dumpable檔案的內容改為1(一般預設是0)。

三、Linux mysql dump一般都知道,就是要設定足夠大的Core檔案大小限制 了。程式崩潰時產生的Core檔案大小即為程式運行時佔用的記憶體大小。但程式崩潰時的行為不可按平常時的行為來估計,比如緩衝區溢位等錯誤可能導致堆棧被 破壞,因此經常會出現某個變數的值被修改成亂七八糟的,然後程式用這個大小去申請記憶體就可能導致程式比平常時多佔用很多記憶體。因此無論程式正常運行時佔用 的記憶體多麼少,要保證產生Core檔案還是將大小限制設為unlimited為好。

相關文章

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.