【MySQL備份】Percona XtraBackup篇

目錄

1.關于Percona XtraBackup

2.?Percona XtraBackup有哪些特點?

3.安裝Percona XtraBackup

3.1.環境信息

3.2.安裝步驟?

4.實戰演練

4.1.全量備份與恢復

?4.2.總結?


1.關于Percona XtraBackup

Percona XtraBackup是世界上唯一的開源、免費的MySQL熱備份 為InnoDB和XtraDB執行非阻塞備份的軟件 數據庫。使用Percona XtraBackup,您可以獲得以下好處:

  • 快速可靠地完成備份

  • 備份期間不中斷的事務處理

  • 節省磁盤空間和網絡帶寬

  • 自動備份驗證

  • 更快的恢復時間導致更高的延遲

2.?Percona XtraBackup有哪些特點?

以下是Percona XtraBackup功能的簡短列表。

  • 創建熱InnoDB備份而無需暫停數據庫

  • 對MySQL進行增量備份

  • 將壓縮的MySQL備份流式傳輸到另一臺服務器

  • 在線在MySQL服務器之間移動表

  • 輕松創建新的MySQL復制副本

  • 備份MySQL而不增加服務器負載

  • 備份鎖是Percona Server 5.6+中可用的FLUSH TABLES WITH READ LOCK的輕量級替代方案。Percona XtraBackup使用它們自動復制非InnoDB數據,以避免阻塞修改InnoDB表的DML查詢。

  • Percona XtraBackup根據每秒IO操作數執行限制。

  • Percona XtraBackup跳過輔助索引頁,并在準備緊湊備份時重新創建它們。

  • Percona XtraBackup甚至可以從完整備份中導出單個表,無論InnoDB版本如何。

  • 使用Percona XtraBackup導出的表可以導入Percona Server 5.1、5.5或5.6+或MySQL 5.6+。

3.安裝Percona XtraBackup

3.1.環境信息

主機IP操作系統Mysql版本XtraBackup版本
172.17.0.2CentOS Stream release 98.0.378.0.35

3.2.安裝步驟?

