Linux mysql dump保證程序崩潰時要注意這些問題
Linux mysql dump要保證程序崩潰時生成Coredump要注意這些問題:
一、Linux mysql dump要保證存放Coredump的目錄存在且進程對該目錄有寫權(quán)限。存放Coredump的目錄即進程的當(dāng)前目錄,一般就是當(dāng)初發(fā)出命令啟動該進程時所在的目錄。但如果是通過腳本啟動,則腳本可能會修改當(dāng)前目錄,這時進程真正的當(dāng)前目錄就會與當(dāng)初執(zhí)行腳本所在目錄不同。這時可以查看”/proc/<進程pid>/cwd“符號鏈接的目標(biāo)來確定進程 真正的當(dāng)前目錄地址。通過系統(tǒng)服務(wù)啟動的進程也可通過這一方法查看。
二、Linux mysql dump若程序調(diào)用了seteuid()/setegid()改變 了進程的有效用戶或組,則在默認(rèn)情況下系統(tǒng)不會為這些進程生成Coredump。很多服務(wù)程序都會調(diào)用seteuid(),如MySQL,不論你用什么用 戶運行mysqld_safe啟動MySQL,mysqld進行的有效用戶始終是msyql用戶。如果你當(dāng)初是以用戶A運行了某個程序,但在ps里看到的 這個程序的用戶卻是B的話,那么這些進程就是調(diào)用了seteuid了。為了能夠讓這些進程生成core dump,需要將/proc/sys/fs /suid_dumpable文件的內(nèi)容改為1(一般默認(rèn)是0)。
三、Linux mysql dump一般都知道,就是要設(shè)置足夠大的Core文件大小限制 了。程序崩潰時生成的Core文件大小即為程序運行時占用的內(nèi)存大小。但程序崩潰時的行為不可按平常時的行為來估計,比如緩沖區(qū)溢出等錯誤可能導(dǎo)致堆棧被 破壞,因此經(jīng)常會出現(xiàn)某個變量的值被修改成亂七八糟的,然后程序用這個大小去申請內(nèi)存就可能導(dǎo)致程序比平常時多占用很多內(nèi)存。因此無論程序正常運行時占用 的內(nèi)存多么少,要保證生成Core文件還是將大小限制設(shè)為unlimited為好。
from
http://easwy.com/blog/archives/customize-filename-of-core-dump/
http://www.unix-center.net/bbs/viewthread.php?tid=12164
詳細(xì)出處參考:http://www.itqun.net/content-detail/76459_2.html
【編輯推薦】
- Linux tcpdump命令用法詳解
- Linux rsync同步由手動到自動
- 使用mysqldump備份數(shù)據(jù)庫的具體步驟
- CentOS系統(tǒng)如何解決鼠標(biāo)花屏的問題
- Linux測試工具tcpdump執(zhí)行相關(guān)功能的命令