首頁 資料庫 mysql教程 xtrabackup備份還原MySQL資料庫

xtrabackup備份還原MySQL資料庫

Jun 23, 2017 am 11:07 AM
mysql xtrabackup 備份 資料庫 還原

 

mysqldump 備份鑑於其自身的某些特性(鎖表,本質上備份出來insert腳本或文本,不支援差異備份),不太適合對實時性要求比較高的情況
Xtrabackup可以解決mysqldump存在的上述的一些問題,生產環境應用的也會更多。
本文簡單測試一下Xtrabackup對MySQL資料庫的備份還原作業。

本著先把功能先擼起來再深入細節的原則,粗略地實現了一個備份還原,並未深入細節。

網路上有不少xtrabackup的文章,因為環境不一樣,有些需要配置xtrabackup的配置文件,
但是我在xtrabackup 2.4.7版本下測試就需要需求任何配置文件。可能是每個版本都的細節上都不一樣,因此參考資料的時候要注意版本和環境。

 

 

innobackupex 備份

xtrabackup和MySQL的版本如下

################################# ### ######完整備份######
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/var/lib/mysql/mysql.sock /data/backup
登入後複製
###

說明:
1.--defaults-file=/etc/my.cnf檔案必須在最前面
2.--user=root --password=root,--use=***與--password=*** 中間一定要有空格,

如截圖,完整備份完成

#如截圖,完整備份會建立一個日期(年月日時分秒,yyyy-MM-dd_hh-mm-ss)命名的文件
完整備份出來的內存,實際上是對所備份的數據庫的數據文件的copy加上備份時候產生的一些信息,
例如xtrabackup_checkpoints就是目前完整備份的一些個訊息,這個訊息對差異備份非常重要。

  差異備份

  差異備份之所以能夠做到差異,就是依賴於完整備份的,在完整備份的基礎上進行完整備份之後的差異的備份。
  而如何確定完整的備份之後備份到哪裡,就依賴於完整備份之後的xtrabackup_checkpoints這個檔案的。
     innobackupex  --defaults-file=/etc/my.cnf --user=root --password=root --socket=/var/lib/mysql/mysql.sock --incremental /data/backup --incremental -basedir=/data/backup/2017-06-22_13-40-29
  如截圖,差異備份完成

#  

   如果在進行差異備份的時候,指定的完整備份的文件錯誤或是未指定完整備份文件,會發現xtrabackup提示找不到xtrabackup_checkpoints這個文件。

  

 

innobackupex 還​​原

  

#  準備階段

  1
#  預備階段## ,恢復完整備份,也即完整備份應用(--apply-log)日誌
    innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only --socket=/var 。 file=/etc/my.cnf --apply-log --redo-only --socket=/var/lib/mysql/mysql.sock
--incremental /data/backup/2017-06-22_13-40 -29 --incremental-basedir=/data/backup/2017-06-22_13-41-48

    

   若有多個差異備份,分別套用差異備份到完整備份。

 

  復原階段

  1,完成差異備份的全部套用到完整備份之後,將復原後的差異備份copy到原資料目錄

    預設情況下,如果資料路徑下存在文件,則copy失敗,需要清空資料檔案路徑下的檔案。
    innobackupex --copy-back /data/backup/2017-06-22_13-40-29
    如截圖,完成copy-back

   如截圖,完成copy-back# ##  

##  2,啟動MySQL服務

  啟動mysql服務,發現啟動失敗

  

看一下錯誤日誌(啟動錯誤訊息),mysql5.7yum安裝預設的errorlog位於/var/log/mysqld.log中,且預設不會滾動,表示所有的錯誤訊息都記錄在這個檔案中。

  資料檔案還原之後,需要讀取資料檔案路徑授予可讀寫的權限

  這裡直接授權資料檔案路徑777,chmod -R 777 /var/lib/mysql  然後啟動mysql服務,可以正常啟動。

  

 

