MySQL:常用備份方式(基于5.7)

   小生博客:http://xsboke.blog.51cto.com

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供茂名網(wǎng)站建設、茂名做網(wǎng)站、茂名網(wǎng)站設計、茂名網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、茂名企業(yè)網(wǎng)站模板建站服務,10年茂名做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

   

  

 

                             -------謝謝您的參考,如有疑問,歡迎交流


一、 MySQLdump備份結合binlog日志恢復

使用mysqldump進行全庫備份,并使用binlog日志備份,還原時,可以使用binlog日志恢復到備份前的任意位置或時間

  1. Binlog簡介

  • 主要用于主從復制和恢復數(shù)據(jù)庫,使用mysqlbinlog命令查看binlog二進制日志文件

  • 下面我們通過一個實例,演示,binlog是怎么恢復到某個時間點的

MySQL:常用備份方式(基于5.7)

重啟mysql服務使配置生效

MySQL:常用備份方式(基于5.7)

驗證binlog是否開啟成功

MySQL:常用備份方式(基于5.7)

創(chuàng)建測試使用的數(shù)據(jù)庫和表并插入數(shù)據(jù)

MySQL:常用備份方式(基于5.7)

為了方便實驗,我們將有誤操作的記錄,放到一個新的binlog日志文件中

MySQL:常用備份方式(基于5.7)

現(xiàn)在發(fā)現(xiàn)刪除zhangsan是誤操作,現(xiàn)在需要將zhangsan恢復

,去查看binlog日志文件,根據(jù)位置實現(xiàn)將表還原到?jīng)]有刪除zhangsan時,然后跳過刪除zhangsan的位置,恢復tom

MySQL:常用備份方式(基于5.7)

可以做一個分析圖,用來分析出,恢復時指定的區(qū)號

MySQL:常用備份方式(基于5.7)

  • 從此圖可以分析出,mysql-bin.00001文件全部恢復即可,

  • Mysql-bin.00002的219-416區(qū)是不需要恢復的

下面開始模擬

首先根據(jù)需求導出部分binlog日志

MySQL:常用備份方式(基于5.7)

模擬刪除數(shù)據(jù)庫

MySQL:常用備份方式(基于5.7)

通過binlog日志恢復

MySQL:常用備份方式(基于5.7)

驗證

MySQL:常用備份方式(基于5.7)

  2. Mysqldump簡介

  • mysqldump是mysql用于備份和數(shù)據(jù)轉移的一個工具;

  • 將sql語句封裝到文件,文件包含所有重建你的數(shù)據(jù)庫所需要的 SQL命令如CREATE DATABASE,CREATE TABLE,INSERT等等,可以用來實現(xiàn)輕量級的快速遷移或恢復數(shù)據(jù)庫

  • mysqldump 是將數(shù)據(jù)表導成 SQL 腳本文件,可以在不同的 MySQL 版本之間使用

  • mysqldump用于數(shù)據(jù)量很小的備份(大概幾個G),當數(shù)據(jù)量大的時候不建議使用

  • 導出對象:單個表、多個表、單個數(shù)據(jù)庫、多個數(shù)據(jù)庫、所有數(shù)據(jù)庫

   1) 示例

     導出指定數(shù)據(jù)庫或單個表

     MySQL:常用備份方式(基于5.7)

     MySQL:常用備份方式(基于5.7)

     導出多個數(shù)據(jù)庫

     MySQL:常用備份方式(基于5.7)

     導出所有

     MySQL:常用備份方式(基于5.7)

     完整備份數(shù)據(jù)庫并重新開啟一個新binlog

     MySQL:常用備份方式(基于5.7)

     導入

     MySQL:常用備份方式(基于5.7)

   2)Mysqldump備份方案

    周日凌晨1點全庫備份;

     周一到周六凌晨每隔4個小時增量備份一次;

     設置crontab任務,每天執(zhí)行備份腳本;



     首先設置cronta任務

     MySQL:常用備份方式(基于5.7)

     編輯mysqlfullbackup腳本

     MySQL:常用備份方式(基于5.7)

     編輯mysqldailybackup.sh腳本內容

     MySQL:常用備份方式(基于5.7)