Percona XtraBackup的安裝方法有三中YUM倉庫安裝,RPM包安裝,源碼編譯安裝,下面介紹到的是YUM倉庫安裝

  1. root用戶身份或使用sudo運行以下命令來安裝Percona yum倉庫:

    sudo yum install \
    https://repo.percona.com/yum/percona-release-latest.\
    noarch.rpm
  2. 啟用存儲庫:

    sudo percona-release enable-only tools release

    如果Percona XtraBackup預期與 上游MySQL服務器,只需要開啟`tools倉庫:

    sudo percona-release enable-only tools
  3. 通過運行以下命令安裝Percona XtraBackup:

    sudo yum install percona-xtrabackup-80

    警告:

    在CentOS 6上安裝Percona XtraBackup之前,請確保安裝了libev軟件包。對于此操作系統,可以從EPEL存儲庫中獲得libev包。

  4. 要對使用LZ4ZSTD壓縮算法進行的備份進行重新編譯,請安裝相應的軟件包:

    sudo yum install zstd

    4.實戰演練

    創建備份目錄

    mkdir -p /data/backup

    xtrabackup配置都是通過選項完成的,也可以通過/etc/my.cnf進行配置,如下所示:

    [xtrabackup]
    host=localhost
    port=3306
    user=root
    password=123456
    socket=/var/lib/mysql/mysql.sock
    target_dir=/data/backup
    

    授予root用戶BACKUP_ADMIN權限

     grant BACKUP_ADMIN on *.* to 'root'@'%'
    

    LOCK INSTANCE FOR BACKUP 是MySQL 8.0引入的一種新的備份相關SQL語句,主要用于在進行數據庫備份時,以一種更為細粒度和高效的方式控制對數據庫實例的訪問,以保證備份的一致性。這個命令的工作原理及特點如下:

    目的:在執行備份操作時,此命令用于獲取一個實例級別的鎖,該鎖允許在備份過程中繼續執行DML(數據操作語言,如INSERT、UPDATE、DELETE)操作,同時防止那些可能導致數據快照不一致的DDL(數據定義語言,如CREATE、ALTER、DROP)操作和某些管理操作。這樣可以在不影響數據庫服務的情況下進行備份,特別適用于需要最小化服務中斷的在線備份場景。

    權限需求:執行LOCK INSTANCE FOR BACKUP語句需要用戶具備BACKUP_ADMIN權限。這是一個專門為了備份相關的高級操作而設計的權限級別。

    兼容性:此特性是在MySQL 8.0及以上版本中引入的,早于8.0的MySQL版本并不支持這一語句,因此在使用舊版本時,可能需要依賴其他機制(如FLUSH TABLES WITH READ LOCK)來確保備份的一致性。

    解鎖:執行備份后,需要使用UNLOCK INSTANCE語句來釋放之前由LOCK INSTANCE FOR BACKUP獲得的鎖,從而恢復正常操作。

    與傳統備份命令的對比:相比于傳統的備份方法,如使用FLUSH TABLES WITH READ LOCKLOCK INSTANCE FOR BACKUP提供了更小的性能影響,因為它不會完全阻止寫操作,只是限制了可能引起數據不一致的活動,更適合于高可用性和高性能要求的生產環境。

    4.1.全量備份與恢復

    登陸數據庫查看現有的的數據,可以看到現在有一個tes1的庫

進行全量備份,最后看到?completed OK!代表成功

xtrabackup --backup --target-dir=/data/backup --datadir=/var/lib/mysql --user=root --password=123456 --host=172.17.0.2  --port=3306

在/data/backup目錄下可以看到備份的數據

?登陸數據庫刪除tes1庫

停止MySQL服務進行恢復數據

systemctl stop mysqld
rsync -avrP /data/backup/ /var/lib/mysql/

恢復數據時,一定要記得更改數據目錄下的文件擁有者以及所屬組權限,否則mysql無法啟動

chown -R mysql:mysql /var/lib/mysql

重啟數據庫查看數據是否恢復,可以看到之前被刪除的tes1數據庫已經成功恢復

?4.2.總結?

需要注意的是,在執行恢復之前需要關閉MySQL服務器。您不能恢復到正在運行的mysqld實例的數據目錄(導入部分備份時除外)。由于文件的屬性將被保留,在大多數情況下,您需要mysql在啟動數據庫服務器之前將文件的屬主和屬組更改為mysql.mysql。

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

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

相關文章

品牌推廣方案怎么寫?策劃書模板與實戰技巧分享

品牌想要快速得到市場的認可,一個精心策劃的品牌推廣方案是脫穎而出的關鍵。 作為一名手工酸奶品牌創始人,目前全國也復制了100多家門店,這篇文章,我和大家分享下,如何做一個清晰的結構框架、策劃書模板以及實戰技巧&…

【論文閱讀】-- TimeNotes:時間序列數據的有效圖表可視化和交互技術研究

TimeNotes: A Study on Effective Chart Visualization and Interaction Techniques for Time-Series Data 摘要1 介紹和動機2 文獻2.1 時間序列數據探索2.1.1 數據聚合2.1.2 基于透鏡2.1.3 基于布局 3 任務和設計3.1 數據3.2 領域表征3.3 探索、分析和呈現 4 TimeNotes4.1 布局…

Kaggle競賽——房價預測

目錄 1. 特征分析1.1 數據集導入1.2 統計缺失值1.3 可視化缺失值1.4 缺失值相關性分析1.5 訓練集和測試集缺失數據對比1.6 統計特征的數據類型1.7 數值型特征分布直方圖1.8 數值型特征與房價的線性關系1.9 非數值型特征的分布直方圖1.10 非數值型特征箱線圖1.11 數值型特征填充…

JAVA:常用的算法指南

請關注微信公眾號:拾荒的小海螺 博客地址:http://lsk-ww.cn/ 1、簡述 在軟件開發過程中,算法扮演著關鍵的角色。它們用于解決各種問題,從數據處理到搜索、排序等。本文將介紹幾種常見的算法及其 Java 實現,包括排序算…

ffmpeg推流時Unknown encoder ‘libx264‘

如果環境中有conda,最簡單的辦法就是 conda uninstall ffmpeg conda install ffmpeg 或者 sudo apt-get install -y libgmp3-dev pkg-config gnutls-bin libaom-dev libass-dev libbluray-dev libfdk-aac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-…

基于java+springboot+vue實現的農產品直賣平臺(文末源碼+Lw)266

摘 要 計算機網絡發展到現在已經好幾十年了,在理論上面已經有了很豐富的基礎,并且在現實生活中也到處都在使用,可以說,經過幾十年的發展,互聯網技術已經把地域信息的隔閡給消除了,讓整個世界都可以即時通…

Python從0到100(三十三):xpath和lxml類庫

1. 為什么要學習xpath和lxml lxml是一款高性能的 Python HTML/XML 解析器,我們可以利用XPath,來快速的定位特定元素以及獲取節點信息 2. 什么是xpath XPath,全稱為XML Path Language,是一種用于在XML文檔中進行導航和數據提取的…

Python基礎之多進程

文章目錄 1 多進程1.1 簡介1.2 Linux下多進程1.3 multiprocessing1.4 Pool1.5 進程間通信1.6 分布式進程 1 多進程 1.1 簡介 要讓Python程序實現多進程(multiprocessing),我們先了解操作系統的相關知識。 Unix/Linux操作系統提供了一個fork…

豆包文科成績超了一本線,為什么理科不行?

卡奧斯智能交互引擎是卡奧斯基于海爾近40年工業生產經驗積累和卡奧斯7年工業互聯網平臺建設的最佳實踐,基于大語言模型和RAG技術,集合海量工業領域生態資源方優質產品和知識服務,旨在通過智能搜索、連續交互,實時生成個性化的內容…

使用Java構建可擴展的微服務架構

使用Java構建可擴展的微服務架構 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿!今天我們將探討如何使用Java構建可擴展的微服務架構,這是現代軟件開…

Java - 程序員面試筆記記錄 實現 - Part2

2.1 輸入輸出流 流可以被看作一組有序的字節集合,即數據在兩個設備間的傳輸。 字節流:以字節作為單位,讀到一個字節就返回一個字節;InputStream & OutputStream。 字符流:使用字節流讀到一個到多個字節先查詢碼…

【Invalid mapping pattern】SpringMVC路徑匹配

報錯: Description:Invalid mapping pattern detected: /**/{[path:[^.]] ^ No more pattern data allowed after {...} or ** pattern elementAction:Fix this pattern in your application or switch to the legacy parser implementation with spring.mvc.pathm…

VLC for Unity播放RTSP延遲高的解決辦法

VLC for Unity播放RTSP延遲高的解決辦法&#xff1a; 設置網絡緩存時長network-caching100 public void Open(){Log("VLCPlayerExample Open");if (mediaPlayer.Media ! null)mediaPlayer.Media.Dispose();List<string> options new List<string>();o…

Eureka在微服務架構中的服務降級策略解析

引言 微服務架構因其靈活性和可擴展性而受到現代軟件開發的青睞。然而&#xff0c;隨著服務數量的增加&#xff0c;系統的復雜性也隨之上升&#xff0c;服務間的依賴關系可能導致單點故障&#xff0c;影響整個系統的穩定性。服務降級是一種常見的應對策略&#xff0c;用于在服…

基于RabbitMQ的異步消息傳遞:發送與消費

引言 RabbitMQ是一個流行的開源消息代理&#xff0c;用于在分布式系統中實現異步消息傳遞。它基于Erlang語言編寫&#xff0c;具有高可用性和可伸縮性。在本文中&#xff0c;我們將探討如何在Python中使用RabbitMQ進行消息發送和消費。 安裝RabbitMQ 在 Ubuntu 上安裝 Rabbi…

提升寫作效率:探索AI在現代辦公自動化中的應用

工欲善其事&#xff0c;必先利其器。 隨著AI技術與各個行業或細分場景的深度融合&#xff0c;日常工作可使用的AI工具呈現出井噴式發展的趨勢&#xff0c;AI工具的類別也從最初的AI文本生成、AI繪畫工具&#xff0c;逐漸擴展到AI思維導圖工具、AI流程圖工具、AI生成PPT工具、AI…

精通SQL Server端口管理:添加與刪除監聽端口的指南

引言 SQL Server的端口管理是數據庫管理員(DBA)必須掌握的關鍵技能之一。端口配置不僅關系到數據庫的網絡通信能力&#xff0c;還直接影響到數據庫的安全性和性能。本文將詳細介紹如何在SQL Server中添加和刪除監聽端口&#xff0c;以及相關的配置策略和最佳實踐。 SQL Serve…

ubuntu 系統中 使用docker 制作 Windows 系統,從此告別 vmware虛擬機

我的系統是 ubuntu 24 前期準備工作&#xff1a; 安裝dockerdocker pull 或者 手動制作鏡像 docker build 的話 必須要 科學上網&#xff0c; 好像阿里鏡像都下不下來。需要 知道 docker 和docker compose 命令的使用方式 我是給docker 掛了 http代理 如果你能pull下來鏡像 …

springboot健身房管理系統-計算機畢業設計源碼031807

摘 要 大數據時代下&#xff0c;數據呈爆炸式地增長。為了迎合信息化時代的潮流和信息化安全的要求&#xff0c;利用互聯網服務于其他行業&#xff0c;促進生產&#xff0c;已經是成為一種勢不可擋的趨勢。在健身房管理的要求下&#xff0c;開發一款整體式結構的健身房管理系統…

Windows環境使用SpringBoot整合Minio平替OSS

目錄 配置Minio環境 一、下載minio.exe mc.exe 二、設置用戶名和密碼 用管理員模式打開cmd 三、啟動Minio服務器 四、訪問WebUI給的地址 SpringBoot整合Minio 一、配置依賴&#xff0c;application.yml 二、代碼部分 FileVO MinioConfig MinioUploadService MinioController 三…