MySQL解決主從復制的報錯問題

MySQL 8.4 非 GTID 模式部分數據庫主從復制指南

在進行MySQL 8.4非GTID模式下部分數據庫主從復制時,以下是詳細的操作步驟以及對應的執行位置說明,還有報錯處理方法介紹:

操作步驟

1. 備份主庫指定數據庫(db1、db2)(主服務器上執行)

mkdir -p /backup
chown mysql:mysql /backup
mysqldump -u root -p --single-transaction --master-data=2 --databases db1 db2 --set-gtid-purged=OFF > /backup/partial_dump.sql
  • --single-transaction:此參數可避免在備份過程中對數據表進行鎖定,保障數據庫正常讀寫不受影響。
  • --master-data=2:用于記錄主庫的binlog位置信息,會以注釋形式添加到備份文件中,方便后續配置使用。
  • --set-gtid-purged=OFF:鑒于采用的是非GTID模式,設置該參數為OFF可禁用與GTID相關的內容輸出,防止后續出現不必要干擾。

2. 停止從庫復制(從服務器上執行)

STOP REPLICA;

注意這里使用的是MySQL 8.0及以上版本規范的語法來停止從庫的復制進程。

3. 清理從庫(可選,從服務器上執行)

DROP DATABASE IF EXISTS db1;
DROP DATABASE IF EXISTS db2;

此操作需謹慎進行,因為執行后會刪除對應數據庫中的所有數據,要提前確認好或者做好額外備份,避免數據丟失。

4. 傳輸備份文件(主服務器上執行)

scp /backup/partial_dump.sql 從服務器用戶名@從服務器IP:/backup/

執行該命令時,要確保從服務器已開啟相應的文件傳輸服務(如ssh服務),并且接收端的“從服務器用戶名”對目標目錄/backup/具備寫入權限,這樣才能成功傳輸備份文件。

5. 從庫恢復備份(從服務器上執行)

mysql -u root -p < /backup/partial_dump.sql

通過此命令,能將接收到的備份文件中的數據庫結構與數據完整導入到從庫中,為后續配置主從復制奠定數據基礎。

6. 配置從庫復制(從服務器上執行)

首先,查看binlog位置:

grep -A1 "CHANGE MASTER TO" /backup/partial_dump.sql

通過這條命令,我們可以從備份文件中查找之前記錄的主庫 binlog 位置信息,這些信息后續會配置到從庫的主從復制設置中。
接著,配置主庫連接信息:

-- 配置主庫連接信息(在從服務器上執行)
CHANGE REPLICA TO MASTER_HOST='192.168.73.110',  -- 主庫IP,這里需要替換為實際的主庫IP地址MASTER_USER='repluser',        -- 復制用戶,要提前在主庫創建好用于復制的用戶,并賦予相應權限MASTER_PASSWORD='centos',      -- 復制用戶密碼,確保密碼正確且保密MASTER_PORT=3306,              -- 主庫端口,通常MySQL默認端口是3306,若有修改則填實際端口MASTER_LOG_FILE='mysql-bin.000003',  -- 從grep結果中獲取對應的binlog文件名MASTER_LOG_POS=245,                 -- 從grep結果中獲取對應的binlog位置坐標MASTER_RETRY_COUNT=10;             -- 連接重試次數,設置合適的重試次數以應對可能出現的網絡等問題導致的連接失敗-- 指定復制的數據庫(在從服務器上執行)
CHANGE REPLICATION FILTER REPLICATE_DO_DB = (db1, db2);

配置時,務必準確填寫各項參數,像主庫IP、用于復制的用戶及其密碼等關鍵信息都要確保無誤,以此保障從庫能順利連接主庫進行數據復制,同時通過CHANGE REPLICATION FILTER語句明確指定只對db1db2這兩個數據庫進行復制操作。

7. 啟動從庫復制(從服務器上執行)

START REPLICA;

遵循MySQL 8.0及以上版本的語法規范來啟動從庫的復制進程。

8. 驗證復制狀態(從服務器上執行)

SHOW REPLICA STATUS

查看輸出結果時,重點留意以下兩項是否顯示為Yes

  • Replica_IO_Running:若該項為Yes,表明從庫的I/O線程運行正常,可從主庫讀取binlog日志文件。
  • Replica_SQL_Running:該項為Yes意味著從庫的SQL線程運行正常,能將讀取到的binlog內容解析并應用到從庫中,保證數據的一致性。

若這兩項中任何一項顯示為No,就需要進一步排查諸如網絡連接、主從庫配置參數以及權限設置等方面是否存在問題。

