FILE+POS 方式 GreatSQL 主從複製架構給主節點磁碟擴容

来源:https://www.cnblogs.com/greatsql/p/18297613
-Advertisement-
Play Games

FILE+POS 方式 GreatSQL 主從複製架構給主節點磁碟擴容 一、前提 在一套非常老的系統上,有一套GreatSQL主從集群(1主1從),主從複製採用的是FILE+POS方式複製,磁碟使用緊張需要擴容,只能在該台機器上添加更大的磁碟,將原數據盤替換,也沒有其他的機器資源替換。這套系統沒有V ...


FILE+POS 方式 GreatSQL 主從複製架構給主節點磁碟擴容

一、前提

在一套非常老的系統上,有一套GreatSQL主從集群(1主1從),主從複製採用的是FILE+POS方式複製,磁碟使用緊張需要擴容,只能在該台機器上添加更大的磁碟,將原數據盤替換,也沒有其他的機器資源替換。這套系統沒有VIP,沒有高可用切換工具,業務讀寫直連主節點,從節點可供讀,允許有一定的延遲,全程磁碟擴容需要手動操作,以下方案步驟是模擬最快的方式去進行磁碟擴容。

二、整體思路是

在主節點機器上掛載一塊新磁碟,在新磁碟上搭建一個新的從節點,舊從節點的主變為新從節點,最後將主節點與新從節點準備好配置文件後,關閉主節點,將新從節點使用新的配置文件重啟,埠號為舊主port,新主實例頂替舊主成功。

三、模擬環境

主從架構

db01:master,172.17.135.81:3306

db02:slave02,172.17.134.225:3306

原主從db01 master複製數據到db02 slave02,現在在db01上搭建新的從節點slave01,並將slave01提升為新的主節點master02

db01:IP為172.17.135.81

master :port 3306

slave01:port 3307

db02:IP為172.17.134.225

slave02:port 3306

四、以下操作為模擬切換流程

1).在db01上master 數據放在磁碟 /data/

使用xtrabackup工具備份並搭建db01 slave01 數據放在磁碟/data2/上

2).改變db02 slave02 數據源為 db01 slave01(即db02 slave02 從db01-slave01同步數據),後期切換資料庫

操作過程

01.停掉db02 slave02 複製線程

先停slave02目的是,slave02獲取執行的binlog比db01 slave01上的binlog少,方便後續db02 slave02 追數據到db01 slave01 指定的位點

file

02.觀察db02 slave02(一定要小於04步驟的位置)

greatsql> show slave status\G
Relay_Master_Log_File: mysql-bin.000002
Exec_Master_Log_Pos: 61781270

file

03.停掉db01 slave01主從線程

觀察主從複製情況,確認 db01 slave01 獲取主節點位點比db02 slave02 大,然後停掉主從,方便方便獲取db01 slave01上的binlog位置信息(show master status)

觀察標記部分比db02 slave02大

file

停止複製

file

04.觀察db01 slave01

greatsql> show slave status\G
Relay_Master_Log_File: mysql-bin.000002
Exec_Master_Log_Pos:73110158

file

05.觀察db01 slave01

與獲取主節點過來的binlog位點信息與當前節點上binlog位點信息對應關係

greatsql> show master status;
File :mysql-bin.000003   
Position : 48396034

file

06.開啟db01 slave01 主從線程

使db01 slave01 正常追數據

greatsql> start slave;

07.db02 slave02 執行 until 的位置 為(04步驟)得到的值

追binlog至指定位點,該位點對應著db01 slave01 節點上show master status獲取的位點信息

greatsql> start slave until MASTER_LOG_FILE ='mysql-bin.000002',MASTER_LOG_POS =73110158;

file

觀察狀態,是否到指定位點停止

greatsql> show slave status \G

file

到指定位點停止後,停掉主從複製

greatsql> stop slave;  

file

08.db02 slave02 從db01 slave01獲取數據源(即重新指定db02 slave02 主庫信息)

根據04 、05 獲取的主binlog位點與db01 slave01 binlog位點對應關係,將db02 slave02複製關係指定位從db01 slave01獲取binlog數據,重啟主從複製,並觀察主從狀態

在db02 slave02 重新指定複製關係

greatsql> reset slave all; 

