雙主模式
雙主模式是在主從模式的基礎(chǔ)上來(lái)完成。
雙主模式,只需要將目前的主節(jié)點(diǎn)128同步從節(jié)點(diǎn)129數(shù)據(jù)即可。
1、從服務(wù)器構(gòu)建用于同步的用戶
#設(shè)置用于同步的用戶,比如128節(jié)點(diǎn)從129節(jié)點(diǎn)同步數(shù)據(jù),那么用戶需要在129節(jié)點(diǎn)構(gòu)建
CREATE USER repl_user IDENTIFIED BY '123456';
#給用戶設(shè)置權(quán)限?
GRANT REPLICATION SLAVE ON *.* TO ?'repl_user'@'%' identified by '123456';
FLUSH PRIVILEGES;
?
#查看用戶權(quán)限
show grants for 'repl_user'@'%';
2、查看從節(jié)點(diǎn)129日志名稱和同步起始位置
##查看master狀態(tài),記錄二進(jìn)制文件名File和位置Position,后面配從庫(kù)要用
show master status;
3、主節(jié)點(diǎn)128同步從節(jié)點(diǎn)129數(shù)據(jù)
mysql> CHANGE MASTER TO?
MASTER_HOST = '192.168.253.129', ?
MASTER_USER = 'repl_user',?
MASTER_PASSWORD = '123456',
MASTER_PORT = 3306,
MASTER_LOG_FILE='mysql-bin.000008',
MASTER_LOG_POS=154,
MASTER_RETRY_COUNT = 60,
MASTER_HEARTBEAT_PERIOD = 10000;?
?
# MASTER_LOG_FILE='mysql-bin.000005',#與主庫(kù)File 保持一致
# MASTER_LOG_POS=120 , #與主庫(kù)Position 保持一致
?啟動(dòng)同步
#啟動(dòng)同步
start slave;
#停止同步
stop slave;
4、查看128節(jié)點(diǎn)狀態(tài)
log_bin
?
設(shè)置此參數(shù)表示啟用binlog功能,并指定路徑名稱
?
log_bin_index
?
設(shè)置此參數(shù)是指定二進(jìn)制索引文件的路徑與名稱
?
binlog_do_db
?
此參數(shù)表示只記錄指定數(shù)據(jù)庫(kù)的二進(jìn)制日志
?
binlog_ignore_db
此參數(shù)表示不記錄指定的數(shù)據(jù)庫(kù)的二進(jìn)制日志
?
max_binlog_cache_size
?
此參數(shù)表示binlog使用的內(nèi)存最大的尺寸
?
binlog_cache_size
?
此參數(shù)表示binlog使用的內(nèi)存大小,可以通過(guò)狀態(tài)變量binlog_cache_use和binlog_cache_disk_use來(lái)幫助測(cè)試。
?
binlog_cache_use:使用二進(jìn)制日志緩存的事務(wù)數(shù)量
?
binlog_cache_disk_use:使用二進(jìn)制日志緩存但超過(guò)binlog_cache_size值并使用臨時(shí)文件來(lái)保存事務(wù)中的語(yǔ)句的事務(wù)數(shù)量
?
max_binlog_size
?
Binlog最大值,最大和默認(rèn)值是1GB,該設(shè)置并不能嚴(yán)格控制Binlog的大小,尤其是Binlog比較靠近最大值而又遇到一個(gè)比較大事務(wù)時(shí),為了保證事務(wù)的完整性,不可能做切換日志的動(dòng)作,只能將該事務(wù)的所有SQL都記錄進(jìn)當(dāng)前日志,直到事務(wù)結(jié)束
?
sync_binlog
?
這個(gè)參數(shù)直接影響mysql的性能和完整性
?
sync_binlog=0
?
當(dāng)事務(wù)提交后,Mysql僅僅是將binlog_cache中的數(shù)據(jù)寫(xiě)入Binlog文件,但不執(zhí)行fsync之類的磁盤(pán) 同步指令通知文件系統(tǒng)將緩存刷新到磁盤(pán),而讓Filesystem自行決定什么時(shí)候來(lái)做同步,這個(gè)是性能最好的。
?
sync_binlog=n,在進(jìn)行n次事務(wù)提交以后,Mysql將執(zhí)行一次fsync之類的磁盤(pán)同步指令,同志文件系統(tǒng)將Binlog文件緩存刷新到磁盤(pán)。
?
Mysql中默認(rèn)的設(shè)置是sync_binlog=0,即不作任何強(qiáng)制性的磁盤(pán)刷新指令,這時(shí)性能是最好的,但風(fēng)險(xiǎn)也是最大的。一旦系統(tǒng)繃Crash,在文件系統(tǒng)緩存中的所有Binlog信息都會(huì)丟失
?