圖形化探索:快速改造單實例為雙主、MGR、讀寫分離等架

来源:https://www.cnblogs.com/greatsql/archive/2023/11/15/17833280.html
-Advertisement-
Play Games

單機GreatSQL/MySQL調整架構為多副本複製的好處有哪些?為什麼要調整? 性能優化:如果單個GreatSQL伺服器的處理能力達到瓶頸,可能需要通過主從複製、雙主複製或MGR,以及其他高可用方案等來提高整體性能。通過將讀請求分發到多個伺服器,可以大大提高併發處理能力。 高可用性:如果您的應用程 ...


單機GreatSQL/MySQL調整架構為多副本複製的好處有哪些?為什麼要調整?

file

  1. 性能優化:如果單個GreatSQL伺服器的處理能力達到瓶頸,可能需要通過主從複製、雙主複製或MGR,以及其他高可用方案等來提高整體性能。通過將讀請求分發到多個伺服器,可以大大提高併發處理能力。
  2. 高可用性:如果您的應用程式不能接受服務中斷,那麼多副本可以幫助您實現高可用性的故障切換。當主伺服器發生故障時,可以快速切換到從伺服器或另一個主伺服器,以保持服務的連續性。
  3. 讀寫分離和業務數據測試:單機GreatSQL在做一致性備份時,往往對性能和負載產生壓力,主從、多主、或MGR可以選擇從節點來備份。數據恢復或者測試,可以優先在從伺服器進行數據回放測試等。

請查看手動部署介紹: GreatSQL從單機到MGR擴展紀實 https://mp.weixin.qq.com/s/ewIx_avO5R6GDGmyDmPMLg

適用場景:

1、單機GreatSQL/MySQL改造為主從或者雙主複製

2、單機GreatSQL/MySQL改造為MGR組複製

3、GreatSQL/MySQL主從改造為MGR組複製

4、基於備份做GreatSQL/MySQL資料庫升級測試

具體步驟

通過GreatADM可視化的方法,屏蔽手動命令操作的複雜度,快速完成單實例的向多主、多副本的架構分鐘級的調整升級。

場景支持:支持納管的實例的架構改造,或者資料庫軟體版本的升級功能。

思路如下:通過sysbench壓入單機數據,通過備份單機數據,恢復到新的架構中,使用sysbench直接連接新的架構做壓測,查看是否可正常運行驗證數據可用性。(本次演示採用GreatSQL單機企業版本操作)

步驟如下:

1、使用GreatADM針對單實例做全量備份

2、選擇備份的數據和確定要改造或升級的版本

3、選擇不同架構和軟體包構建新架構(本次演示單機向雙主、MGR的變更)

4、恢複數據完成新架構改造

5、sysbench壓測查數據可用性

環境信息如下:

資料庫 主機IP 實例埠 目標架構 主機IP 實例埠
單機 172.17.134.68 3307 主從、雙主、雙主多從 172.17.134.60/61 3307
單機 172.17.134.68 3307 MGR(1台主機3實例) 172.17.134.61 3307/3308/3309
圖形化工具 GreatADM-6.0版本
物理備份工具 xtrabackup-8.0.32

添加2台主機172.17.134.60/61到GreatADM中,如下

file

file

準備工作:sysbench創建壓測數據到單實例

file

登錄資料庫,創建sysbench測試數據50張表,每表1w行數據。

$ sysbench --test=oltp_read_write.lua --mysql-user=greatdb --mysql-password='xxxxx' --mysql-host=172.17.134.68 --mysql-port=3307 --mysql-db=sysbench --threads=10  --report-interval=1 --tables=50  --table-size=10000 --time=60  prepare

通過SQL視窗查看對應的表信息

file

完成測試數據的創建,接下來進行單節點的備份操作。

一、做資料庫全量備份

使用GreatADM針對單實例做全量備份,選擇【備份管理】執行單節點的全量備份,在備份之前首先需要配置備份方式。因為GreatADM支持HDFS、FTP、COS對象存儲、LOCAL本地、遠端備份伺服器5種類的備份集存儲方式。

file

這裡我們選擇【LOCAL本地存儲】即將數據直接備份放置在資料庫所在的主機,指定本地路徑下。【本地路徑】是最終備份集存儲的路徑,我們命名為:/backup,需要在資料庫的伺服器上創建目錄,並授權。

