1. 程式人生 > >跨庫操作導致mysql主從複製中斷

跨庫操作導致mysql主從複製中斷

收到故障告警,mysql從庫複製中斷,show slave status\G 看到:

Last_Error: Error 'Table 'test.null_file_md5_d' doesn't exist' on query. Default database: 'xx'. Query: 'update tbl_FileInfo as a inner join test.null_file_md5_d as b on a.filemd5=b.filemd5 set a.filemd5='0''

Query語句顯示,這是一次跨庫操作引發的:update xx庫引用了test庫的表。

生產環境的主從只複製xx庫,/etc/my.cnf配置為:

binlog-do-db=xx

和開發同學確認了下,果然是隻在master的test庫建表和灌資料,忘了在slave執行。

恢復主從步驟:

1、stop slave

2、set global sql_slave_skip_counter=1

注意:

使用sql_slave_skip_counter跳過,每一次跳過為一個Binlog event group, 也就相當於一個事務。所以當一個事務中有兩個SQL, 第一個SQL導致主從複製中斷,然後我們直接使用SQL_SLAVE_SKIP_COUNTER=1跳過錯了。其實第二個SQL也不會在slave中執行了,如果第二個SQL影響100行,那麼主從就有100行資料不一致了。所以,我們在跳過之前,一定要看一下,當前binlog event group到底是什麼?

根據slave status中的Relay_Log_File和Relay_Log_Pos兩個值 ,先檢視當前被中斷的binlog event group操作是什麼?

命令:show relaylog events in "Relay_Log_File" from Relay_Log_Pos limit n;

3、start slave

4、show slave status\G

所以,在使用binlog-do-db, binlog-ignore-db, replicate-do-db, replicate-ignore-db 等引數的主從環境下,跨庫操作要謹慎。

擴充套件閱讀:

相關推薦

操作導致mysql主從複製中斷

收到故障告警,mysql從庫複製中斷,show slave status\G 看到: Last_Error: Error 'Table 'test.null_file_md5_d' doesn't exist' on query. Default database: 'xx

Duplicate entry導致mysql主從複製中斷的事故

mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for

mysql主從複製一個小錯誤導致不更新資料

由於歷史遺留問題,我們的MySQL主從庫的表結構不一致,主庫的某個表tableA比從庫表tableA少了一個欄位。 當嘗試在主庫上更改表結構時,這行alter語句會隨著binlog同步到從庫,如果從庫執行這行語句時出錯,主從同步執行緒就會自動停止,那樣只能人為手動處理錯誤,然後再啟動slave上的主從同步執

複習電商筆記-19-mysql主從複製接受和操作

  第五天:MySQL主從複製+Amoeba讀寫分離 思考: 序號 知識點 型別 難度係數 掌握程度  

mysql主從複製重置操作--reset master, reset slave

本文介紹reset master, reset slave的作用。 reset master 在master上執行 mysql > RESET MASTER 作用包括: 刪除binlog索引檔案中列出的所有binlog檔案 清空binlog索引檔案 建立一個新的binlog檔案

MySQL主從複製原理、半同步操作步驟及原理

1.1 企業Linux運維場景資料同步方案 1.1.1 檔案級別的異機同步方案 1、scp/sftp/nc 命令可以實現遠端資料同步。  2、搭建ftp/http/svn/nfs 伺服器,然後在客戶端上也可以把資料同步到伺服器。  3、搭建sa

一條更新操作引起的MySQL主從複製異常

一、環境描述 生產環境異地機房主從資料庫,資料量過百G,資料庫版本社群版本5.6.25。 二、問題描述 同事根據開發提供的SQL在Master節點執行了一個大表的的全表更新操作,導致從節點Slave IO執行緒中斷。 三、問題分析 1)相關引數 my.cnf

Linux下Mysql主從複製(從是MariaDB)

排版不易,希望能幫助到大家 一、準備2臺伺服器 ip:120.168.0.1(主)、120.168.0.2(從) 二、配置檔案         1. Linux中的MySQL配置檔案都在/etc/my.cnf(windows中的配置檔案為mysql.ini)    