xtrabackupex才剛開始,留下一大堆問題,有時間再一個一個驗證。

  1,怎麼實作單一函式庫(表)的備份與還原,畢竟實際環境中,因為每個函式庫備份的頻率與方式(備份方案)是不一樣的?

  2,怎麼用全備+差異備份然後結合二進位日誌做基於時間點的方式還原?

  3,如何驗證備份檔案的有效性?

 

以上是xtrabackup備份還原MySQL資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
MySQL和PhpMyAdmin:核心功能和功能 MySQL和PhpMyAdmin:核心功能和功能 Apr 22, 2025 am 12:12 AM

MySQL和phpMyAdmin是強大的數據庫管理工具。 1)MySQL用於創建數據庫和表、執行DML和SQL查詢。 2)phpMyAdmin提供直觀界面進行數據庫管理、表結構管理、數據操作和用戶權限管理。

甲骨文在商業世界中的作用 甲骨文在商業世界中的作用 Apr 23, 2025 am 12:01 AM

Oracle不僅是數據庫公司,還是雲計算和ERP系統的領導者。 1.Oracle提供從數據庫到雲服務和ERP系統的全面解決方案。 2.OracleCloud挑戰AWS和Azure,提供IaaS、PaaS和SaaS服務。 3.Oracle的ERP系統如E-BusinessSuite和FusionApplications幫助企業優化運營。

在MySQL中解釋外鍵的目的。 在MySQL中解釋外鍵的目的。 Apr 25, 2025 am 12:17 AM

在MySQL中,外鍵的作用是建立表與表之間的關係,確保數據的一致性和完整性。外鍵通過引用完整性檢查和級聯操作維護數據的有效性,使用時需注意性能優化和避免常見錯誤。

比較和對比Mysql和Mariadb。 比較和對比Mysql和Mariadb。 Apr 26, 2025 am 12:08 AM

MySQL和MariaDB的主要區別在於性能、功能和許可證:1.MySQL由Oracle開發,MariaDB是其分支。 2.MariaDB在高負載環境中性能可能更好。 3.MariaDB提供了更多的存儲引擎和功能。 4.MySQL採用雙重許可證,MariaDB完全開源。選擇時應考慮現有基礎設施、性能需求、功能需求和許可證成本。

SQL與MySQL:澄清兩者之間的關係 SQL與MySQL:澄清兩者之間的關係 Apr 24, 2025 am 12:02 AM

SQL是一種用於管理關係數據庫的標準語言,而MySQL是一個使用SQL的數據庫管理系統。 SQL定義了與數據庫交互的方式,包括CRUD操作,而MySQL實現了SQL標準並提供了額外的功能,如存儲過程和触發器。

REDIS:了解其架構和目的 REDIS:了解其架構和目的 Apr 26, 2025 am 12:11 AM

Redis是一种内存数据结构存储系统,主要用作数据库、缓存和消息代理。它的核心特点包括单线程模型、I/O多路复用、持久化机制、复制与集群功能。Redis在实际应用中常用于缓存、会话存储和消息队列,通过选择合适的数据结构、使用管道和事务、以及进行监控和调优,可以显著提升其性能。

如何安全地將包含函數和正則表達式的JavaScript對象存儲到數據庫並恢復? 如何安全地將包含函數和正則表達式的JavaScript對象存儲到數據庫並恢復? Apr 19, 2025 pm 11:09 PM

安全地處理JSON中的函數和正則表達式在前端開發中,經常需要將JavaScript...

MySQL:數據庫,PHPMYADMIN:管理接口 MySQL:數據庫,PHPMYADMIN:管理接口 Apr 29, 2025 am 12:44 AM

MySQL和phpMyAdmin可以通過以下步驟進行有效管理:1.創建和刪除數據庫:在phpMyAdmin中點擊幾下即可完成。 2.管理表:可以創建表、修改結構、添加索引。 3.數據操作:支持插入、更新、刪除數據和執行SQL查詢。 4.導入導出數據:支持SQL、CSV、XML等格式。 5.優化和監控:使用OPTIMIZETABLE命令優化表,並利用查詢分析器和監控工具解決性能問題。

See all articles