經常使用的幾種mariadb備份還原手段——下篇

原本能夠一篇寫完,結果因爲不可抗因素(筆記本沒電了╮(╯▽╰)╭),致使分爲了上下兩篇。mysql

基於xtrabackup實現備份恢復

mariadb 10.2.15要使用最新的2.4.11版本(這裏版本必定要選擇好,不然會沒法備份文後會附加下載連接)
經常使用的幾種mariadb備份還原手段——下篇sql

徹底備份和恢復

1.安裝percona-xtrabackup數據庫

yum localinstall percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm -y

2.徹底備份(先導入了一個自建的hellodb做爲測試數據)app

# innobackupex (--user=root) /backup/默認就是以root用戶去備份,這裏省略了
innobackupex  /backup/

經常使用的幾種mariadb備份還原手段——下篇
3.刪除數據模擬損壞ide

rm -rf /data/mysql/*

4.整理日誌信息測試

innobackupex --apply-log /backup/2018-06-15_22-12-06/

5.中止數據庫spa

systemctl stop mariadb

6.恢復數據到目錄並修改權限3d

innobackupex --copy-back /backup/2018-06-15_22-12-06/
chown -R mysql:mysql /data/mysql/

經常使用的幾種mariadb備份還原手段——下篇
7.啓動mariadb,驗證是否成功日誌

systemctl start mariadb

經常使用的幾種mariadb備份還原手段——下篇

實現增量備份

1.要實現增量備份也是要在徹底備份的基礎上實現code

innobackupex  /backup/

原始數據庫狀態
經常使用的幾種mariadb備份還原手段——下篇
2.爲了看起來明瞭簡單這裏作3次增量備份,而且設置對應的目錄存放,生產中也能夠作相似分類,這樣可使得備份目錄看起來簡單明瞭。

mkdir /backup/inc{1,2,3}

3.模擬修改數據庫而且每次修改後都作一次增量備份

#第一次修改數據庫
mysql >create database db1;
#作增量備份
innobackupex --incremental /backup/inc1/ --incremental-basedir=/backup/2018-06-16_09-53-14
#第二次修改
mysql >create database db2;
#作增量備份
innobackupex --incremental /backup/inc2/ --incremental-basedir=/backup/inc1/2018-06-16_09-55-34
#作第三次修改(這裏導入一個有數據的數據庫)
mysql <hellodb_innodb.sql
#作增量備份
innobackupex --incremental /backup/inc3/ --incremental-basedir=/backup/inc2/2018-06-16_09-57-57

下圖是最後的數據庫信息
經常使用的幾種mariadb備份還原手段——下篇
4.模擬損壞數據

rm -rf /data/mysql/*
ls /data/mysql/

經常使用的幾種mariadb備份還原手段——下篇
5.中止數據庫並準備恢復數據

#整合增量備份
innobackupex --apply-log --redo-only /backup/2018-06-16_09-53-14/
innobackupex --apply-log --redo-only /backup/2018-06-16_09-53-14/ --incremental-dir=/backup/inc1/2018-06-16_09-55-34
innobackupex --apply-log --redo-only /backup/2018-06-16_09-53-14/ --incremental-dir=/backup/inc2/2018-06-16_09-57-57
 innobackupex --apply-log --redo-only /backup/2018-06-16_09-53-14/ --incremental-dir=/backup/inc3/2018-06-16_09-59-48
#關閉數據庫,若是是新機器數據沒啓動就不用關閉,可是新環境記得要修改數據庫配置文件與原相同
systemctl stop mariadb

#查看數據目錄是否爲空,並導入數據
ls /data/mysql/
innobackupex --copy-back /backup/2018-06-16_09-53-14/

#修改權限
chown -R mysql:mysql /data/

#啓動數據庫
  systemctl start mariadb

6.登錄數據庫並檢查,數據徹底恢復
經常使用的幾種mariadb備份還原手段——下篇

實現單表備份和恢復

清除以前是備份
1.備份單表

innobackupex --include="hellodb.stdents" /backup/
#導出建表過程,而且刪除無用的字段
mysql -e 'show create table hellodb.students' > students.sql

經常使用的幾種mariadb備份還原手段——下篇
經常使用的幾種mariadb備份還原手段——下篇
2.模擬表損壞或者被刪除

mysql -e 'drop table hellodb.students'

3.恢復數據

# 整理數據
innobackupex --apply-log --export /backup/2018-06-16_10-21-54/

#恢復表結構
mysql hellodb < students.sql

#刪除表空間
mysql -e 'alter table hellodb.students discard tablespace'

#恢復文件(在備份目錄裏)
cp students.cfg students.exp students.ibd /data/mysql/hellodb/

#修改權限
chown -R mysql:mysql /data/mysql/hellodb/*

#導入表空間
mysql -e 'alter table hellodb.students import tablespace'

4.驗證是否恢復
經常使用的幾種mariadb備份還原手段——下篇

xtrabackup下載地址
https://www.percona.com/downloads/XtraBackup/LATEST/
使用的hellodb.sql文件地址
https://pan.baidu.com/s/1uI3Br-HJ8t5-C-_bfZenPg

相關文章
相關標籤/搜索