greatsql> CHANGE MASTER TO MASTER_HOST= '172.17.135.81',MASTER_USER='rpl', MASTER_PASSWORD='rpl123!',MASTER_PORT=3307,MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=48396034;

greatsql> start slave;

file

觀察複製狀態,等待複製正常之後在進行下一步,避免數據丟失

greatsql> show slave status \G 

file

09.通知將業務停止,避免數據更新,觀察全部節點是否處於同一binlog位點狀態

在db01 master節點上觀察

file

觀察db01 slave01 主從是否正常,且無延遲

greatsql> show slave status\G

file

greatsql> show master status;

file

觀察 db02 slave02

file

10.停止db02 slave 02

greatsql> stop slave;

11.在db02 slave 02觀察

greatsql> show slave status\G
Relay_Master_Log_File: mysql-bin.000003
Exec_Master_Log_Pos: 114096916

12.先後正常關閉 db01 master,然後關閉db01 slave01

修改配置文件db01 slave01 埠號為3306

13.啟動db01 slave01(不要啟動db01 master)

登錄db01 slave01 清除複製信息

greatsql> reset slave all;

14.重置db02 slave02主從複製信息,從新的主節點拉取數據

greatsql> CHANGE MASTER TO MASTER_HOST= '172.17.135.81',MASTER_USER='rpl', MASTER_PASSWORD='rpl123!',MASTER_PORT=3306,MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=114096916;

greatsql> show slave status\G

file

15、通知業務重連,磁碟擴容完成

五、案例總結

本案例主要是針對非GTID複製、無自動切換、無VIP、無新機器、磁碟無法動態擴容的場景。

核心思想是找到對應的binlog位點信息,在重新指定主從信息,在重新指定主從信息之前,可以做準備工作,例如主節點上的新備主節點可以提前準備,配置文件可以提前準備,命令提前準備好,通過填補的方式將關鍵信息填到對應的命令中,儘量的去節省時間以及追數時間,促使業務宕機時間達到最短。


Enjoy GreatSQL

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.檢查原始數據 原始數據展示如下: 工況 工況1 工況2 工況3 工況4 工況5 M 89.37 86.05 92.95 87.44 73.56 DF-1 87.45 80.98 89.68 84.43 73.46 DF-2 86.00 81.54 89.68 84.43 73.46 UP 85. ...
  • liwen01 2024.07.07 前言 yaffs 是專為nand flash 設計的一款文件系統,與jffs 類似,都是屬於日誌結構文件系統。與jffs 不同的是,yaffs 文件系統利用了nand flash 一些特有屬性,所以在數據讀寫擦除和回收上都有較大的差異。 關於jffs2文件系統的 ...
  • 本篇文章就是一個過渡學習的,先入門shell腳本,由於作者有編程基礎,所以有些解釋的比較少。由於現在還在努力學習中,以後等本散修進階了之後再寫進階的、與網路安全更加貼合的shell編程 ...
  • 寫在前面 筆者不才,過去一年中一半的時間在準備考研,博客園無心打理,顯得荒蕪了。到如今臨近畢業,找的工作實事求是的講也只是專業相關,並不完全對口,估計一段時間之內都沒法親自做開發了。雖然去的也是大公司,培養和各方面的保障都不錯,但是對於學了四年技術(慚愧地說學的不算精深)的筆者來說,畢業了做的不是技 ...
  • 2024/07/08 一、JDK下載 二、安裝與JDK開發環境配置(Windows) 三、安裝與JDK開發環境配置(Linux) 一、JDK下載與安裝 網址: https://www.oracle.com/java/technologies/downloads/#java8-windows Linu ...
  • 2024/07/15 1.問題描述 2.問題處理 3.其他問題 1.問題描述 昨天伺服器突然斷電,今天重啟後,網路出了些問題,具體情況如下: 能ping通本機IP ping不通網關 ping不通本網段其他IP地址 ping不通其他網段地址 2.問題處理 vi /etc/sysconfig/netwo ...
  • 近日,天翼雲TeleDB資料庫在中國信通院“可信資料庫”系列測試的賽道上,一次性跨越“分散式事務型資料庫基礎能力測試”與“性能測試”的雙重大關,以雲服務國家隊的卓越實力為資料庫領域樹立了新標桿。 ...
  • 主機配置說明: 192.168.136.101 mysql01 centos7.9 2C4G192.168.136.102 mysql02 centos7.9 2C4G防火牆主機互相放行 firewall-cmd --zone=public --permanent --add-rich-rule=' ...
