MySQL5.5中的主從複製參數

內容來自mysql 5.5官方文檔


server-id 用於唯一標誌服務器,master與slave都需要,取值範圍0-4294967295.如果設置server-id爲0,那麼master會拒絕所有來自slave的連接,slave也會拒絕連接master,在mysql 5.5中,如果server-id被設置爲0,則server會默認把該值設置爲1.


master相關參數:


auto_increment_increment及auto_increment_offset:用於多主複製的時候,控制auto_increment列的insert值,默認爲1,如果設置爲0也會被設置爲1.auto_increment_increment控制每次增量,所有master都應該相同,auto_increment_offset控制增量之後的偏移量,所有master都應該不一樣。

 


slave相關參數:


abort-slave-event-count:當slave start之後,執行指定數目的event之後,不再從relay log讀取event,但IO與SQL還是處於雙YES。


disconnect-slave-event-count:當slave start 之後,執行指定數目的event之後,斷開與master的連接。


log-slave-update:控制從relay讀取的執行記錄是否寫入從庫的master日誌,true的時候是寫入,false的時候不寫入。主要用於A->B->C結構時的B數據庫。對於多主結構並且主庫後面都有對應從庫的情況下,所有主庫的該值都應該是true。


log-slow-slave-statements:是否允許慢日誌記錄slave sql線程執行的sql語句。


log-warning:這個值主要用於標記是否輸出服務器的一些警告信息,對於slave來說,主要包括在網絡錯誤後重新成功連接到主庫以及每個slave線程的啓動。該值默認爲1,可以設置爲0來關閉它,當設置爲大於1的時候,包括因爲權限問題連接失敗的情況也會被寫入。


master-info-file:記錄master相關信息的文件,默認爲master.info。


master-retry-count:slave試圖連接master的總次數,每次重連的時間間隔取決於change master的時候設置的master_connect_retry(默認60),默認爲86400.


slave-max-allowd-packet:設置slave 的 io及sql線程每處理的最大包大小,這樣的話一個大的行格式update複製不會導致複製失敗。這個值總是1024的倍數。


max-relay-log-size:relay日誌的最大大小。


read-only:設置slave拒絕除了super用戶之外所有的更新,這個參數主要用於讓更新只在master上執行。


relay-log:設置relay log的名稱。


relay-log-index:設置relaylog索引的名稱,可以重寫relay-log指定的索引名稱。


relay-log-info-file:slave記錄relay位置信息的文件。


relay-log-purge:是否自動刪除已經無用的relay日誌文件,默認開啓。


relay-log-recovery:該選項開啓之後,當服務器啓動之後,會刪除所有已有的relay日誌,然後從主庫重新接收relay日誌。


relay-log-space-limit:限制really log的最大佔用磁盤空間,0是無限制,當到達限制後,io線程會停止讀取master,直到sql線程執行完成後刪除relay日誌空出空間。但是當單個relay日誌文 件已經達到限制的話,這個限制會被無視。


replicate-do-db:dbname,對於行格式和語句格式的複製這個選項意義不同。行格式:執行所有非跨庫的對dbname的更新。語句格式:只執行當前用戶使用use 語法指定當前數據庫爲dbname後的複製更新(包括包含dbname的跨庫更新)。


replicate-ignore-db:dbname,語句格式:不執行任何使用use dbname指定數據庫的語句。行格式:不執行任何發生在dbname裏面的表上的複製。


replicate-do-table:執行發生在指定表的複製,包括跨庫更新及默認庫更新。


replicate-ignore-table:不執行對指定表的更新,包括包含該表的多表更新。


replicate-rewrite-db:from->to,slave把use from替換爲 use to,只有針對表操作的語句纔有效(不包括create database,drop database,alter database),並且from必須是master的默認數據庫(use 指定)。該選項不會重寫語句。不支持跨庫更新。


replicate-same-server-id:用於slave服務器,io線程會把server id與自己相同的event寫入日誌,與log-slave-updates選項衝突。


replicate-wild-do-table:類似數據庫like方式指定多個匹配的表,行爲類似replicate-do-table。


replicate-wild-ignore-table:類似數據庫like方式指定多個匹配的表,行爲類似replicate-ignore-table。


report-host:複製期間告知master slave的ip地址用於show slave hosts的輸出,由於NAT及其他一些路由方式的干擾,master未必能從tcp包裏面獲取到正確的IP地址。


report-password:用於show slave hosts的輸出,當master指定了show-slave-auth-info選項之後,會輸出複製用戶的認證信息。


report-port:指定報告給master的slave端口,默認爲3306,5.5.23之後,數據庫啓動後,會自動修正爲數據庫使用的端口。


report-user:類似report-password,master啓用show-slave-auth-info選項之後,會輸出複製用戶信息。


show-slave-auth-info:開啓後,會在show slave hosts裏面顯示report-user與report-password的信息。


skip-salve-start:當服務器啓動的時候,不要啓動複製。


slave-compressed-protocol:設置爲1的時候,如果master與slave都支持壓縮,複製通訊將會以壓縮的形式進行。


