溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL5.7啟動參數調優

發布時間:2020-04-30 15:46:28 來源:億速云 閱讀:431 作者:三月 欄目:數據庫

本文主要給大家簡單講講MySQL5.7啟動參數調優,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔MySQL5.7啟動參數調優主題吧,希望可以給大家帶來一些實際幫助。

1,--log-slave-updates

  系統變量名:log_slave_updates

  一般情況下slave不會把從master接收到的binlog記錄寫入自己的binlog,這個參數會使slave通過SQL線程把從master接受到的binlog寫進自己的binlog,但是前提是slave一定要開啟自己的binlog,此參數一般用于級聯復制,例如需要A復制到B,B復制到C,那么B就要開啟此參數。

2,--master-info-file=file_name

  slave記錄的關于master信息的文件的名稱,默認master.info,在datadir下。

3,--max-relay-log-size=size

  系統變量名:max_relay_log_size

  自動輪流記錄的中轉日志文件的大小,如果設置為非0,當中轉日志文件的大小超過此值,則記錄下一個中轉日志文件,如果此值為0(默認),則中轉日志的大小由max_binlog_size決定。

4,--relay-log=file_name

  系統變量名:relay_log

MySQL5.7啟動參數調優

  中轉日志文件前綴名(base name),對于默認的復制通道,默認值為host_name-relay-bin,對于非默認的復制通道,默認值為host_name-channel-relay-bin,這里channel為記錄在中轉日志的復制通道名稱,如果這個文件名稱前面沒有絕對路徑,則中轉文件路徑在datadir下,云服務器創建中轉文件的時候會在文件末尾添加一個數字的序號。如果指定了此參數但是沒有指定參數的值,則文件名稱取決于其他參數、參數的順序以及是在命令行指定還是在配置文件指定。此參數還被用于生成中轉日志索引文件,但是可以通過指定--relay-log-index參數進行覆蓋。

  在下面幾種情況下,此參數非常有用:

  1,創建獨立于master名的中轉日志文件。

  2,如果你想把中轉日志放到別的地方而不是datadir下。

  3,提高通過在磁盤之間做負載均衡的速度

  可以從relay_log_basename系統變量獲得中轉日志文件的名稱和路徑。

5,--relay-log-index=file_name

  系統參數名稱:relay_log_index

  中轉日志后綴名,默認host_name-relay-bin.index,在datadir目錄下。

6,--relay-log-info-file=file_name

  用來記錄中轉日志信息的文件的名稱。默認relay-log.info,在datadir目錄下。

7,--relay-log-purege={0|1}

  系統參數名稱:relay_log_purge

  開啟或關閉在不需要的時候自動刪除中轉日志。默認開啟(1),這是個全局變量,可以通過

  SET GLOBAL relay_log_purge = N 動態設置。

8,--relay-log-recovery

  開啟在云服務器啟動后立刻恢復中轉日志?;謴瓦M程會創建一個新的中轉日志文件并且使I/O線程從master讀取binlog寫入此中轉文件,使SQL線程讀取此中轉文件。此參數主要是為了防止slave宕機后SQL線程讀取損壞的中轉日志(如果這樣的話有可能會導致數據和master不一致)。不過為了達到此目的還需要將 --relay-log-info-repository參數設置為TABLE(即以表的形式記錄中轉日志的信息)以及開啟--relay-log-purege(默認開啟)參數,此參數默認為0,沒有開啟。當使用多線程復制的時候,有可能出現數據不連續的情況,如果開啟此參數還是不能解決則可以通過如下命令解決:

  START SLAVE UNTILSQL_AFTER_MTS_GSPS,這樣會使云服務器處于更加連續的狀態,然后執行RESET SLAVE刪除中轉日志。

9,--relay-log-space-limit=size

  系統變量名稱:relay_log_space_limit

  設置所有中轉日志文件的大小總和的上限(單位:字節),如果設置為0,意味著沒有限制。在服務磁盤空間不大的情況這,這一參數非常有用,當中轉文件大于此值的時候I/O線程停止從master讀取binlog,直到SQL線程最趕上并刪除沒用的中轉日志。但是也不是絕對的,當SQL線程在刪除中轉日志前需要更多的事件的時候,I/O線程就會超出此值,否則就會導致死鎖(SQL線程和I/O線程互相等待),

另外此值不應該低于--max-relay-log-size(當--max-relay-log-size為0的時候不應該低于--max-binlog-size的兩倍)值的兩倍。有這么一種情況,當I/O線程因超出--relay-log-space-limit的值而等待空閑磁盤的時候,但是SQL線程沒有中轉日志刪除并且不能滿足I/O線程,此時會暫時的輕質I/O忽略--relay-log-space-limit。

10,--replicate-do-db=db_name

  在slave創建過濾器復制指定數據庫,在5.7.3及以后的版本可以使用CHANGE REPLICATION FILTER REPLICATION_DO_DB命令創建,具體的復制細節在不同的binlog有不同的表現,具體如下:

  基于語句的復制(Statement-based replication):告訴SQL線程那些庫需要復制,如果多個數據庫則使用多次此參數,SQL線程根據默認數據庫(USER DB1)來判斷是否需要復制,如果slave設置為--replicate-do-db=sales,那么下面的語句不會更新sales庫中的january表:

USE prices;
UPDATE sales.january SET amount=amount+1000;

  因為SQL線程只根據默認數據庫去判斷是否需要復制,發現默認的數據庫不是sales則下面的所有SQL都不會執行。

  基于行的復制(Row-based replication):基于行的復制則與基于語句的復制恰恰相反,SQL線程不關系默認庫是什么只關心sql語句是否影響了指定的數據庫,如果slave設置為--replicate-do-db=sales,那么下面的語句會更新sales庫中的february表:

USE prices;
UPDATE sales.february SET amount=amount+1000;

  這種策略會帶來一些小副作用,例如下面的sql:

USE db1;
UPDATE db1.table1 SET col1 = 10, db2.table2 SET col2 = 20;

  如果此時slave設置為--replicate-do-db=db1,那么不只是db1.table1表會發生變化,db2.table2也會發生變更。

綜上所述,考慮到數據庫復制,跨數據庫的sql一定要謹慎了。

11,--replicate-ignore-db=db_name

  在slave上創建過濾器,指定忽略哪些數據庫,在5.7.3及以后的版本可以使用CHANGE REPLICATION FILTER REPLICATION_IGNORE_DB命令創建,不同格式的binlog的規則與--replicate-do-db=db_name類似。

12,--replicate-do-table=db_name.tbl_name

  創建表級別的復制過濾器,告訴SQL線程那個庫的那些表需要復制,不管是跨數據庫的更新還是默認數據的更新都起作用,在5.7.3及以后的版本可以使用 CHANGE REPLICATION FILTER REPLICATION_DO_TABLE命令創建。只對sql語句起作用,對數據庫中的其他對象例如存儲程序不起作用。

13,--replicate-ignore-table=db_name.tbl_name

  創建忽略哪些表的過濾器,跨數據庫更新依然有效,在5.7.3及以后的版本可以使用CHANGE REPLICATION FILTER REPLICATION_IGNORE_TABLE命令創建。只對sql語句起作用,對數據庫中的其他對象例如存儲程序不起作用。

MySQL5.7啟動參數調優就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女