最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

記一次MySQL Slave庫恢復(fù)實戰(zhàn)記錄

 更新時間:2019年07月01日 10:32:04   作者:asikakora  
這篇文章主要介紹了記一次MySQL Slave庫恢復(fù)實戰(zhàn)記錄,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

狀況描述:

今天登錄一個MySQL數(shù)據(jù)庫slave節(jié)點主機發(fā)現(xiàn)/var/lib/mysql下存放大量的mysql-relay-bin文件,最早的文件創(chuàng)建日期甚至是2018年,我記得在slave庫同步完master的日志操作記錄后,會刪除這些文件(默認(rèn)設(shè)置不會刪除,我記錯了),于是便查看了slave庫的狀態(tài),發(fā)現(xiàn)如下報錯:

mysql> show slave status\G;
*************************** 1. row ***************************
        Slave_IO_State: Waiting for master to send event
         Master_Host: *.*.*.*
         Master_User: dbsync
         Master_Port: 3306
        Connect_Retry: 60
       Master_Log_File: mysql-bin.000095
     Read_Master_Log_Pos: 869242147
        Relay_Log_File: mysqld-relay-bin.000146
        Relay_Log_Pos: 871280529
    Relay_Master_Log_File: mysql-bin.000075
       Slave_IO_Running: Yes
      Slave_SQL_Running: No
       Replicate_Do_DB: cdb,cdb_admin
     Replicate_Ignore_DB: mysql
      Replicate_Do_Table: 
    Replicate_Ignore_Table: 
   Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
          Last_Errno: 1594
          Last_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave.
         Skip_Counter: 0
     Exec_Master_Log_Pos: 871280384
       Relay_Log_Space: 19994786573
       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: NULL
Master_SSL_Verify_Server_Cert: No
        Last_IO_Errno: 0
        Last_IO_Error: 
        Last_SQL_Errno: 1594
        Last_SQL_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave.
1 row in set (0.00 sec)

ERROR: 
No query specified

原因:

我在master節(jié)點上刪除了名稱為mysql-bin.00007格式的文件,其中包括mysql-bin.000075,因此,slave庫找不到該文件,無法同步。

解決辦法:

1、在slave庫上重新指定同步位置。(不可行)

slave stop;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000095',MASTER_LOG_POS=869242147; //mysql master節(jié)點上mysql-bin.000095的已有位置
slave start;

slave節(jié)點上show slave status,依然報錯,具體的報錯內(nèi)容沒有復(fù)制下來,只記得errno為1236,Slave_IO_Running進程不運行,Slave_SQL_Running進程運行,大概描述就是某個庫的某個表有問題。

在多次嘗試指定不同的同步位置(報錯的位置,master上mysql-bin-000095剛寫過的位置)依然存在該錯誤。

實際上,表記錄已經(jīng)有問題,就拿描述中提出的那個表來說,slave庫存放了約1200條記錄,master庫則有1900+的記錄。除非手工將這些數(shù)據(jù)補上,否則由于記錄操作數(shù)據(jù)的日志已經(jīng)丟失(被我刪除),是找不到最近的一致的日志操作執(zhí)行位置的。

2、重做slave庫。

由于數(shù)據(jù)差異太大,而且我覺得不光一張表出現(xiàn)了數(shù)據(jù)不一樣的問題,所以干凈點,把從庫重做。
1)比對master、slave節(jié)點庫配置信息,保證一致。(我不知道為什么設(shè)置了雙主模式,實際上我只有一個實例跑在master節(jié)點上???)

2)在master、slave節(jié)點上查看流量情況(show processlist),保證要重做的slave庫上沒有業(yè)務(wù)的流量接入。

3)停止master節(jié)點上slave進程。(這個停了以后,我就沒開過,不知道有沒有問題,待觀察)

4)記錄master節(jié)點上庫的日志記錄位置,之后備份數(shù)據(jù)庫:

mysql> show master status;
+------------------+-----------+-------------------------------+------------------+
| File       | Position | Binlog_Do_DB         | Binlog_Ignore_DB |
+------------------+-----------+-------------------------------+------------------+
| mysql-bin.000095 | 871760173 | cdb,cdb_admin | mysql      |
+------------------+-----------+-------------------------------+------------------+
1 row in set (0.01 sec)
 mysqldump -u root -p --databases cdb,cdb_admin > bak.master.sql

5)保險起見,備份slave節(jié)點庫:

mysqldump -u root -p --databases cdb,cdb_admin > bak.slave.sql

6)重做開始:把master庫備份文件復(fù)制到slave節(jié)點上,導(dǎo)入該備份文件

mysql -u root -p < bak.master.sql

7)在slave節(jié)點上,重新指定讀master日志的位置:

