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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql 5.5半同步复制_(5.5)mysql高可用系列——MySQL半同步复制(实践)

發(fā)布時間:2023/12/10 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 5.5半同步复制_(5.5)mysql高可用系列——MySQL半同步复制(实践) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關鍵詞,mysql半同步復制

【0】實驗環(huán)境

操作系統(tǒng):CentOS linux 7.5

數(shù)據(jù)庫版本:5.7.24

數(shù)據(jù)庫架構:主從復制,主庫用于生產(chǎn),從庫用于數(shù)據(jù)容災和主庫備機,采用默認傳統(tǒng)的異步復制。

主庫IP:192.168.1.201  端口:3306

從庫IP:192.168.1.202  端口:3306

正文:

【1】配置my.cnf

【1.1】通用復制配置

#replication_new

log_bin=/mysql/log/3306/mysql-bin #開啟binlog

log_bin_index=/mysql/log/3306/mysql-bin.index

binlog_format=row

binlog_rows_query_log_events=on

max_binlog_size=2048bind-address=0.0.0.0server_id=2013306expire_logs_days=7#超過7天的binlog清理

innodb_support_xa=1binlog_cache_size=1M

log_bin_trust_function_creators=1#同步存儲過程、函數(shù)、觸發(fā)器

innodb_flush_log_at_trx_commit=1sync_binlog=1transaction-isolation=read-committed

relay_log=/mysql/log/3306/relaylog/mysql-relay.log

log-slave-updates=1read_only=1slave-parallel-type=LOGICAL_CLOCK

slave-parallel-workers=4master_info_repository=table #master_info 會記錄到 mysql.slave_master_info

relay_log_info_repository=table #relay_log 會記錄到,mysql.slave_relay_log_info

relay_log_recovery=1slave_skip_errors=ddl_exist_errors

slave_preserve_commit_order=1

【2】半同步復制配置的2種辦法(5.7)

兩種辦法

【2.1】手動安裝半同步復制插件(在mysql環(huán)境下,主從都安裝)

【step1】安裝半同步插件install plugin rpl_semi_sync_master soname 'semisync_master.so';install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

show plugins;-- 查看插件安裝情況 or select *from mysql.plugin;

【step2】設置開啟半同步參數(shù)

建議都開啟,以免主備切換時需要重新加;如果分開,如下圖;

在主庫上:set global rpl_semi_sync_master_enabled=1;

在從庫上:set global rpl_semi_sync_slave_enabled=1;

如果異步復制正在運行,需要在從庫運行一下命令 才會使用半同步;

stop slave io_thread;start slave io_thread;

【step3】檢查狀態(tài)

在主庫查看半同步狀態(tài):show status like'%rpl_semi%';

圈出第1行表示,連接主庫的客戶端個數(shù)。

圈出第2行表示,該實例做為半同步的主庫狀態(tài),是on,是開啟的。

最后1行,Rpl_semi_sync_slave_status,表示該實例,作為半同步的從庫狀態(tài),是off,不是從庫。

(但是從庫上進行查看時,圖中的 master_status 與 slave_status 應該正好相反,作為主庫是關閉的,作為從庫是開啟的)

其他重要參數(shù),

Repl_semi_sync_master_yes_tx:表示已經(jīng)同步的事務數(shù),0表示還沒有任何一個事務以半同步的方式復制到從庫

Repl_semi_sync_master_no_tx:假如為3,表示當前有3事務不是半同步模式下從庫及時響應的(比如可能有網(wǎng)絡延遲,導致半同步超時切換成異步)

【2.2】寫入配置文件(推薦使用,my.cnf)

show variables like'plugin%'; --查看插件路徑

#修改my.cnf 復制代碼

#如果已經(jīng)有異步復制了,也不需要改其他的,只需要把下面參數(shù)加入到my.cnf,重啟mysql服務即可。

#如果業(yè)務不允許宕機重啟實例,那么可以參考方法1,并且把該段代碼加上,就可以直接用了。

plugin_dir=/mysql/app/mysql/lib/plugin/plugin_load=rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so

#如果是5.7,參數(shù)前面加上loose_,如下列,如果是5.6 則直接使用 rpl_semi_sync_master_enabled=1之類的就好了。

#我這里是5.7就直接做增強半同步了(loseless Semisynchronous )

loose_rpl_semi_sync_master_enabled=1#MySQL開啟主的半同步復制(rpl_semi_sync_master_enabled)

loose_rpl_semi_sync_slave_enabled=1#MySQL5.6開啟從的半同步復制

loose_rpl_semi_sync_master_timeout=5000#超時5秒,切回異步

rpl_semi_sync_master_wait_for_slave_count=1#至少收到1個slave發(fā)會的ack

