婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解MySQL主從不一致情形與解決方法

詳解MySQL主從不一致情形與解決方法

熱門標簽:百度地圖標注要什么軟件 400電話申請廠家現貨 中國地圖標注公司 徐涇鎮騰訊地圖標注 天津公司外呼系統軟件 自己做地圖標注需要些什么 昌德訊外呼系統 福建外呼電銷機器人加盟 電話機器人的價格多少錢一個月

一、MySQL主從不同步情況

1.1 網絡的延遲

由于mysql主從復制是基于binlog的一種異步復制

通過網絡傳送binlog文件,理所當然網絡延遲是主從不同步的絕大多數的原因,特別是跨機房的數據同步出現這種幾率非常的大,所以做讀寫分離,注意從業務層進行前期設計。

1.2 主從兩臺機器的負載不一致

由于mysql主從復制是主數據庫上面啟動1個io線程,而從上面啟動1個sql線程和1個io線程,當中任何一臺機器的負載很高,忙不過來,導致其中的任何一個線程出現資源不足,都將出現主從不一致的情況。

1.3 max_allowed_packet設置不一致

主數據庫上面設置的max_allowed_packet比從數據庫大,當一個大的sql語句,能在主數據庫上面執行完畢,從數據庫上面設置過小,無法執行,導致的主從不一致。

1.4 自增鍵不一致

key自增鍵開始的鍵值跟自增步長設置不一致引起的主從不一致。

1.5 同步參數設置問題

mysql異常宕機情況下,如果未設置sync_binlog=1或者innodb_flush_log_at_trx_commit=1很有可能出現binlog或者relaylog文件出現損壞,導致主從不一致。

1.6 自身bug

mysql本身的bug引起的主從不同步

1.7 版本不一致

特別是高版本是主,低版本為從的情況下,主數據庫上面支持的功能,從數據庫上面不支持該功能。

1.8 主從不一致優化配置

基于以上情況,先保證max_allowed_packet,自增鍵開始點和增長點設置一致
再者犧牲部分性能在主上面開啟sync_binlog,對于采用innodb的庫,推薦配置下面的內容

innodb_flush_logs_at_trx_commit = 1
innodb-support_xa = 1 # Mysql 5.0 以上
innodb_safe_binlog   # Mysql 4.0

同時在從上面推薦加入下面兩個參數

skip_slave_start
read_only

二、解決主從不同步的方法

2.1 主從不同步場景描述

今天發現Mysql的主從數據庫沒有同步

先上Master庫:

mysql>show processlist;

查看下進程是否Sleep太多。發現很正常。

show master status;

查看主庫狀態也正常。

mysql> show master status;
+-------------------+----------+--------------+-------------------------------+
| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB       |
+-------------------+----------+--------------+-------------------------------+
| mysqld-bin.000001 |   3260 |       | mysql,test,information_schema |
+-------------------+----------+--------------+-------------------------------+
1 row in set (0.00 sec)

再到Slave上查看

mysql> show slave status\G                        

Slave_IO_Running: Yes
Slave_SQL_Running: No

由此可見是Slave不同步

2.2 解決方法一:忽略錯誤后,繼續同步

該方法適用于主從庫數據相差不大,或者要求數據可以不完全統一的情況,數據要求不嚴格的情況
解決:

stop slave;

表示跳過一步錯誤,后面的數字可變

set global sql_slave_skip_counter =1;
start slave;

之后再用mysql> show slave status\G 查看:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

ok,現在主從同步狀態正常了。。。

2.3 方式二:重新做主從,完全同步

該方法適用于主從庫數據相差較大,或者要求數據完全統一的情況

解決步驟如下:

1.先進入主庫,進行鎖表,防止數據寫入

使用命令:

mysql> flush tables with read lock;

注意:該處是鎖定為只讀狀態,語句不區分大小寫

2.進行數據備份

把數據備份到mysql.bak.sql文件

[root@server01 mysql]#mysqldump -uroot -p -hlocalhost > mysql.bak.sql

這里注意一點:數據庫備份一定要定期進行,可以用shell腳本或者python腳本,都比較方便,確保數據萬無一失

3.查看master 狀態

mysql> show master status; 
+——————-+———-+————–+——————————-+ 
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+——————-+———-+————–+——————————-+ 
| mysqld-bin.000001 | 3260 | | mysql,test,information_schema | 
+——————-+———-+————–+——————————-+ 
1 row in set (0.00 sec)

4.把mysql備份文件傳到從庫機器,進行數據恢復

使用scp命令

[root@server01 mysql]# scp mysql.bak.sql root@192.168.1.206:/tmp/

5.停止從庫的狀態

mysql> stop slave;

6.然后到從庫執行mysql命令,導入數據備份