slave stop;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000095',MASTER_LOG_POS=871760173; //POS為剛才記錄的master節(jié)點日志記錄位置
slave start;

8)slave節(jié)點上 show slave status;此時Slave_IO_Running,Slave_SQL_Running均運行起來了,刷新slave status,Read_Master_Log_Pos數(shù)值也開始增加,重新開始同步了。

總結(jié):

清理文件時,要注意mysql-bin文件在master、slave節(jié)點日志讀取和寫的位置?。?,刪之前一定要確認(rèn)日志位置在master和slave斷已被讀過,不要亂刪,否則搞得slave庫無法同步了,就算在slave節(jié)點上強行指定master日志讀取位置或者跳過該錯誤,也不排除slave庫上數(shù)據(jù)丟失的可能。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL中查詢某一天, 某一月, 某一年的數(shù)據(jù)代碼詳解

    MySQL中查詢某一天, 某一月, 某一年的數(shù)據(jù)代碼詳解

    本文通過實例代碼給大家介紹了MySQL中, 如何查詢某一天, 某一月, 某一年的數(shù)據(jù) ,需要的朋友可以參考下
    2019-06-06
  • Mysql 日期時間 DATE_FORMAT(date,format)

    Mysql 日期時間 DATE_FORMAT(date,format)

    Mysql 日期時間 DATE_FORMAT(date,format) ,需要的朋友可以參考下。
    2010-12-12
  • mysql啟動時出現(xiàn)ERROR 2003 (HY000)問題的解決方法

    mysql啟動時出現(xiàn)ERROR 2003 (HY000)問題的解決方法

    這篇文章主要為大家詳細介紹了mysql啟動時出現(xiàn)ERROR 2003 (HY000問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • MySQL可直接使用的查詢表的列信息(實現(xiàn)方案)

    MySQL可直接使用的查詢表的列信息(實現(xiàn)方案)

    本文介紹了如何使用SQL快速將下劃線命名的表字段轉(zhuǎn)換為駝峰命名格式,包括確定下劃線位置、找到第一個字符、截取并拼接字符串等步驟,通過使用LOCATE、CONCAT、UCASE和LOWER等函數(shù),可以實現(xiàn)高效的字段命名轉(zhuǎn)換,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • Mysql誤刪數(shù)據(jù)解決方案及kill語句原理

    Mysql誤刪數(shù)據(jù)解決方案及kill語句原理

    這篇文章主要介紹了Mysql誤刪數(shù)據(jù)解決方案及kill語句原理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Navicat查詢結(jié)果不能修改的原因及解決方法

    Navicat查詢結(jié)果不能修改的原因及解決方法

    下面小編就為大家?guī)硪黄狽avicat查詢結(jié)果不能修改的原因及解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • MySQL總是差八個小時該如何解決

    MySQL總是差八個小時該如何解決

    最近在用mybatis時發(fā)現(xiàn),將LocalDateTime插入到數(shù)據(jù)庫時時間少了8小時,下面這篇文章主要給大家介紹了關(guān)于MySQL總是差八個小時該如何解決的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • Linux下MySQL多實例部署及安裝指南

    Linux下MySQL多實例部署及安裝指南

    Mysql多實例就是在一臺服務(wù)器上同時開啟多個不同的服務(wù)端口(3306、3307),同時運行多個Mysql服務(wù)進程,這些服務(wù)進程通過不同的socket監(jiān)聽不同的服務(wù)端口來提供服務(wù),這篇文章主要介紹了Linux下MySQL多實例部署記錄,需要的朋友可以參考下
    2021-08-08
  • MySQL replace into 語句淺析(一)

    MySQL replace into 語句淺析(一)

    這篇文章主要介紹了MySQL replace into 語句淺析(一),本文講解了replace into的原理、使用方法及使用的場景和使用示例,需要的朋友可以參考下
    2015-05-05
  • MySQL主從原理及配置詳解

    MySQL主從原理及配置詳解

    這篇文章主要為大家詳細介紹了MySQL主從原理及配置的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評論

长岛县| 彭泽县| 巴彦淖尔市| 华阴市| 霍林郭勒市| 沁源县| 焉耆| 岑溪市| 奈曼旗| 梓潼县| 磴口县| 东城区| 泰兴市| 襄垣县| 日照市| 陆良县| 澄江县| 嘉黎县| 东乌珠穆沁旗| 凤庆县| 岳西县| 余江县| 安溪县| 太仆寺旗| 桃园市| 邵武市| 晋中市| 宝山区| 苗栗县| 修武县| 陵水| 七台河市| 哈巴河县| 普格县| 柳林县| 泸州市| 健康| 天峨县| 镇远县| 文化| 福鼎市|