一周排行
    -Advertisement-
    Play Games
  • 前言 微服務架構已經成為搭建高效、可擴展系統的關鍵技術之一,然而,現有許多微服務框架往往過於複雜,使得我們普通開發者難以快速上手並體驗到微服務帶了的便利。為瞭解決這一問題,於是作者精心打造了一款最接地氣的 .NET 微服務框架,幫助我們輕鬆構建和管理微服務應用。 本框架不僅支持 Consul 服務註 ...
  • 先看一下效果吧: 如果不會寫動畫或者懶得寫動畫,就直接交給Blend來做吧; 其實Blend操作起來很簡單,有點類似於在操作PS,我們只需要設置關鍵幀,滑鼠點來點去就可以了,Blend會自動幫我們生成我們想要的動畫效果. 第一步:要創建一個空的WPF項目 第二步:右鍵我們的項目,在最下方有一個,在B ...
  • Prism:框架介紹與安裝 什麼是Prism? Prism是一個用於在 WPF、Xamarin Form、Uno 平臺和 WinUI 中構建鬆散耦合、可維護和可測試的 XAML 應用程式框架 Github https://github.com/PrismLibrary/Prism NuGet htt ...
  • 在WPF中,屏幕上的所有內容,都是通過畫筆(Brush)畫上去的。如按鈕的背景色,邊框,文本框的前景和形狀填充。藉助畫筆,可以繪製頁面上的所有UI對象。不同畫筆具有不同類型的輸出( 如:某些畫筆使用純色繪製區域,其他畫筆使用漸變、圖案、圖像或繪圖)。 ...
  • 前言 嗨,大家好!推薦一個基於 .NET 8 的高併發微服務電商系統,涵蓋了商品、訂單、會員、服務、財務等50多種實用功能。 項目不僅使用了 .NET 8 的最新特性,還集成了AutoFac、DotLiquid、HangFire、Nlog、Jwt、LayUIAdmin、SqlSugar、MySQL、 ...
  • 本文主要介紹攝像頭(相機)如何採集數據,用於類似攝像頭本地顯示軟體,以及流媒體數據傳輸場景如傳屏、視訊會議等。 攝像頭採集有多種方案,如AForge.NET、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.NET、MediaCaptre(UWP),網上一些文章以及 ...
  • 前言 Seal-Report 是一款.NET 開源報表工具,擁有 1.4K Star。它提供了一個完整的框架,使用 C# 編寫,最新的版本採用的是 .NET 8.0 。 它能夠高效地從各種資料庫或 NoSQL 數據源生成日常報表,並支持執行複雜的報表任務。 其簡單易用的安裝過程和直觀的設計界面,我們 ...
  • 背景需求: 系統需要對接到XXX官方的API,但因此官方對接以及管理都十分嚴格。而本人部門的系統中包含諸多子系統,系統間為了穩定,程式間多數固定Token+特殊驗證進行調用,且後期還要提供給其他兄弟部門系統共同調用。 原則上:每套系統都必須單獨接入到官方,但官方的接入複雜,還要官方指定機構認證的證書 ...
  • 本文介紹下電腦設備關機的情況下如何通過網路喚醒設備,之前電源S狀態 電腦Power電源狀態- 唐宋元明清2188 - 博客園 (cnblogs.com) 有介紹過遠程喚醒設備,後面這倆天瞭解多了點所以單獨加個隨筆 設備關機的情況下,使用網路喚醒的前提條件: 1. 被喚醒設備需要支持這WakeOnL ...
  • 前言 大家好,推薦一個.NET 8.0 為核心,結合前端 Vue 框架,實現了前後端完全分離的設計理念。它不僅提供了強大的基礎功能支持,如許可權管理、代碼生成器等,還通過採用主流技術和最佳實踐,顯著降低了開發難度,加快了項目交付速度。 如果你需要一個高效的開發解決方案,本框架能幫助大家輕鬆應對挑戰,實 ...