1、mysqldump+binlog備份與恢復mysql
此方式是徹底備份,經過備份二進制日誌實現增量備份。具體步驟以下:sql
①建立備份的目錄數據庫
②建立備份的數據庫和表。app
③備份數據庫ide
④向表中插入數據。測試
⑤進行增量備份,備份二進制日誌。 【記得開啓二進制日誌】spa
mariadb配置文件3d
⑥進行增量備份,備份二進制日誌日誌
查看二進制日誌blog
再添加一條數據進行備份二進制日誌
將最後操做的二進制日誌進行備份
查看最後操做日誌的命令:
mysqlbinlog /var/lib/mysql/log-bin.0000002 (注:×××表明自定義二進制日誌的名)
⑨查看數據庫及數據。
恢復成功。
2、xtrabackup方式備份
對InnoDB:熱備,支持徹底備份和增量備份
對MyISAM:溫備,只支持徹底備份
特色:
(1)備份過程快速、可靠
(2)備份過程不會打斷正在執行的事務
(3)可以基於壓縮等功能節約磁盤空間和流量
(4)自動實現備份檢驗
(5)還原速度快
實現步驟:
①安裝包。
yum install xtrabackup
②進行徹底備份。
命令:innobackupex --user=root /app/backup/,並進行修改權限。
修改mariadb配置文件,修改目錄路徑。
重啓數據庫查看數據庫內容。
③實現增量備份
對test數據庫的backup表裏增長數據。
命令:innobackupex --incremental /app/backup/ --incremental-basedir=/app/backup/2017-11-16_15-49-35 【儘可能寫絕對路徑】
④實現數據恢復
數據恢復準備:
命令:innobackupex --apply-log --redo-only /app/backup/2017-11-16_16-42-25/
模擬損壞數據庫。
命令:mv /var/lib/mysql /var/lib/mysql.bak
建立mysql mkdir mysql
cd mysql/ 執行命令:innobackupex --copy-back /app/backup/2017-11-16_16-45-10
重啓數據庫進行查看
3、基於lvm快照+binlog實現備份。
①添加一塊硬盤
②進行分區,並格式化LVM格式。
③建立邏輯卷組並進行掛載。
④移動數據庫文件,修改數據庫配置文件,進行重啓。
修改權限:chown -R mysql:mysql /mnt/lvs_snap/
⑤建立測試數據庫,並鎖定數據庫。
⑥給數據庫進行快照,並解鎖全部表。
⑦掛載建立的快照,並對其內容進行打包。
mkdir /mnt/test_snap -p
mount /dev/mysql/test-snap /mnt/test_sanp/
tar cvf /app/mysqlbackup.tar /mnt/tset_snap/
umount /mnt/test_snap
rm -rf /dev/mysql/test-snap
⑨刪除數據庫,並對壓縮包解壓。
rm -rf /mnt/lvm_snap/*
tar xvf /app/mysqlbackup.tar /mnt/lvm_snap/
⑩重啓服務,驗證是否數據恢復。