mysql> source /tmp/mysql.bak.sql

7.設置從庫同步,注意該處的同步點,就是主庫show master status信息里的| File| Position兩項

change master to master_host = ‘192.168.1.206', master_user = ‘rsync', master_port=3306, master_password=”, master_log_file = ‘mysqld-bin.000001', master_log_pos=3260;

8.重新開啟從同步

mysql> start slave;

9.查看同步狀態

mysql> show slave status\G 查看:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

好了,同步完成啦

三、如何監控mysql主從之間的延遲

3.1 前言:

日常工作中,對于MYSQL主從復制的檢查有兩方面

保證復制的整體結構是否完整;

需要檢查數據是否一致;

對于前者我們可以通過監控復制線程是否工作正常以及主從延時是否在容忍范圍內,對于后者則可以通過分別校驗主從表中數據的md5碼是否一致,來保證數據一致,可以使用Maatkit工具包中的mk-table-checksum工具去檢查。
本文檔介紹下關于如何檢查主從延遲的問題。

主從延遲判斷的方法,通常有兩種方法:Seconds_Behind_Master和mk-heartbeat

3.2方法1.

通過監控show slave status\G命令輸出的Seconds_Behind_Master參數的值來判斷,是否有發生主從延時。

mysql> show slave status\G;
*************************** 1. row ***************************
        Slave_IO_State: Waiting for master to send event
         Master_Host: 192.168.1.205
         Master_User: repl
         Master_Port: 3306
        Connect_Retry: 30
       Master_Log_File: edu-mysql-bin.000008
     Read_Master_Log_Pos: 120
        Relay_Log_File: edu-mysql-relay-bin.000002
        Relay_Log_Pos: 287
    Relay_Master_Log_File: edu-mysql-bin.000008
       Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
       Replicate_Do_DB: 
     Replicate_Ignore_DB: 
      Replicate_Do_Table: 
    Replicate_Ignore_Table: 
   Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
          Last_Errno: 0
          Last_Error: 
         Skip_Counter: 0
     Exec_Master_Log_Pos: 120
       Relay_Log_Space: 464
       Until_Condition: None
        Until_Log_File: 
        Until_Log_Pos: 0
      Master_SSL_Allowed: No
      Master_SSL_CA_File: 
      Master_SSL_CA_Path: 
       Master_SSL_Cert: 
      Master_SSL_Cipher: 
        Master_SSL_Key: 
    Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
        Last_IO_Errno: 0
        Last_IO_Error: 
        Last_SQL_Errno: 0
        Last_SQL_Error: 
 Replicate_Ignore_Server_Ids: 
       Master_Server_Id: 205
         Master_UUID: 7402509d-fd14-11e5-bfd0-000c2963dd15
       Master_Info_File: /home/mysql/data/master.info
          SQL_Delay: 0
     SQL_Remaining_Delay: NULL
   Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
      Master_Retry_Count: 86400
         Master_Bind: 
   Last_IO_Error_Timestamp: 
   Last_SQL_Error_Timestamp: 
        Master_SSL_Crl: 
      Master_SSL_Crlpath: 
      Retrieved_Gtid_Set: 
      Executed_Gtid_Set: 
        Auto_Position: 0
1 row in set (0.00 sec)

以上是show slave status\G的輸出結果,這些結構給我們的監控提供了很多有意義的參數。

Slave_IO_Running該參數可作為io_thread的監控項,Yes表示io_thread的和主庫連接正常并能實施復制工作,No則說明與主庫通訊異常,多數情況是由主從間網絡引起的問題;

Slave_SQL_Running該參數代表sql_thread是否正常,具體就是語句是否執行通過,常會遇到主鍵重復或是某個表不存在。

Seconds_Behind_Master是通過比較sql_thread執行的event的timestamp和io_thread復制好的event的timestamp(簡寫為ts)進行比較,而得到的這么一個差值;NULL—表示io_thread或是sql_thread有任何一個發生故障,也就是該線程的Running狀態是No,而非Yes。0 — 該值為零,是我們極為渴望看到的情況,表示主從復制良好,可以認為lag不存在。正值 — 表示主從已經出現延時,數字越大表示從庫落后主庫越多。負值 — 幾乎很少見,我只是聽一些資深的DBA說見過,其實,這是一個BUG值,該參數是不支持負值的,也就是不應該出現。

備注Seconds_Behind_Master的計算方式可能帶來的問題.我們都知道的relay-log和主庫的bin-log里面的內容完全一樣,在記錄sql語句的同時會被記錄上當時的ts,所以比較參考的值來自于binlog,其實主從沒有必要與NTP進行同步,也就是說無需保證主從時鐘的一致。你也會發現,其實比較真正是發生在io_thread與sql_thread之間,而io_thread才真正與主庫有關聯,于是,問題就出來了,