mysql主從複製、讀寫分離到資料庫水平拆分及表雜湊

web專案最原始的情況是一臺伺服器只能連線一個mysql伺服器(c3p0只能配置一個mysql),但隨著專案的增大,這種方案明顯已經不能滿足需求了。Mysql主從複製,讀寫分離:上面的方案使用mysql-Proxy代理,分發讀寫請求,寫操作轉發到Mysql主伺服器,讀操作轉發

MySQL主從複製之主宕機處理

主庫宕機  Master DOWN機-企業場景一主多從宕機從庫切換主繼續和從同步過程詳解登陸從庫,show processlist;檢視兩個執行緒的更新狀態;檢視所有從庫中,檢視/application/mysql-5.6.20/data/mysql.info確保更新完畢,看

windows下 mysql 主從複製 2臺伺服器操作

為什麼要主從同步? 在Web應用系統中,資料庫效能是導致系統性能瓶頸最主要的原因之一。尤其是在大規模系統中,資料庫叢集已經成為必備的配置之一。叢集的好處主要有:查詢負載、資料庫複製備份等。其中Ma

Mysql主從複製狀態雙Yes及seconds_behind_master為0的故障分析

在監控Mysql主從叢集的時候,通常會使用以下三個引數 Slave_IO_Running: Yes Slave_SQL_Running: Yes Seconds_Behind_Master: 0 實際上,這種方式是有問題的。下面轉載的兩篇文章有詳細的描述。 簡單來說:如

MySQL主從複製 虛擬機器克隆導致1593異常

使用VMware克隆了兩個CentOS,做主從複製時一直顯示Slave_IO_Running=NO,經過爬文發現是克隆導致。 解決辦法: 1. find / -name auto.cof

Docker進行MySQL主從複製操作

>Docker的相關操作 與 Docker下MySQL容器的安裝 https://www.cnblogs.com/yumq/p/14253360.html >本次實驗我是在單機狀態下進行mysql的主從複製,和多機的原理一樣 # 準備多個mysql容器 > 相關引數 ```txt --name 容器的名稱命

MySQL 主從同步中斷常見問題

event config update ren ons lec myisam cor rac Error_code: 1032 【現象】   Last_Error: Could not execute Update_rows event on table kebao.t1;

MySQL解決8小時內沒有進行數據操作mysql自動斷開連接, 需要重啟tomcat的問題

數據 style 斷開連接 pan family 行數 需要 -s 重啟tomcat 在my.cnf中加入: [mysqld] wait_timeout=604800 interactive_timeout=604800 設置為7天MySQL解決8小時內沒有進行數據庫操

簡單幾部搞定laravel/lumen操作

mil tom fig文件 brush localhost utf except conn strong 1.跨庫數據庫配置 在網站跟目錄下的config文件中增加database.php作為數據庫配置文件。配置如下: //當前默認數據庫'my

那些原因會導致Mysql主從數據不一致

pac 基於 延遲 由於 註意 不同步 syn 損壞 主從復制 1.網絡的延遲由於mysql主從復制是基於binlog的一種異步復制,通過網絡傳送binlog文件,理所當然網絡延遲是主從不同步的絕大多數的原因,特別是跨機房的數據同步出現這種幾率非常的大,所以做讀寫分離,註意

MySQL主從複製(Replication for Backup)

環境:MySQL5.7,VMware-Workstation-12-Pro,Windows-10,CentOS-7.5,Xshell5 1. 基本概念和操作思路 主從複製能做什麼 資料庫的主從複製,是一臺主資料庫機器(Master)把自己的資料,複製到一臺或多臺從機器(Slaves)上。主從機器的通訊方

MYSQL主從複製+讀寫分離

案例 搭建MYSQL主從複製 這裡mysql伺服器都裝好了的 yum -y install ntp #裝ntp時間同步 vim /etc/ntp.conf #配置檔案 server 127.127.1.0 fudge 127.127.1.0 strat