slave-load-tmpdir:slave創建臨時文件的位置,當sql線程執行load data infile語句的時候,它會把數據文件從relaylog提取到臨時文件裏面,然後把數據加載到表裏面。


slave-net-time-out:當多少時間沒有收到master答覆會被認爲是網絡超時。


slave-skip-errors:當遇到指定的錯誤碼的時候跳過錯誤繼續執行復制。


init-slave:指定一條每次sql線程初始化後就執行的語句。


relay-log:relaylog的名稱


relay-log-index:relaylog的索引名稱


relay-log-info-file:記載relay位置信息的文件。


relay-log-recovery:允許在服務器啓動後自動刪除已有relay日誌,之後從服務器重傳執行日誌。用於slave crash後以防relay日誌損壞。


slave-compressed_protocol:在支持的前提下,是否在slave或者master的協議中使用壓縮。


slave-exec-mode:STRICT,IDEMPOTENT,設置爲IDEMPOTENT後,會直接跳過1023(記錄未找到)及1062(主鍵重複)錯誤。STRICT爲默認值。


slave-transaction-retries:當slave sql線程在執行sql的時候遇到死鎖導致執行失敗的時候,sql線程在報告錯誤前執行指定次數來嘗試修復問題。


slave-type-conversions:用於限制在行格式複製的時候,slave是否自動轉化數據類型,默認不允許。


sql-slave-skip-counter:slave需要跳過的錯誤數。


sync-master-info:該值高於0的時候,會把master的信息同步到磁盤上,0的時候,依靠操作系統的io操作去同步。


sync-relay-log:每指定動作之後,slave都會把relay日誌同步到磁盤上。


sync_relay_log_info:每執行指定次數的時候,修改relay-log.info文件。



binlog相關參數:


binlog-row-event-max-event-size:指定行格式複製日誌event的最大大小,單位bytes,每一行數據會被切分到多個小於該限制的event包中,必須是256的倍數,默認1024.


log-bin:啓用二進制日誌,並指定日誌名稱。


log-bin-index:指定日誌索引名稱,會重寫log-bin的設定。


log-bin-trust-function-creators:指定mysql如何處理函數及存儲過程的創建,取決於用戶是否認爲自己的存儲過程及函數是否安全(確定的或者不修改數據),默認對於不安全的存儲過程及函數不執行茶創建。


log-bin-use-v1-row-events:該參數會強制數據庫使用舊的日誌格式,主要用於對mysql-cluster的支持,mysql5.5默認不支持。


log-short-format:只有在Statement下有效的選項,用於減小binlog記錄的大小。


binlog-do-db:類似replicate-do-db,其效果與statement模式及row模式有關,但是需要注意的是,在row模式下,也有以statement模式執行的語句,例如,ddl語句就是以statement模式記錄的。


statement日誌:只有默認db(use 指定)是指定值的語句纔會被記錄,需要注意的是,跨庫執行(在指定庫執行,但use指定另外一個數據庫)的語句不會被記錄,但是use指定指定庫,在另一個數據庫執行的語句會被記錄。


row日誌:只有實際在指定數據庫上執行的語句纔會被記錄,與use無關。對於同時`更新多個數據庫的語句,只有指定數據庫上的變更會被記錄。


binlog-ignore-db:類似replicate-ignore-db,在statement與row模式下表現不同。同時也需要注意在row模式下也有部分比如ddl語句會以statement模式記錄。


statement模式:數據庫不會記錄所有使用use指定指定數據庫的雨具。


row模式:不會記錄任何在指定數據庫上執行的變更,與use無關。


binlog-cache-size:row模式下,在一個事務中,可以緩存的binlog日誌大小。


binlog-stmt-cache-size:statement模式下,可以緩存的binlog大小。


binlog-direct-non-transactional-updates: 只可以用於statement模式,事務模式下,非事務表的更新會被直接寫入binglog。


binlog-format:複製的傳輸格式,statement,row,mixed,mixed默認使用statement,只有當statement不安全(比如系統函數調用)的時候,纔會使用row模式。


log-bin:是否開啓binlog。


log-binpuse-v1-row-event:是否使用從mysql NDB 7.2.1 開始的Version 2的日誌格式,設置爲1會使用之前的v1版本的日誌格式,這個值的設置必須重啓mysql 實例。


log-slave-updates:是否記錄從主庫接收的binlog記錄。


max-binlog-cache-size:row模式下,如果一個事務使用了多於指定大小的空間,會導致Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage錯誤。如果進行了修改,只有新連接的值纔會被修正。


max-binlog-stmt-cache-sie:statement模式下,如果一個事務使用了多於指定大小的空間,會導致Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage錯誤。


max-binlog-size:如果一個event的寫入會導致日誌文件大於指定值,則會新建一個文件寫入,但是大事務可能會導致日誌文件大小超出指定大小。


sync-binlog:設置爲大於0的數字的話,每sync-binlog次寫日誌活動都會被強制同步到磁盤。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章