rpl_semi_sync_master_wait_point=AFTER_SYNC #MySQL 5.7的方法,AFTER_SYNC(default,增強半同步) & AFTER_COMMIT(傳統(tǒng)半同步)

【3】進行初始化操作

【3.1】完全同步情況

#【1】在主庫和從庫上 準備復制賬戶

create user 'rpl'@'192.168.1.%' identified by '123456';

grant replication slave on *.* to 'rpl'@'192.168.1.%';

flush privileges;

select user,host from mysql.user;

#【2】在主庫上,設置讀鎖定有效。以便獲取一個一致性的快照

mysql下操作:(鎖表,獲取一致性)

flush tables with read lock;

#【3】在主庫上 show master status;獲取主庫當前的二進制名和偏移量pos位置。

show master status;-- 查看到的日志名記錄下來,比如:mysql-bin.000002 , postion: 881#【4】備份主庫還原到從庫

邏輯方式:mysqldump。然后scp拷貝過去。然后登錄上從庫的mysql,直接把dump的文件加載進去即可。

物理方式:直接拷貝,備份刪除從庫原有data目錄,然后把主庫的data目錄復制過去。

復制到從庫后記得刪除拷貝過來data/下的auto.cnf,否則uuid會一樣,導致無法復制。

不管是物理還是邏輯方式,CP或者mysqldump完后,就都可以解鎖主庫了

在主庫的mysql登錄下,使用命令,unlock tables;

【3.2】如果業(yè)務正在跑,利用備份還原恢復同步

#【1】在主庫和從庫上 準備復制賬戶

create user'rpl'@'192.168.1.%' identified by '123456';

grant replication slave on*.* to 'rpl'@'192.168.1.%';

flush privileges;selectuser,host from mysql.user;

#【2】利用備份

#mysqldump,如果備份時加了--master-data=2參數(shù),是有記錄binlog文件和位置的。

#XtraBackup,也會復制Binlog文件和位置信息

#【3】開始還原

利用備份去進行還原,這個時候多半是不一致的,因為業(yè)務在跑。

這個時候利用備份中的binlog 來做 change master to

#【4】change master to 示例

change master to

master_host='192.168.1.201',

master_port=3306,

master_user='rep',

master_password='123456',

master_log_file='mysql-bin.000002',

master_log_pos=154;

【4】參數(shù)解析

【4.1】show status like '%rpl%'; -- 查看半同步狀態(tài)

主庫:

Variable_name

--------------------------------------------

Rpl_semi_sync_master_clients           --已連接到本機主庫的客戶端輸了

Rpl_semi_sync_master_net_avg_wait_time    ?  --平均等待時間

Rpl_semi_sync_master_net_wait_time       --總等待時間

Rpl_semi_sync_master_net_waits         --等待次數(shù)

Rpl_semi_sync_master_no_times         --關閉半同步的次數(shù)

Rpl_semi_sync_master_no_tx          ? --沒有成功同步提交的事務個數(shù)

Rpl_semi_sync_master_status           --主庫半同步狀態(tài)(on為打開半同步,off為異步)

Rpl_semi_sync_master_timefunc_failures     --調(diào)用函數(shù)失敗的次數(shù)

Rpl_semi_sync_master_tx_avg_wait_time     --事務平均等待時間、平均傳輸時間

Rpl_semi_sync_master_tx_wait_time       --事務總等待時間?、總傳輸時間

Rpl_semi_sync_master_tx_waits         --事務的總等待次數(shù)

Rpl_semi_sync_master_wait_pos_backtraverse   -- 后來的事務先來了,先來的事務還沒有到的次數(shù)

Rpl_semi_sync_master_wait_sessions       -- 當前有多少Session 因為slave 而造成的等待

Rpl_semi_sync_master_yes_tx           -- 成功被slave恢復同步的事務個數(shù)

Rpl_semi_sync_slave_status          -- 表示當前本詞庫是異步還是半同步(主庫應該為off,從庫因為on)

【4.2】show variables like '%rpl%'; -- 查看半同步配置參數(shù)

【5】復制的日常管理

#復制的日常管理與維護

(1)show slave status\G :在從庫查看從庫線程狀態(tài)

(2)flush tables with read lock;? :主從不一致后鎖表。

然后 show master status\G

然后 show slave status\G 來查看從庫同步狀態(tài) 或者重新 change master to....

然后 select master_pos_wait('mysql-bin.00002','389'); (即剛剛show master status找到的文件及位置),如果為1 標識超時退出 ,如果為1 則標識主從同步。

最后再主庫 unlock tables; 解鎖

(3)跳過錯誤

跳過錯誤有兩種方式:

