日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql5.6主从参数详解

發布時間:2023/12/10 数据库 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql5.6主从参数详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ?mysql5.6的主從相當的不錯,增加了不少參數,提升了主從同步的安全和效率,以下是mysql5.6主從參數詳解。

######################################### server_id?=?2 #binlog log-bin?=?/data1/mysql/binlog/binlog binlog_format?=?ROW binlog-row-p_w_picpath?=?minimal #gtid_mode?=?ON #enforce-gtid-consistency?=?true binlog_cache_size?=?4M max_binlog_size?=?1G max_binlog_cache_size?=?2G sync_binlog?=?1 slave-skip-errors?=?1062 expire_logs_days?=?3 slave_parallel_workers?=?4 #relay?log relay-log?=?/data1/mysql/relaylog/relaylog max_relay_log_size?=?1G relay_log_purge?=?1 relay_log_recovery?=?1 binlog_checksum?=?CRC32 slave_allow_batching?=?1 master_verify_checksum?=?1 slave_sql_verify_checksum?=?1 binlog_rows_query_log_events?=?1 master_info_repository?=?TABLE relay_log_info_repository?=?TABLE log_slave_updates #########################################


sync_binlog = 1

默認情況下,并不是每次寫入時都將binlog與硬盤同步。因此如果操作系統或機器(不僅僅是MySQL服務器)崩潰,有可能binlog中最后的語句丟 失了。要想防止這種情況,你可以使用sync_binlog全局變量(1是最安全的值,但也是最慢的),使binlog在每N次binlog寫入后與硬盤 同步。即使sync_binlog設置為1,出現崩潰時,也有可能表內容和binlog內容之間存在不一致性。如果使用InnoDB表,MySQL服務器 處理COMMIT語句,它將整個事務寫入binlog并將事務提交到InnoDB中。如果在兩次操作之間出現崩潰,重啟時,事務被InnoDB回滾,但仍 然存在binlog中。可以用--innodb-safe-binlog選項來增加InnoDB表內容和binlog之間的一致性。(注釋:在MySQL 5.1中不需要--innodb-safe-binlog;由于引入了XA事務支持,該選項作廢了),該選項可以提供更大程度的安全,使每個事務的 binlog(sync_binlog =1)和(默認情況為真)InnoDB日志與硬盤同步,該選項的效果是崩潰后重啟時,在滾回事務后,MySQL服務器從binlog剪切回滾的 InnoDB事務。這樣可以確保binlog反饋InnoDB表的確切數據等,并使從服務器保持與主服務器保持同步(不接收 回滾的語句)。


server_id = 2之前的寫法是:server-id = 2


gtid_mode = ON

enforce-gtid-consistency = true

這兩個參數是啟用mysql5.6中的UUID同步模式,兩個參數必須一起打開,否則報錯,slave在做同步復制時,無須找到binlog日志和POS點,直接change master to master_auto_position=1即可,自動找點同步。

GTID的局限性: (鑒于這些局限性,慎用)

1.GTID同步復制是基于事務。所以Myisam表不支持,這可能導致多個GTID分配給同一個事務。

2.CREATE TABLE ... SELECT語句不支持。因為該語句會被拆分成create table 和insert兩個事務,并且這個兩個事務被分配了同一個GTID,這會導致insert被備庫忽略掉。

3.不支持CREATE TEMPORARY TABLE、DROP TEMPORARY TABLE 臨時表操作。

啟用之后進行同步語句:

CHANGE MASTER TO MASTER_HOST='60.2.212.190', MASTER_PORT=3306, MASTER_USER='repl',MASTER_PASSWORD='H7RYbCkGHmm_P1XO', master_auto_position=1;

不啟動的話同步語句和之前一樣:

change master to

master_host='192.168.100.190',

master_user='repl',

master_password='123456',

master_port=3306,

master_log_file='binlog.000001',

master_log_pos=1287;

start slave;

在5.6的版本中,啟動主從為:start slave,而之前用slave start也可以。


binlog-row-p_w_picpath=minimal,這個選項允許應用程序只能對行的鏡像數據進行復制,而不在關心行是否已經進行了DML操作。這提高了主從機器的復制吞吐量,減少了二進制日志所占用的磁盤空間、網絡資源和內存占用。


slave_parallel_workers = 4 默認是0,不開啟,最大并發數為1024個線程。主從復制啟用4個sql線程,提高從服務器吞吐量,減少延遲,使用并發的 SQL 線程對不同數據庫并行應用事件,如果只同步一個庫的,指定為0,否則會阻塞。


binlog_checksum = CRC32

slave_allow_batching = 1

master_verify_checksum = 1

slave_sql_verify_checksum = 1

binlog_rows_query_log_events = 1

這四個參數是啟用binlog/relaylog的校驗,防止日志出錯


relay_log_purge = 1

relay_log_recovery = 1

這兩個是啟用relaylog的自動修復功能,避免由于網絡之類的外因造成日志損壞,主從停止。


master_info_repository = TABLE

relay_log_info_repository = TABLE

這兩個參數會將master.info和relay.info保存在表中,默認是Myisam引擎,官方建議用

alter table ?slave_master_info engine=innodb;

alter table ?slave_relay_log_info engine=innodb;

alter table ?slave_worker_info engine=innodb;

改為Innodb引擎,防止表損壞后自行修復。


轉載于:https://blog.51cto.com/wangwei007/1205298

總結

以上是生活随笔為你收集整理的mysql5.6主从参数详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。