mysql 文件系统规划_Mysql的文件系统规划以及日志配置
Mysql服務(wù)器文件系統(tǒng)規(guī)劃:
/dev/sda1 /boot
/dev/sda2 /
/dev/sda3 /home
/dev/sda4 /tmp
/dev/sdb1 /data
/dev/sdc1 /log
sda:系統(tǒng)目錄 ? sdb:數(shù)據(jù)目錄 ?sdc:日志目錄
linux調(diào)度策略:
--查看當(dāng)前的調(diào)度策略:
less /sys/block/sdb/queue/scheduler
[noop] anticipatory deadline cfq--建議修改為deadline:
echo deadline> /sys/block/sdb/queue/scheduler
--查看當(dāng)前的調(diào)度策略:
less /sys/block/sdc/queue/scheduler
[noop] anticipatory deadline cfq--建議修改為deadline:
echo deadline> /sys/block/sdc/queue/scheduler
deadline的特點:
通過時間以及硬盤區(qū)域進行分類,這個分類和合并要求類似于noop的調(diào)度程序.
Deadline確保了在一個截止時間內(nèi)服務(wù)請求,這個截止時間是可調(diào)整的,而默認讀期限短于寫期限.這樣就防止了寫操作因為不能被讀取而餓死的現(xiàn)象.
Deadline對數(shù)據(jù)庫環(huán)境(ORACLE RAC,MYSQL等)是最好的選擇
日志選擇配置篇
-- binlog日志(順序?qū)懭?
內(nèi)容:記錄所有數(shù)據(jù)庫變化的日志,,通過binlog可以實現(xiàn)主從同步,數(shù)據(jù)恢復(fù)等;binlog為兩個層次的,必須支持Innodb_support_xa,寫
完成以及binlog寫入完成時,才會提交事務(wù)。
說明:Innodb_support_xa設(shè)置為1,標(biāo)志支持分布式事務(wù),主要保證binary log和其他引擎的主事務(wù)數(shù)據(jù)保持一致性,屬于同步操作;如果設(shè)置為0,就是異步操作,這樣就會一定程度上減少磁盤的刷新次數(shù)和磁盤的競爭。
-- error日志(寫入的數(shù)據(jù)非常少)
錯誤日志包含四類信息:
(1) 服務(wù)器啟動和關(guān)閉進程過程中的信息;
(2) 服務(wù)器運行過程中的錯誤信息;
(3) 事件調(diào)度器運行一個事件時產(chǎn)生的信息;
(4) 在從服務(wù)器上啟動從服務(wù)器進程時產(chǎn)生的信息。
-- slow日志(跟業(yè)務(wù)相關(guān),順序?qū)懭?
內(nèi)容:慢日志記錄所有執(zhí)行時間超過long_query_time秒的所有查詢或不使用索引的查詢。
說明:主要跟業(yè)務(wù)相關(guān),如果業(yè)務(wù)系統(tǒng)不完善,long_query_time又相對較小的話,那么slow_log日志將會非常的大,這是就要考慮順序?qū)懭氲臓顩r。
--tmp目錄(順序?qū)懭?
內(nèi)容:tmp目錄要求的性能會更高,建議使用tmpfs,如果系統(tǒng)的臨時目錄寫入頻繁,讀寫的請求也相對較高,放系統(tǒng)的tmp目錄下是一個很好的選擇,并且tmp目錄的空間要求不大,要是查詢量非常大,數(shù)據(jù)集也非常大,整個tmp目錄都不一定存放的下,可以選擇單獨的劃分盤,
--InnoDb_log_file(順序循環(huán)寫入)
內(nèi)容:事務(wù)日志或稱redo日志,開啟幾組日志來服務(wù)于當(dāng)前mysql數(shù)據(jù)庫,mysql采用順序,循環(huán)寫方式,每開啟一個事務(wù)時,會把一些相關(guān)信息記錄事務(wù)日志中(記錄對數(shù)據(jù)文件數(shù)據(jù)修改的物理位置或叫做偏移量);
說明:可通過 innodb_log_file_size調(diào)節(jié)大寫,事務(wù)日志的大小也會影響性能,可將事務(wù)日志單獨分盤。
--double_write(順序讀寫)
內(nèi)容:為了解決 partial page write 問題 ,當(dāng)mysql將臟數(shù)據(jù)flush到data file的時候, 先使用memcopy 將臟數(shù)據(jù)復(fù)制到內(nèi)存中的double write buffer ,之后通過double write buffer再分2次,每次寫入1MB到共享表空間,然后馬上調(diào)用fsync函數(shù),同步到磁盤上,避免緩沖帶來的問題,在這個過程中,doublewrite是順序?qū)?#xff0c;開銷并不大,在完成doublewrite寫入后,在將double write buffer寫入各表空間文件,這時是離散寫入。
如果發(fā)生了極端情況(斷電),InnoDB再次啟動后,發(fā)現(xiàn)了一個Page數(shù)據(jù)已經(jīng)損壞,那么此時就可以從doublewrite buffer中進行數(shù)據(jù)恢復(fù)了。
建議方案:
-- binlog日志文件、error日志文件、show日志文件存儲在/log日志目錄中
-- tmp文件制定為系統(tǒng)根目錄/tmp
-- 其他所有目錄指定為數(shù)據(jù)目錄/data(與data目錄混用)
總結(jié)
以上是生活随笔為你收集整理的mysql 文件系统规划_Mysql的文件系统规划以及日志配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地产行业信息化建设思考
- 下一篇: Apizza-流程测试模式