xtrabackup備份還原MySQL資料庫
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
預設情況下,如果資料路徑下存在文件,則copy失敗,需要清空資料檔案路徑下的檔案。
innobackupex --copy-back /data/backup/2017-06-22_13-40-29
如截圖,完成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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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

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