file

創建備份集存儲的目錄,使用root創建,並調整目錄許可權,保證和添加服務時創建的【管理用戶】,同一個屬組,確保GreatADM以greatsql普通用戶備份時,有許可權寫入/backup。

$ mkdir /backup ;  
$ chown greatsql.greatsql  /backup;

接下來,執行【手動備份】並配置備份項。

file

GreatADM支持多種資料庫架構的備份,且可以按照用戶需求,選擇備份不同項目的資料庫,以及按需選擇資料庫主節點、或從節點備份。

file

在配置項中,同時支持【壓縮備份】,【加密備份】,【並行備份】,以及備份超時平臺層的【超時提醒】消息等

file

執行備份,日誌輸出如下 ,整個備份分為4個階段即

【收集信息】--收集資料庫的版本和數據文件路徑等信息

【備份預檢查】--檢查備份工具和資料庫版本是否匹配,備份配置項是否有效

【執行備份】--執行執行一致性的物理熱備

【上傳到存儲】--如果配置遠程網路存儲,則進行備份集的網路傳輸。

file

完成備份,如下生成的備份記錄

file

完成備份之後,可點擊【備份詳情】查看本次備份的配置信息等。

操作系統路徑下對應的備份集,與資料庫實例同在一臺伺服器的不同路徑下。

file

二、恢復為雙主複製架構

基於備份做架構變更,基於全量物理備份做數據的恢復,和新架構的變更創建。基於全量備份恢復導172.17.134.60、61兩台主機,來改造成新的主從,或者雙主架構。步驟如下:

首先選中【序號1】剛剛完成的【單機601全量備份】,點擊【備份恢復】選項

file

彈出要恢復為哪種架構,這裡目前可選的有4種,同時支持2種恢復架構的類型,即【恢復物理機資料庫】和【資源池方式】也就是資源隔離方式。 這裡,我們選擇物理機恢復出雙主架構。點擊【主備副本】選擇【恢復物理機資料庫】

file

接下來配置恢復出的新架構,屬於哪個【項目】,所選擇的【資料庫軟體包版本】,以及備份工具包,GreatSQL相容開源的xtrabackup,這裡我們就預設選擇GreatADM已經上傳的xtrabackup-8.0.32版本。主機選擇172.17.134.60、172.17.134.61兩台主機。鑒於之前部分傳統的企業客戶,有多個副本的需求場景下,GreatADM提供了雙主下,再次擴展副本的能力。如果在雙主複製的架構下,仍想擴展1個從副本,則可以在添加節點之後,選擇【添加從節點】選項,擴展副本數

file

預設允許用戶混合主從副本安裝在同一臺物理主機上,用埠做區分如下示意圖,則可以在雙主下各創一個從副本。形成雙主雙從,這裡僅作演示。

file

實際我們仍按雙主架構來進行架構恢復。進入新架構的部署預檢查頁面,如圖,主要是涉及操作系統配置標準化、規範化、依賴包等檢查。

file

通過之後進行下一步,完成新架構的初始化,併在初始化之後,做數據的恢復。

file

完成架構調整的雙主結構拓撲如下

file

實例屬性信息如下

file

同時保留了原始節點,此時可將原始的單機移除,到此完成架構的改造和變更。數據中的用戶名、密碼等和原始單機資料庫完全相同一致。可直接點點擊【登錄】驗證。

file

完成單機改造為新的雙主複製結構。

三、恢復為MGR架構

同樣,選擇單機601的備份集, 刪除之前172.17.134.60、61的資料庫,釋放主機資源。之前鑒於項目中有用戶主機資源不足,考慮主機採用多實例混合部署在1臺上的情況,我們順便測下GreatADM是否支持重覆利用主機,混合部署多個實例。

file

選擇【備份恢復】,恢復架構中,選擇【paxos高可用複製】,選擇【物理資料庫】

file

進入paxos配置項中,我們仍選擇【default】預設項目,對應的軟體包版本可選擇升級的新版本,在做架構改造時,同時進行資料庫的版本升級工作。此處,我們重覆使用172.17.134.61這台主機,分別使用3307、3308、3309三個埠來區分3個實例。如下:

file