報錯處理方法

方法1. 跳過指定數量的事務(從服務器上執行)

mysql>slave stop;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
mysql>slave start

可根據實際情況,按需修改跳過的事務數量,該方法適用于確定某個事務導致復制中斷且可跳過此事務的情形。

方法2. 修改配置文件跳過錯誤(從服務器上執行,需重啟MySQL服務)

vi /etc/my.cnf

[mysqld]配置項下面添加以下內容:

#slave-skip-errors=1062,1053,1146 (跳過指定類型錯誤,可按實際報錯的錯誤編號填寫)
slave-skip-errors=all (跳過所有錯誤,需謹慎使用,可能會掩蓋潛在問題,導致數據不一致等情況)

添加配置后,要重啟MySQL服務使配置生效。不過要特別強調,跳過所有錯誤這種方式屬于極端做法,一般建議優先排查清楚錯誤原因,實在無法解決且明確對數據影響不大時再考慮使用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/82927.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/82927.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/82927.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux的域名解析服務器

什么是DNS DNS&#xff08;Domain Name System&#xff09;是互聯網上的一項服務&#xff0c;它作為將域名和IP地址相互映射的一個分 布式數據庫&#xff0c;能夠使人更方便的訪問互聯網 DNS使用的是53端口&#xff0c; 通常DNS是以UDP這個較快速的數據傳輸協議來查詢的&…

vue 中綁定樣式 【class樣式綁定】

class 樣式綁定 在 Vue 中&#xff0c;可以通過 :class&#xff08;或簡寫 v-bind:class&#xff09;實現類名&#xff08;class&#xff09;樣式的綁定。Vue 提供了幾種常用的綁定方式&#xff0c;分別支持字符串、對象和數組語法。 綁定字符串 <div :class"active…

Unity3D 序列化機制:引擎內的應用場景和基本原理

前言 Unity3D 的序列化機制是其核心功能之一&#xff0c;用于在編輯器和運行時之間持久化數據、管理場景狀態、處理預制體&#xff08;Prefab&#xff09;以及實現跨平臺兼容性。以下是其應用場景和基本原理的詳細解析&#xff1a; 對惹&#xff0c;這里有一個游戲開發交流小…

Python 字典鍵 “三變一” 之謎

開頭&#xff1a;讀者的“玄學”字典謎題 上周&#xff0c;朋友發來了一段讓他抓耳撓腮的代碼&#xff1a; >>> {True: foo, 1: bar, 1.0: baz} {True: baz} “我明明定義了布爾True、整數1、浮點數1.0三個鍵&#xff0c;結果字典里只剩True一個鍵&#xff0c;值…

如何選擇 RabbitMQ、Redis 隊列等消息中間件?—— 深度解析與實戰評估

如何選擇 RabbitMQ、Redis 隊列等消息中間件?—— 深度解析與實戰評估 1. 引言 在現代分布式系統架構中,消息隊列(Message Queue,MQ) 作為解耦服務、異步處理和高效通信的關鍵組件,被廣泛應用于高并發、微服務和數據流處理場景。選擇合適的消息中間件不僅能提高系統的穩…

特征工程四:數據特征提取TfidfVectorizer的使用

TfidfVectorizer 深度解析 TfidfVectorizer 是 scikit-learn 中用于文本特征提取的核心工具&#xff0c;它將原始文本轉換為 TF-IDF 特征矩陣&#xff0c;是自然語言處理(NLP)和文本挖掘的基礎組件。 一、核心原理 1. TF-IDF 計算 TF (Term Frequency)&#xff1a;詞頻&…

c/c++爬蟲總結

GitHub 開源 C/C 網頁爬蟲探究&#xff1a;協議、實現與測試 網頁爬蟲&#xff0c;作為一種自動化獲取網絡信息的強大工具&#xff0c;在搜索引擎、數據挖掘、市場分析等領域扮演著至關重要的角色。對于希望深入理解網絡工作原理和數據提取技術的 C/C 開發者&#xff0c;尤其是…

PostgreSQL 的表連接方法

PostgreSQL 的表連接方法 PostgreSQL 提供了多種高效的連接算法&#xff0c;每種方法適用于不同的查詢場景。以下是 PostgreSQL 支持的四種主要表連接方法及其特點&#xff1a; 1 Nested Loop Join&#xff08;嵌套循環連接&#xff09; 工作原理 對外表的每一行&#xff0…

【Qt】qss語法詳解

