mysql複製參數講解

來源:互聯網
上載者:User

標籤:mysql複製參數講解

mysql複製參數講解

1、master上的參數

log-bin  #必須

server-id #1-pow(2,32)-1#必須 (連接埠+ip)

server-uuid  #路徑為$datadir/auto.cnf

log-bin-index#必須

binlog-format

binlog_cache_size

max_binlog_size

sync_binlog

expire_logs_days

log_bin_trust_function_creators


2、配置參數(IGNORE/DO規則的炕)

log-bin

binlog檔案名稱首碼,可以全路徑

log-bin=mybinlog

log-bin=/data/mysql/mysql3306/mybinlog

不可動態修改

server-id

唯一區別ID,同一個叢集內不可重複

可動態修改從mysql5.6開始


log-bin-index

binlog索引檔案首碼名,和log-bin一樣,也可以全路徑

不可動態修改

binlog-format

binlog日誌格式:statement|row|mixed 三種

可動態修改

binlog_cache_size  建議1M到2M

binlog寫入buffer

可動態修改參數

max_binlog_size 預設是1G 推薦128M 或256M

限制單個binlog大小

可動態修改

sync_binlog=n 

#交易系統為了安全 sync_binlog=1

多少個sql之後,調用fdatasync函數重新整理binlog到disk

fsync()/fdatasync區別是什嗎?

fsync是完全傷心到磁碟,fdatasync只重新整理資料,不重新整理metadata

可動態修改


expire_logs_days=n  推薦儲存7天

n天后自動刪除binlog

可動態修改

log_bin_trust_function_creators=n  一般情況下為1就行

開啟binlog時,是否允許建立預存程序

可動態修改

3、特殊說明:


log_warnings=n 最好為1

不然會在錯誤記錄檔看到異常斷開的串連(Aborted connection)

MySQL5.6.5 MySQL5.7.5以後 binlog v2格式 GTID binlog_checksum


遷移報錯 5.6 -> 5.5  5.5 -> 5.6

binlog_checksum=none

log_bin_use_v1_row_events=on


binlog_row_image5.6.2後出現

預設為full


binlog_rows_query_log_events


binlog_gtid_recovery_simpliefied


Crash Recovery

基於MySQL5.6GTID的crash recovery 是有mysql-5.6.21支援到5.6.23穩定

傳統複製裡面也是可以支援的

[email protected] [test]>show global variables like "%repo%";

+---------------------------+-------+

| Variable_name             | Value |

+---------------------------+-------+

| master_info_repository    | FILE  |

| relay_log_info_repository | FILE  |


FILE------>table




友好的報錯資訊設定

binlog_error_action                     | ABORT_SERVER

binlogging_impossiable_mode----->binlog_error_action


[email protected] [test]>show global variables like "%binlog%";

+-----------------------------------------+----------------------+

| Variable_name                           | Value                |

+-----------------------------------------+----------------------+

| binlog_cache_size                       | 1048576              |

| binlog_checksum                         | CRC32                |

| binlog_direct_non_transactional_updates | OFF                  |

| binlog_error_action                     | ABORT_SERVER         |

| binlog_format                           | ROW                  |

| binlog_group_commit_sync_delay          | 0                    |

| binlog_group_commit_sync_no_delay_count | 0                    |

| binlog_gtid_simple_recovery             | ON                   |

| binlog_max_flush_queue_time             | 0                    |

| binlog_order_commits                    | ON                   |

| binlog_row_image                        | FULL                 |

| binlog_rows_query_log_events            | OFF                  |

| binlog_stmt_cache_size                  | 32768                |

| innodb_api_enable_binlog                | OFF                  |

| innodb_locks_unsafe_for_binlog          | OFF                  |

| log_statements_unsafe_for_binlog        | ON                   |

| max_binlog_cache_size                   | 1048576              |

| max_binlog_size                         | 268435456            |

| max_binlog_stmt_cache_size              | 18446744073709547520 |

| sync_binlog                             | 0                    |

+-----------------------------------------+----------------------+

20 rows in set (0.00 sec)


4、master其他參數

auto_increment_increment

auto_increment_offset

bin-do-db

bin-ignore-db

max_binlog_cache_size

binlog_stmt_cache_size

max_binlog_stmt_cache_size

biglog_direct_non_transactional_updates


5、具體配置參數的炕:

auto_increment_increment:每次自增的步長

auto_increment_offset:自增起始的位移量  pxc


bin-do-db:記錄db,其他db的binlog都不記錄,存在風險  不建議設定

 配置案例:

 bin-do-db=mydb1

 bin-do-db=mydb2


bin-ignore-db

bin-ignore-db=test 表示test這個庫的binlog記錄都不被記錄

建議:所有過濾規則不建議在主庫中設定(bin-do-db、bin-ignore-db)


