小生博客:http://xsboke.blog.51cto.com
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供茂名網(wǎng)站建設(shè)、茂名做網(wǎng)站、茂名網(wǎng)站設(shè)計(jì)、茂名網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、茂名企業(yè)網(wǎng)站模板建站服務(wù),10年茂名做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
-------謝謝您的參考,如有疑問,歡迎交流
一、 MySQLdump備份結(jié)合binlog日志恢復(fù)
使用mysqldump進(jìn)行全庫備份,并使用binlog日志備份,還原時(shí),可以使用binlog日志恢復(fù)到備份前的任意位置或時(shí)間
1. Binlog簡介
主要用于主從復(fù)制和恢復(fù)數(shù)據(jù)庫,使用mysqlbinlog命令查看binlog二進(jìn)制日志文件
下面我們通過一個(gè)實(shí)例,演示,binlog是怎么恢復(fù)到某個(gè)時(shí)間點(diǎn)的
重啟mysql服務(wù)使配置生效
驗(yàn)證binlog是否開啟成功
創(chuàng)建測試使用的數(shù)據(jù)庫和表并插入數(shù)據(jù)
為了方便實(shí)驗(yàn),我們將有誤操作的記錄,放到一個(gè)新的binlog日志文件中
現(xiàn)在發(fā)現(xiàn)刪除zhangsan是誤操作,現(xiàn)在需要將zhangsan恢復(fù)
,去查看binlog日志文件,根據(jù)位置實(shí)現(xiàn)將表還原到?jīng)]有刪除zhangsan時(shí),然后跳過刪除zhangsan的位置,恢復(fù)tom
可以做一個(gè)分析圖,用來分析出,恢復(fù)時(shí)指定的區(qū)號(hào)
從此圖可以分析出,mysql-bin.00001文件全部恢復(fù)即可,
Mysql-bin.00002的219-416區(qū)是不需要恢復(fù)的
下面開始模擬
首先根據(jù)需求導(dǎo)出部分binlog日志
模擬刪除數(shù)據(jù)庫
通過binlog日志恢復(fù)
驗(yàn)證
2. Mysqldump簡介
mysqldump是mysql用于備份和數(shù)據(jù)轉(zhuǎn)移的一個(gè)工具;
將sql語句封裝到文件,文件包含所有重建你的數(shù)據(jù)庫所需要的 SQL命令如CREATE DATABASE,CREATE TABLE,INSERT等等,可以用來實(shí)現(xiàn)輕量級(jí)的快速遷移或恢復(fù)數(shù)據(jù)庫
mysqldump 是將數(shù)據(jù)表導(dǎo)成 SQL 腳本文件,可以在不同的 MySQL 版本之間使用
mysqldump用于數(shù)據(jù)量很小的備份(大概幾個(gè)G),當(dāng)數(shù)據(jù)量大的時(shí)候不建議使用
導(dǎo)出對(duì)象:單個(gè)表、多個(gè)表、單個(gè)數(shù)據(jù)庫、多個(gè)數(shù)據(jù)庫、所有數(shù)據(jù)庫
1) 示例
導(dǎo)出指定數(shù)據(jù)庫或單個(gè)表
導(dǎo)出多個(gè)數(shù)據(jù)庫
導(dǎo)出所有
完整備份數(shù)據(jù)庫并重新開啟一個(gè)新binlog
導(dǎo)入
2)Mysqldump備份方案
周日凌晨1點(diǎn)全庫備份;
周一到周六凌晨每隔4個(gè)小時(shí)增量備份一次;
設(shè)置crontab任務(wù),每天執(zhí)行備份腳本;
首先設(shè)置cronta任務(wù)
編輯mysqlfullbackup腳本
編輯mysqldailybackup.sh腳本內(nèi)容
二、 Xtrabackup備份工具
1. Xtrabackup簡介
Xtrabackup屬于物理備份,支持物理熱備,開源,性能比ibbackup強(qiáng)
Xtrabackup支持增量備份、完整備份、差異備份,與binlog日志組合
Xtrabackup提供兩個(gè)命令行工具:
Xtrabackup:可以備份innodb和xtraDB存儲(chǔ)引擎的表
Innobackupex:支持備份innodb和myisam表的存儲(chǔ)引擎,使用perl語言編寫,執(zhí)行過程中會(huì)執(zhí)行一個(gè)讀鎖
2. 注意事項(xiàng)
因?yàn)閤trabackup屬于物理熱備,所以在備份的時(shí)候可能出現(xiàn)已經(jīng)提交但是沒有將數(shù)據(jù)寫入數(shù)據(jù)文件或沒有提交的事務(wù),所以在恢復(fù)時(shí)需要解決這個(gè)問題,使用—applog-log參數(shù)可以將已經(jīng)備份的數(shù)據(jù)中已提交的數(shù)據(jù)寫入數(shù)據(jù)文件,未提交的數(shù)據(jù)全部回滾,以保證數(shù)據(jù)的唯一性
數(shù)據(jù)恢復(fù)時(shí)需要?jiǎng)h除data下的所有文件
還原后,需要設(shè)置恢復(fù)文件的屬主屬組,mysql才能正常運(yùn)行
3. Xtrabakup的優(yōu)點(diǎn)
備份速度快,可以用于較大的數(shù)據(jù)庫,彌補(bǔ)mysqldump的部分不足
支持熱備份,備份過程不打斷事務(wù)的執(zhí)行
支持壓縮備份節(jié)約磁盤空間和流量
自動(dòng)實(shí)現(xiàn)備份檢驗(yàn)
還原速度快
4. Xtrabackup安裝
首先下載xtrabackup并且進(jìn)行安裝
Wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/tarball/percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz
安裝相關(guān)插件
安裝percona-toolkit
Wget https://www.percona.com/downloads/percona-toolkit/2.2.19/RPM/percona-toolkit-2.2.19-1.noarch.rpm
5. Xtrabackup+binkog
Xtrabackup+binlog可以實(shí)現(xiàn)時(shí)間點(diǎn)還原
1)首先創(chuàng)建備份目錄
2)注意開啟binlog日志
3)執(zhí)行完整備份(使用xtrabackup的“流”及“壓縮備份”功能)
4)查看備份
5)在生產(chǎn)環(huán)境中,還會(huì)備份binlog日志
可以使用—start-position和—stop-position以跳過誤刪除的位置,去備份binlog日志,這里不再演示
6)Xtrabackup還原
還原前需要解決數(shù)據(jù)一致性的問題
開始還原
為還原的文件設(shè)置屬主屬組
最后如果需要恢復(fù)到某個(gè)時(shí)間點(diǎn),可以利用備份的binlog日志文件恢復(fù)
6. 在生產(chǎn)環(huán)境中使用的備份用戶可能不是root,這時(shí)需要注意權(quán)限了