二、 Xtrabackup備份工具

  1. Xtrabackup簡介

  • Xtrabackup屬于物理備份,支持物理熱備,開源,性能比ibbackup強

  • Xtrabackup支持增量備份、完整備份、差異備份,與binlog日志組合

  • Xtrabackup提供兩個命令行工具:

  • Xtrabackup:可以備份innodb和xtraDB存儲引擎的表

  • Innobackupex:支持備份innodb和myisam表的存儲引擎,使用perl語言編寫,執(zhí)行過程中會執(zhí)行一個讀鎖

  2. 注意事項

  • 因為xtrabackup屬于物理熱備,所以在備份的時候可能出現(xiàn)已經(jīng)提交但是沒有將數(shù)據(jù)寫入數(shù)據(jù)文件或沒有提交的事務,所以在恢復時需要解決這個問題,使用—applog-log參數(shù)可以將已經(jīng)備份的數(shù)據(jù)中已提交的數(shù)據(jù)寫入數(shù)據(jù)文件,未提交的數(shù)據(jù)全部回滾,以保證數(shù)據(jù)的唯一性

  • 數(shù)據(jù)恢復時需要刪除data下的所有文件

  • 還原后,需要設置恢復文件的屬主屬組,mysql才能正常運行

  3. Xtrabakup的優(yōu)點

  • 備份速度快,可以用于較大的數(shù)據(jù)庫,彌補mysqldump的部分不足

  • 支持熱備份,備份過程不打斷事務的執(zhí)行

  • 支持壓縮備份節(jié)約磁盤空間和流量

  • 自動實現(xiàn)備份檢驗

  • 還原速度快

  4. Xtrabackup安裝

首先下載xtrabackup并且進行安裝

Wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/tarball/percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz

   MySQL:常用備份方式(基于5.7)

   MySQL:常用備份方式(基于5.7)

   

   安裝相關插件

   MySQL:常用備份方式(基于5.7)

   安裝percona-toolkit

Wget https://www.percona.com/downloads/percona-toolkit/2.2.19/RPM/percona-toolkit-2.2.19-1.noarch.rpm

MySQL:常用備份方式(基于5.7)

  5. Xtrabackup+binkog

   Xtrabackup+binlog可以實現(xiàn)時間點還原

   1)首先創(chuàng)建備份目錄

     MySQL:常用備份方式(基于5.7)

   2)注意開啟binlog日志

     MySQL:常用備份方式(基于5.7)

   3)執(zhí)行完整備份(使用xtrabackup的“流”及“壓縮備份”功能)

     MySQL:常用備份方式(基于5.7)

   4)查看備份

     MySQL:常用備份方式(基于5.7)

5)在生產(chǎn)環(huán)境中,還會備份binlog日志

可以使用—start-position和—stop-position以跳過誤刪除的位置,去備份binlog日志,這里不再演示

6)Xtrabackup還原

 還原前需要解決數(shù)據(jù)一致性的問題

    MySQL:常用備份方式(基于5.7)

    開始還原

    MySQL:常用備份方式(基于5.7)

    為還原的文件設置屬主屬組

    MySQL:常用備份方式(基于5.7)

    MySQL:常用備份方式(基于5.7)

    最后如果需要恢復到某個時間點,可以利用備份的binlog日志文件恢復

  6. 在生產(chǎn)環(huán)境中使用的備份用戶可能不是root,這時需要注意權限了

   MySQL:常用備份方式(基于5.7)

新聞標題:MySQL:常用備份方式(基于5.7)
文章路徑:http://bm7419.com/article22/pcegcc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站、網(wǎng)站設計公司、外貿建站、虛擬主機云服務器、移動網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)