QSS (Qt Style Sheets) 語法格式詳解 QSS 是 Qt 的樣式表語言&#xff0c;類似于 CSS&#xff0c;用于自定義 Qt 應用程序的外觀。以下是 QSS 的完整語法格式說明&#xff1a; 基本語法結構 selector {property: value;property: value;... }1. 選擇器 (Selectors) 基本選擇…

Azure資源創建與部署指南

本文將指導您如何在Azure平臺上創建和配置必要的資源,以部署基于OpenAI的應用程序。 資源組創建 資源組是管理和組織Azure資源的邏輯容器。 在Azure門戶頂端的查詢框中輸入"Resource groups"(英文環境)或"資源組"(中文環境)在搜索結果中點擊"資…

Java后端快速生成驗證碼

Hutool是一個小而全的Java工具類庫&#xff0c;它提供了很多實用的工具類&#xff0c;包括但不限于日期處理、加密解密、文件操作、反射操作、HTTP客戶端等。 核心工具類&#xff1a;CaptchaUtil&#xff0c;CaptchaUtil 是 Hutool 提供的一個工具類&#xff0c;用于創建各種類…

sql 備份表a數據到表b

備份表a數據到表b mysql CREATE TABLE sys_dict_240702 LIKE sys_dict;INSERT INTO sys_dict_240702 SELECT * FROM sys_dict;mssql select * into t_Dict_240702 from t_Dict

2.4GHz無線通信芯片選型指南:集成SOC與低功耗方案解析

今天給大家分享幾款2.4GHz無線通信芯片方案&#xff1a; 一、集成SOC芯片方案 XL2407P&#xff08;芯嶺技術&#xff09; 集成射頻收發機和微控制器&#xff08;如九齊NY8A054E&#xff09; 支持一對多組網和自動重傳 發射功率8dBm&#xff0c;接收靈敏度-96.5dBm&#xff08…

Tomcat與純 Java Socket 實現遠程通信的區別

Servlet 容器??&#xff08;如 Tomcat&#xff09; 是一個管理 Servlet 生命周期的運行環境&#xff0c;主要功能包括&#xff1a; ??協議解析??&#xff1a;自動處理 HTTP 請求/響應的底層協議&#xff08;如報文頭解析、狀態碼生成&#xff09;&#xff1b; ??線程…

[超級簡單]講解如何用PHP實現LINE Pay API!

在 PHP 中實現 LINE Pay API 之前我應該??做哪些準備&#xff1f;如何在 PHP 中實現 LINE Pay API&#xff1f; 目錄 [前提] 環境使用 PHP 實現 LINE Pay API 的準備工作使用 PHP 實現 LINE Pay API概括 [前提] 環境 這次我們將使用SandBox環境&#xff08;測試環境&a…

centos7.x下,使用寶塔進行主從復制的原理和實踐

操作原理&#xff1a; 一、主庫配置 1.修改 MySQL 配置文件 # 編輯主庫配置文件&#xff08;路徑根據實際系統可能不同&#xff09; vim /etc/my.cnf # 添加以下配置 [mysqld] server-id 1 # 唯一 ID&#xff0c;主庫設置為 1 log-bin mysql-bin …

從零實現基于Transformer的英譯漢任務

1. model.py&#xff08;用的是上一篇文章的代碼&#xff1a;從0搭建Transformer-CSDN博客&#xff09; import torch import torch.nn as nn import mathclass PositionalEncoding(nn.Module):def __init__ (self, d_model, dropout, max_len5000):super(PositionalEncoding,…

c#建筑行業財務流水賬系統軟件可上傳記賬憑證財務管理系統簽核功能

# financial_建筑行業 建筑行業財務流水賬系統軟件可上傳記賬憑證財務管理系統簽核功能 # 開發背景 軟件是給岳陽客戶定制開發一款建筑行業流水賬財務軟件。提供工程簽證單、施工日志、人員出勤表等信息記錄。 # 財務管理系統功能描述 1.可以自行設置記賬科目&#xff0c;做憑…

MySQL 8.0 OCP 1Z0-908 題目解析(2)

題目005 Choose two. Which two actions can obtain information about deadlocks? □ A) Run the SHOW ENGINE INNODB MUTEX command from the mysql client. □ B) Enable the innodb_status_output_locks global parameter. □ C) Enable the innodb_print_all_deadlock…

XA協議和Tcc

基于 XA 協議的兩階段提交 (2PC)。這是一種分布式事務協議&#xff0c;旨在保證在多個參與者&#xff08;通常是不同的數據庫或資源管理器&#xff09;共同參與的事務中&#xff0c;所有參與者要么都提交事務&#xff0c;要么都回滾事務&#xff0c;從而維護數據的一致性。 你…