- 論壇徽章:
- 1
|
一、文件(數(shù)據(jù)文件、日志文件)
1、相關(guān)參數(shù):
innodb_data_home_dir
innodb_data_file_path=file_name:file_size[:autoextend[:max:max_file_size]]
注:
a、innodb_data_file_path的值應(yīng)該為一個或多個 數(shù)據(jù)文件規(guī)格的列表。如果命名一個以上的數(shù)據(jù)文件,用 分號(‘;’)分隔它們
b、autoextend屬性和后面跟著的屬性只可被用來對innodb_data_file_path行里最后一個數(shù)據(jù)文件。
c、InnoDB不創(chuàng)建目錄,所以在啟動服務(wù)器之前請確認(rèn)/ibdata目錄的確存在
d、如果沒有指定innodb_data_home_dir,則默認(rèn)為mysql數(shù)據(jù)目錄
e、如果你指定innodb_data_home_dir為一個空字符串,你可以為列在innodb_data_file_path值里的數(shù)據(jù)文件指定絕對路徑。
[mysqld]
innodb_data_home_dir =
innodb_data_file_path=/ibdata/ibdata1:50M;/ibdata/ibdata2:50M:autoextend
二、參數(shù)
1、innodb_autoextend_increment(動態(tài),默認(rèn)為8M)
當(dāng)自動擴(kuò)展表空間被填滿之時,為擴(kuò)展而增加的尺寸(MB為單位)。
2、innodb_fast_shutdown(動態(tài),默認(rèn)為1)
0:在關(guān)閉之前做一個完全凈化、插入緩沖合并和刷臟頁,最慢,但重啟最快
1:InnoDB在關(guān)閉之時跳過purge和insert buffer merge,只刷臟頁
2:刷新日志并強(qiáng)制關(guān)閉,類似crash,數(shù)據(jù)不會丟,但在啟動時會做一次崩潰恢復(fù)
mysql在關(guān)閉的時候進(jìn)行的操作:
1、purge all:刪除無用的undo頁
2、merge insert buffer
3、flush dirty page
3、innodb_flush_log_at_trx_commit(動態(tài),默認(rèn)為1)
0:最快,日志緩沖按默認(rèn)每秒一次地刷到磁盤,但在事務(wù)提交時不做操作,mysql崩潰時會丟失最后一秒的事務(wù)
1:最安全,日志緩沖按默認(rèn)每秒一次地刷到磁盤,并在事務(wù)提交時刷新到日志文件,同時調(diào)用fsync刷新到磁盤
2:折中,日志緩沖按默認(rèn)每秒一次地刷到磁盤,并在事務(wù)提交時刷新到日志文件,但不調(diào)用fsync,只有在系統(tǒng)崩潰時才會丟失最后一秒的事務(wù)
4、innodb_force_recovery(靜態(tài),默認(rèn)為0),用于從損壞的DB轉(zhuǎn)儲數(shù)據(jù)
0:表示當(dāng)需要恢復(fù)時執(zhí)行所有的恢復(fù)操作(即校驗數(shù)據(jù)頁/purge undo/insert buffer merge/rolling back&forward).當(dāng)不能進(jìn)行有效的恢復(fù)操作時,mysql有可能無法啟動,并記錄下錯誤日志.
1.(SRV_FORCE_IGNORE_CORRUPT): 忽略檢查到的corrupt頁.
2.(SRV_FORCE_NO_BACKGROUND): 阻止主線程的運行,如主線程需要執(zhí)行full purge操作,會導(dǎo)致crash.
3.(SRV_FORCE_NO_TRX_UNDO): 不執(zhí)行事務(wù)回滾操作.
4.(SRV_FORCE_NO_IBUF_MERGE): 不執(zhí)行插入緩沖的合并操作.
5.(SRV_FORCE_NO_UNDO_LOG_SCAN): 不查看重做日志,InnoDB存儲引擎會將未提交的事務(wù)視為已提交.
6.(SRV_FORCE_NO_LOG_REDO): 不執(zhí)行前滾的操作.
當(dāng)設(shè)置參數(shù)值大于0后,可以對表進(jìn)行select、create、drop操作,但insert、update、delete這類操作是不允許的
5、innodb_lock_wait_timeout
InnoDB事務(wù)在回滾之前可以等待一個鎖定的秒數(shù)
6、innodb_max_dirty_pages_pct
InnoDB中的主線程試著從緩沖池寫頁面,使得臟頁的百分比不超過這個值。
在show innodb status的log段中,可以查看Last checkpoint at與Log flushed up to的距離判斷當(dāng)前臟頁的情況
在BUFFER POOL AND MEMORY中,查看Modified db pages與Buffer pool size的比例關(guān)系,該值約等于innodb_max_dirty_pages_pct
show innodb status\G;
LOG
---
Log sequence number 16 881655880
Log flushed up to 16 881649862
Last checkpoint at 16 546135914
可以看到檢查點與log sequence number,Log flushed up to都有相當(dāng)大的差距。
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 19338953832; in additional pool allocated 13600768
Buffer pool size 1048576
Free buffers 17666
Database pages 1009478
Modified db pages 204553
修改的頁占到整個數(shù)據(jù)庫buffer pool頁將近20%,大小為204553*16k/1024=3.196G
7、innodb_max_purge_lag
8、innodb_mirrored_log_groups(默認(rèn)為1,沒有鏡像)
為數(shù)據(jù)庫保持的日志組內(nèi)同樣拷貝的數(shù)量。
10、innodb_open_files
在InnoDB中,這個選項僅與你使用多表空間時有關(guān)。它指定InnoDB一次可以保持打開的.ibd文件的最大數(shù)目。最小值是10。 默認(rèn)值300。
對.ibd文件的文件描述符是僅對InnoDB的。它們獨立于那些由--open-files-limit服務(wù)器選項指定的描述符,且不影響表緩存的操作。
innodb_thread_concurrency
InnoDB試著在InnoDB內(nèi)保持操作系統(tǒng)線程的數(shù)量少于或等于這個參數(shù)給出的限制。如果有性能問題,并
且SHOW INNODB STATUS顯示許多線程在等待信號,可以讓線程“thrashing” ,并且設(shè)置這個參數(shù)更小或更
大。如果你的計算機(jī)有多個處理器和磁盤,你可以試著這個值更大以更好地利用計算機(jī)的資源。一個推薦的值
是系統(tǒng)上處理器和磁盤的個數(shù)之和。值為500或比500大會禁止 調(diào)用并發(fā)檢查。默認(rèn)值是20,并且如果設(shè)置大
于或等于20,并發(fā)檢查將被禁止。
· innodb_status_file
這個選項讓InnoDB為周期的SHOW INNODB STATUS輸出創(chuàng)建一個文件<datadir>/innodb_status.<pid>。 |
|