max_binlog_cache_size 預設就行


biglog_direct_non_transactional_updates預設不動


6、gtid相關參數

show global variables like "%gtid%";

Current database: test


+----------------------------------+------------------------------------------+

| Variable_name                    | Value                                    |

+----------------------------------+------------------------------------------+

| binlog_gtid_simple_recovery      | ON                                       |

| enforce_gtid_consistency         | ON                                       |

| gtid_executed                    | 6e5d664c-c7e5-11e6-88b1-000c296ae445:1-9 |

| gtid_executed_compression_period | 1000                                     |

| gtid_mode                        | ON                                       |

| gtid_owned                       |                                          |

| gtid_purged                      |                                          |

| session_track_gtids              | OFF                                      |

+----------------------------------+------------------------------------------+

如果開啟了gtid(用於控制只有是事務安全的語句才能被記錄到log中)

gtid_mode用於控制是否啟用GTID

如果設定為on,則必須是log-bin ,log-salve-updates,enforce_gtid_consistency也要啟用


gtid_purged:用於指定那個事務從binlog忽略了。reset master 這個值會被清空。

gtid_executed:執行到的GTID號及所有執行的gtid號。和(show master status,show slave status)輸出值Executed Gtid set意思一樣。

rest master :這個值會被清空。


總結:主庫開啟最少參數

server-id

server-uuid

log-bin

gtid_mode

enforce_gtid_consistency

max_binlog_size

expire_logs_days

binlog-format


#############################################################################################################################################


7、slave上的參數

server-id

server-uuid

relay-log  #io thread讀取過來存到本地檔案

relay-log-index

read-only  #從庫唯讀,但對super許可權的使用者不起作用   這個設定意義不大,一般不要設定。


8、具體配置參數的炕:

server-id:

relay-log:relaylog檔案名稱首碼,可以是全路徑,不可以動態更改

relay-log-index:relaylog 索引檔案首碼名 和relay-log一樣,可以全路徑;不可以動態更改。

read-only:除非有super許可權,否則無法修改資料,不過不影響自主建立暫存資料表(temporary table ,analyze table,optimize table) 可以動態修改。



9、salve其他參數

log-slow-salve-statements

log_slave_updates  #建議這個參數無論如何都要設定。作用:主庫更新,從庫會記錄日誌。

max_relay_log_size

relay_log_info_file

relay_log_purge

relay_log_recovery

replicate-same-server-id #不建議使用

skip-slave-start=1  #不要自動同步   最好設定為1

slave_load_tmpdir

slave_transaction_retries #預設就行,重試

slave_parallel_workers #預設是關閉的



#例子

log_slave_updates  已經開啟

[email protected] [wu]>show global variables like "%log%"

[email protected] [test]>show master status;

/usr/local/mysql/bin/mysqlbinlog -v--base64-output=decode-rows /data/mysql/mysql3306/logs/mysql-bin.000002 >1.log



relay_log_space_limit 預設沒有設定的。有問題才設定


下面參數不建議設定:

show global variables like "%report%";

| report_host     |       |

| report_password |       |

| report_port     | 3306  |

| report_user



log-slow-slave-statements:slave複製產生的slow log 是否需要記錄;建議開啟。


max_relay_log_size 建議128M


master_info_repository relay_log_info_repository參數設定如下:

master-info-file/relay-log-info-file/relay-log-info

----->master_info_repository relay_log_info_repository

[email protected] [wu]>show global variables like "%info%";

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id:    17

Current database: wu


+--------------------------------+----------------+

| Variable_name                  | Value          |

+--------------------------------+----------------+

| master_info_repository         | FILE           |

| relay_log_info_file            | relay-log.info |

| relay_log_info_repository      | FILE           |

| session_track_transaction_info | OFF            |

| sync_master_info               | 10000          |

| sync_relay_log_info            | 10000          |

+--------------------------------+----------------+

6 rows in set (0.00 sec)


發展趨勢 file將來被換成table


sync_master_info=n :一般情況下不要動   除非安全性要求非常高才設定。


relay_log_purge :relay應用完。是否需要自動馬上刪除


relay_log_recovery: salve崩潰或者正常啟動時,未應用的relay log 會被刪除,重新從master請求binlog,再次產生relay log


10、slave過濾參數

一般情況下,過濾規則在從庫設定。不要在主庫設定。

replicate-do-table

replicate-ignore-table

replicate-rewrite-db=db1->db2

replicate-wild-do-table

replicate-wild-ignore-table

replicate-do-db

replicate-ignore-db

slave_net_timeout

slave_skip_errors

sql_slave_skip_count

















本文出自 “梁小明的部落格” 部落格,請務必保留此出處http://7038006.blog.51cto.com/7028006/1893617

mysql複製參數講解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.