1.跳過指定數(shù)量的事務:(建議如果已經(jīng)出現(xiàn)了錯誤,使用這種辦法)

mysql>slave stop;

mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳過一個事務

mysql>slave start

2.修改mysql的配置文件,通過slave_skip_errors參數(shù)來跳所有錯誤或指定類型的錯誤(建議配置時使用這種辦法)

vi /etc/my.cnf

[mysqld]

#slave-skip-errors=1062,1053,1146 #跳過指定error no類型的錯誤,DDL錯誤類型包含 1007,1008,1050,1051,1054,1060,1061,1068,1091,1146(5.6可以用這個)

#slave-skip-errors=ddl_exist_errors #跳過DDL錯誤,all:跳過所有錯誤(mysql5.7才有ddl_exist_errors)

(4)大對象blog ,text 傳輸

【6】從庫宕機如何重新連入主庫?

1. 此2個參數(shù)rpl_semi_sync_master_enabled 和rpl_semi_sync_slave_enabled 不要直接寫入到my.cnf配置文件開啟。

2.在slave庫上先 stop slave io_thread ;set global rpl_semi_sync_slave_enabled=0 關閉此參數(shù)。

然后start slave io_thread 或者start slave 開啟異步復制,讓slave庫追趕上master庫。

3.然后在slave庫 set global rpl_semi_sync_slave_enabled=1 ;stop slave io_thread;start slave io_thread;

參考文章:

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結

以上是生活随笔為你收集整理的mysql 5.5半同步复制_(5.5)mysql高可用系列——MySQL半同步复制(实践)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天插天天爱 | 九九视频网 | 国产一二| 国产欧美精品区一区二区三区 | 麻豆福利视频 | 深夜国产福利 | 日本三级一区 | 久久亚洲国产成人精品性色 | 在线国产中文字幕 | 国产亚洲美女精品久久久2020 | 中文第一页 | 欧美日韩一区二区视频在线观看 | 日本xxxxwww| 大又大又粗又硬又爽少妇毛片 | 天天综合网在线 | 亚洲av无码不卡一区二区三区 | 欧美日韩成人一区二区三区 | 孕妇毛片 | 黄网站在线免费 | 中文字幕一区二区免费 | 免费视频网站在线观看入口 | 欧美动态视频 | 国产成人av在线 | 欧美freesex黑人又粗又大 | 国产伊人久久 | 福利片在线播放 | 午夜大片网 | 337p亚洲精品色噜噜噜 | 村上凉子av | 精品国产18久久久久久二百 | 欧美黑人精品一区二区不卡 | 日韩中文字幕在线不卡 | 欧美私人网站 | 香蕉传媒 | 亚洲成人 av | 国产永久视频 | 国产精品久久福利 | 牛牛影视一区二区三区 | 蜜桃精品久久久久久久免费影院 | 成人免费视频一区 | 国产精品v日韩精品v在线观看 | 国产精品毛片va一区二区三区 | 欧美偷拍另类 | 黄色免费一级片 | 国产精品毛片久久 | 国自产拍偷拍精品啪啪一区二区 | 又黄又免费的视频 | 亚洲专区中文字幕 | 久久丫精品久久丫 | 日本少妇b | 成人动漫一区二区三区 | 亚洲精品伊人 | 国产中文字幕在线观看 | 外国av网站| 亚洲性xx | 性爱动漫 | 香港三级日本三级韩国三级 | 亚洲色图日韩 | 夜夜嗨av一区二区三区四区 | 玖玖玖国产精品 | 在线免费黄色网址 | 久久精品国产网红主播 | 国产又粗又猛又爽视频 | 精品久久久久一区二区国产 | 黄色网址网站 | 日本妈妈3| 日本美女一区 | 久久久国产精品人人片 | 日剧大尺度床戏做爰 | 一区二区三区视频在线免费观看 | 亚洲一品道 | 欧美性xxxxx极品娇小 | 91色吧| 少妇被躁爽到高潮无码文 | 久久精品观看 | 韩国三级hd中文字幕的背景音乐 | 在线激情视频 | 日本三级吹潮 | 免费毛片看 | 日本黄色免费视频 | 天天射天天射 | 色眯眯影院 | www.中文字幕av | 伊人伊人网 | 免费在线观看的黄色网址 | 九九99精品视频 | 丁香婷婷六月 | 欧美成人精精品一区二区频 | 亚洲熟女乱色一区二区三区 | 精品久久成人 | 麻豆精品视频在线观看 | 亚色在线观看 | 亚洲影院av | 欧美成人精品二区三区99精品 | 亚洲制服丝袜一区 | 欧美视频在线观看 | 女生扒开尿口 | 浪荡奴双性跪着伺候 | 秋霞国产一区 |