預檢查之後的拓撲圖預留和埠信息如下:

file

安裝部署過程和日誌信息如下:

file

安裝之後拓撲如下:

file

完成單機向paxos高可用(組複製)的改造和數據恢復。查看當前172.17.134.61主機的運行狀態和負載,也驗證了GreatADM支持混合部署多實例到1台主機。

file

file

四、驗證數據的可用性

使用sysbench壓測新恢復的架構,對應的sysbench庫的表等可直接壓測使用,無數據異常。

$ sysbench --test=oltp_read_write.lua --mysql-user=greatsql --mysql-password='xxxxx' --mysql-host=172.17.134.61 --mysql-port=3307 --mysql-db=sysbench --threads=10  --report-interval=1 --tables=50  --table-size=10000 --time=60  run

file

五、總結

改造的意義:如果您需要存儲和處理大量數據,且讀寫負載較高,單個MySQL伺服器可能無法滿足需求,或為了滿足跨地域訪問的需求,可以將單機資料庫,改造成可跨多個數據中心採用非同步複製、或半同步、以及強同步等方式,既可以保證資料庫的多副本容災,又可提升業務的讀寫效率,規避了單點故障對業務的影響和負載。

GreatADM提供的能力和價值:且在改造升級過程中,藉助GreatADM管理平臺,圖形化改造,大大降低了架構改造的難度和效率。避免DBA手動黑屏命令方式的操作的繁冗複雜的操作命令,減少業務停機時長,同時釋放人工操作的壓力。


Enjoy GreatSQL

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

-Advertisement-
Play Games
更多相關文章
  • SciPy庫本身是針對科學計算而不是圖像處理的,只是圖像處理也包含了很多數學計算,所以Scipy也提供了一個專門的模塊ndimage用於圖像處理。 ndimage模塊提供的功能包括輸入/輸出圖像、顯示圖像、基本操作(如裁剪、翻轉、旋轉等)、圖像過濾(如去噪、銳化等)、圖像分割、分類、特征提取以及註冊 ...
  • 目錄 Welcome to YARP - 1.認識YARP並搭建反向代理服務 Welcome to YARP - 2.配置功能 2.1 - 配置文件(Configuration Files) 2.2 - 配置提供者(Configuration Providers) 2.3 - 配置過濾器(Confi ...
  • 一:背景 1. 講故事 前幾個月有位朋友找到我,說他們的的web程式沒有響應了,而且監控發現線程數特別高,記憶體也特別大,讓我幫忙看一下怎麼回事,現在回過頭來幾經波折,回味價值太濃了。 二:程式到底經歷了什麼 1. 線上程上找原因 這個程式記憶體高,線程高,無響應,尼瑪是一個複合態問題,那怎麼入手呢?按 ...
  • 前言: 之前對於項目上播放大解析度視頻(特別是大於4k解析度的)常常會感覺相當的頭疼,最開始使用的是Unity自帶的VideoPlayer,發現效果並不理想,更換為AVPro後發現播放是流暢了 但不能操作視頻快進,只要一快進就會出現卡頓,最後偶然間發現了一款用於播放Hap格式視頻的插件才最終解決了這 ...
  • 1.HighLightingSystem 用於3D物體高亮顯示 在項目中的使用:導入插件後在需要高亮顯示的3d物體上附加Highlighter組件,在需要顯示高亮效果的攝像機上附加Highlighting Renderer組件。在代碼中調整Highlighter屬性即可控制物體高亮效果的開關、閃爍。 ...
  • 這裡簡單總結一下mysql shell訪問資料庫時報MySQL Error 1045 (28000): Access denied for user 'root'@'::1' (using password: YES)的原因以及如何解決這個問題 這裡測試的環境為MySQL 8.0.35,我們先來看看 ...
  • 最近雙十一開門紅期間組內出現了一次因 Mysql 死鎖導致的線上問題,當時從監控可以看到資料庫活躍連接數飆升,導致應用層資料庫連接池被打滿,後續所有請求都因獲取不到連接而失敗 ...
  • 在本文中,我們將介紹GaussDB資料庫中的用戶定義函數重載的概念、用法以及示例。用戶定義函數是 SQL 中常用的“編程工具”,允許我們自定義函數來處理和操作數據。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...