當主庫I/O負載很大或是網絡阻塞.io_thread不能及時復制binlog(沒有中斷,也在復制),而sql_thread一直都能跟上io_thread的腳本,這時Seconds_Behind_Master的值是0,

也就是我們認為的無延時,但是,實際上不是,你懂得。這也就是為什么大家要批判用這個參數來監控數據庫是否發生延時不準的原因,但是這個值并不是總是不準,

如果當io_thread與master網絡很好的情況下,那么該值也是很有價值的。'‘之前,提到Seconds_Behind_Master這個參數會有負值出現,我們已經知道該值是io_thread的最近跟新的ts與sql_thread執行到的ts差值,

前者始終是大于后者的,唯一的肯能就是某個event的ts發生了錯誤,比之前的小了,那么當這種情況發生時,負值出現就成為可能。

3.2 方法2.

mk-heartbeat:Maatkit萬能工具包中的一個工具,被認為可以準確判斷復制延時的方法。

mk-heartbeat的實現也是借助timestmp的比較實現的,它首先需要保證主從服務器必須要保持一致,通過與相同的一個NTP server同步時鐘。它需要在主庫上創建一個heartbeat的表,里面至少有id與ts兩個字段,id為server_id,ts就是當前的時間戳now(),該結構也會被復制到從庫上,表建好以后,會在主庫上以后臺進程的模式去執行一行更新操作的命令,定期去向表中的插入數據,這個周期默認為1秒,同時從庫也會在后臺執行一個監控命令,與主庫保持一致的周期去比較,復制過來記錄的ts值與主庫上的同一條ts值,差值為0表示無延時,差值越大表示延時的秒數越多。我們都知道復制是異步的ts不肯完全一致,所以該工具允許半秒的差距,在這之內的差異都可忽略認為無延時。這個工具就是通過實打實的復制,巧妙的借用timestamp來檢查延時;

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。。

您可能感興趣的文章:
  • 基于Linux的mysql主從配置全過程記錄
  • MySQL主從同步機制與同步延時問題追查過程
  • Mysql主從復制注意事項的講解
  • 如何快速使用mysqlreplicate搭建MySQL主從

標簽:北京 昌都 黔西 荊門 駐馬店 鄂爾多斯 梅河口 陜西

巨人網絡通訊聲明:本文標題《詳解MySQL主從不一致情形與解決方法》,本文關鍵詞  詳解,MySQL,主從,不一致,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解MySQL主從不一致情形與解決方法》相關的同類信息!
  • 本頁收集關于詳解MySQL主從不一致情形與解決方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    一区二区三区在线视频免费观看| 久久综合久久鬼色| 8v天堂国产在线一区二区| 国产成人欧美日韩在线电影| 午夜婷婷国产麻豆精品| 一区二区三区精密机械公司| 亚洲最大的成人av| 欧美日本在线播放| 色婷婷综合视频在线观看| 成熟亚洲日本毛茸茸凸凹| 国模一区二区三区白浆| 粉嫩嫩av羞羞动漫久久久| 麻豆91在线观看| 激情偷乱视频一区二区三区| 伦理电影国产精品| 精品夜夜嗨av一区二区三区| 麻豆91在线观看| 裸体一区二区三区| 成人av电影在线网| 欧美一区二区三区视频免费播放 | 一区二区三区在线高清| 亚洲一区二区三区四区在线免费观看| 国精产品一区一区三区mba桃花| 亚洲最大的成人av| 欧美人妇做爰xxxⅹ性高电影| 日本久久精品电影| 欧美tickling网站挠脚心| 精品国产91久久久久久久妲己| 久久综合资源网| 婷婷一区二区三区| 国产成a人亚洲| 在线电影欧美成精品| 久久久777精品电影网影网 | 激情小说亚洲一区| 在线免费观看成人短视频| 久久亚洲私人国产精品va媚药| 亚洲日本护士毛茸茸| 男人的天堂久久精品| 99国产精品久久久久| 久久免费电影网| 国产乱子轮精品视频| 五月婷婷欧美视频| 色综合天天天天做夜夜夜夜做| 国产精品一区二区果冻传媒| 制服丝袜中文字幕亚洲| 亚洲免费观看在线视频| 日本福利一区二区| 一区二区三区在线播| 在线观看国产精品网站| 中文字幕成人av| 久久精品二区亚洲w码| 日韩三级电影网址| 免费xxxx性欧美18vr| 欧美日韩一区三区四区| 亚洲男同1069视频| 欧美一区二区日韩| 成人动漫一区二区三区| 亚洲综合一区二区三区| 337p亚洲精品色噜噜噜| 国产成人av一区二区三区在线| 一区在线观看视频| 这里是久久伊人| 91美女蜜桃在线| 日本一区中文字幕| 国产精品福利一区二区| 91视频免费播放| 日韩一区二区在线看片| 国产精品久久免费看| 91精品国产综合久久精品性色| 欧美—级在线免费片| 国产精品自拍毛片| 欧美国产精品一区二区三区| 美女在线观看视频一区二区| 99久久精品国产导航| 亚洲啪啪综合av一区二区三区| 在线播放一区二区三区| 日韩有码一区二区三区| 国产精品看片你懂得| 精品久久久久香蕉网| 91福利视频久久久久| 欧美aⅴ一区二区三区视频| 国产精品久久久爽爽爽麻豆色哟哟| 欧美亚洲一区二区在线| 成人精品视频.| 国产精品一卡二卡| 国产美女视频91| 久久这里只有精品6| 色婷婷精品久久二区二区蜜臂av | 最新国产の精品合集bt伙计| 韩国一区二区在线观看| 日本高清不卡视频| 国产麻豆精品视频| 日韩成人一级片| 日韩国产在线观看| 蜜桃av一区二区| 精品一区二区三区不卡| 久久99国产精品尤物| 国产精品一区二区黑丝| 国产99久久精品| 精品国产一区二区在线观看| 亚洲精品在线观看视频| 亚洲日本在线a| 久久久99精品久久| 国产精品电影一区二区| 亚洲欧洲国产日韩| 亚洲一区二区在线视频| 裸体一区二区三区| 国产成人精品一区二| 色综合天天综合网天天狠天天| 91麻豆精东视频| 欧美性大战久久久久久久蜜臀 | 欧美美女bb生活片| 欧美日韩电影在线| 亚洲综合色网站| 欧美成人女星排行榜| 国产美女精品在线| 91精品国产综合久久久蜜臀图片| 91在线观看一区二区| 国产欧美精品区一区二区三区 | 精品国产91久久久久久久妲己 | 久久综合狠狠综合久久综合88 | 精品国产一区二区三区忘忧草| 国产亚洲一区二区三区在线观看| 国产区在线观看成人精品| 中文字幕一区二区三区不卡| 午夜欧美在线一二页| 96av麻豆蜜桃一区二区| 精品成人一区二区| 国产综合色在线视频区| 日韩欧美美女一区二区三区| 麻豆成人在线观看| 精品国产乱码久久久久久老虎 | 国产成人av一区二区三区在线观看| 国产日韩在线不卡| av成人老司机| 久久精品视频在线免费观看| 国产精品一区二区x88av| 亚洲欧美一区二区不卡| 91麻豆国产福利在线观看| 亚洲在线中文字幕| 欧美日韩亚洲综合在线| 亚洲一区二区高清| 欧美无砖砖区免费| 国产在线一区二区| 国产精品美女久久久久av爽李琼 | 日本va欧美va精品发布| 欧美美女bb生活片| 亚洲一区电影777| 91丨九色丨国产丨porny| 一区二区三区在线免费观看| 一本大道久久a久久综合婷婷| 91在线观看污| 色综合久久天天| 国产精品麻豆欧美日韩ww| 欧美午夜影院一区| 亚洲成人综合视频| 久久久久青草大香线综合精品| 99re视频精品| 经典三级视频一区| 亚洲男女毛片无遮挡| 亚洲精品一区二区三区精华液| 94-欧美-setu| 成人福利视频网站| 91久久精品一区二区三| 国产精品中文字幕欧美| 成人sese在线| 成人av综合在线| 色哟哟一区二区| 91美女片黄在线| 亚洲成在人线在线播放| 亚洲一区二区三区四区五区黄 | 成人av网址在线| 欧美性受极品xxxx喷水| 国产一区在线观看视频| 亚洲3atv精品一区二区三区| 亚洲女同ⅹxx女同tv| 国产精品久久久久久久久搜平片| 麻豆成人免费电影| 天堂av在线一区| 天天爽夜夜爽夜夜爽精品视频| 亚洲成人动漫av| 欧美丰满一区二区免费视频| 91亚洲永久精品| 91豆麻精品91久久久久久| 欧美视频在线一区| 欧美日韩精品高清| 精品国产免费视频| 中文字幕在线观看一区| 日韩电影一二三区| 美洲天堂一区二卡三卡四卡视频| 国产一本一道久久香蕉| 91网上在线视频| 欧美亚洲另类激情小说| 欧美成人a视频| 亚洲视频小说图片| 免费在线一区观看| 国产激情视频一区二区在线观看| 国产一区二区在线电影| 色一区在线观看| 欧美不卡一区二区|