安裝2.4.11版本的percona
下載新版的percona
看下后綴如果是.rpm.1后綴的要改名為.rpm后綴:
mv percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm.1 percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm
yum install percona-xtrabackup-24-2.4.11-1.el7.x86_64.rpm -y
用epel源的yum安裝rpm包
Xtrabackup用法
備份:innobackupex [option] BACKUP-ROOT-DIR
–user:該選項表示備份賬號
?–password:該選項表示備份的密碼
?–host:該選項表示備份數據庫的地址
?–databases:該選項接受的參數為數據名,如果要指定多個數據庫,彼此間需要以空格隔開;如:”xtra_test dba_test”,同時,在指定某數據庫時,也可以只指定其中的某張表。如:”mydatabase.mytable”。該選項對innodb引擎表無效,還是會備份所有innodb表
?–defaults-file:該選項指定從哪個文件讀取MySQL配置,必須放在命令行第一個選項位置
?–incremental:該選項表示創建一個增量備份;后面指定備份文件存放的路徑;與–incremental-basedir同時使用
?–incremental-basedir:該選項指定為前一次全備份或增量備份的目錄,與–incremental同時使用
?–incremental-dir:該選項指定要整合的增量備份的目錄
?–include=name:指定表名,格式:databasename.tablename;單表備份時會用到
Prepare:innobackupex –apply-log [option] BACKUP-DIR
?選項說明:
?–apply-log:一般情況下,在備份完成后,數據尚且不能用于恢復操作,因為備份的數據中可能會包含尚未提交的事務或已經提交但尚未同步至數據文件中的事務。因此,此時數據文件仍處理不一致狀態。此選項作用是通過回滾未提交的事務及同步已經提交的事務至數據文件使數據文件處于一致性狀態
?–use-memory:該選項表示和–apply-log選項一起使用,prepare 備份的時候,xtrabackup做crash recovery分配的內存大小,單位字節。也可(1MB,1M,1G,1GB),推薦1G
?–export:表示開啟可導出單獨的表之后再導入其他Mysql中
?–redo-only:整合數據時會用到此選項;在prepare base full backup,往其中合并(merge)增量備份時候使用則重做已提交的事務提交的事務保留;最后一個增量備份不用這個選項
還原:innobackupex –copy-back [選項] BACKUP-DIR
?innobackupex –move-back [選項] [–defaults-group=GROUP-NAME] BACKUP-DIR
.選項說明:
.–copy-back:后面跟存放整合好的備份數據文件的目錄;做數據恢復時,將整合好的備份數據文件自動拷貝到MySQL服務器的datadir
.–move-back:這個選項與–copy-back相似,唯一的區別是它不拷貝文件,而是移動文件到目的地。這個選項移除backup文件,用時候必須小心。使用場景:沒有足夠的磁盤空間同事保留數據文件和Backup副本
還原注意事項:
1.要恢復的服務器的數據庫datadir目錄必須為空。除非指定innobackupex –force-non-empty-directorires選項指定,否則–copy-backup選項不會覆蓋
2.在還原之前,必須shutdown MySQL實例,關閉服務;
3.注意還原后的文件屬性;由于文件屬性會被保留,大部分情況下需要在啟動實例之前將文件的屬主改為mysql,這些文件將屬于創建備份的用戶
chown -R mysql:mysql /data/mysql
以上需要在用戶調用innobackupex之前完成
–force-non-empty-directories:指定該參數時候,使得innobackupex –copy-back或–move-back選項轉移文件到非空目錄,已存在的文件不會被覆蓋。如果–copy-back和–move-back文件需要從備份目錄拷貝一個在datadir已經存在的文件,會報錯失敗
示例:
Xtrabackup完全備份及還原
1 在原主機上對數據庫做完全備份
在備份前要槍查二進制日志開啟及記錄方式;數據存放格式等
innobackupex –user=root –password=centos /backups
會在/backups目錄下自動生成以時間命名的備份目錄
scp -r /backups/2018-02-23_11-55-57/ 目標主機:/data/
將備份文件復制到遠程主機以確保數據的安全性
恢復數據:
1 在目標主機
innobackupex –apply-log /data/2018-02-23_11-55-57/
整合備份文件
systemctl stop mariadb
rm -rf /var/lib/mysql/*
確保要恢復數據的服務器數據庫是空的
2 恢復數據:
innobackupex –copy-back /data/2018-02-23_11-55-57/
chown -R mysql.mysql /var/lib/mysql/
systemctl start mariadb
示例:
Xtrabackup完全,增量備份及還原
?1 在原主機/backups/目錄要存在
innobackupex /backups
完備份存放到/backups/目錄下
mkdir /backups/incre{1,2}
創建增備份目錄
修改數據庫操作
開始第一次增量備份
innobackupex –incremental /backups/inc1 –incremental-basedir=/backups/2018-02-23_14-21-42
–incremental-basedir=前一次完全或增量備份的備份目錄
修改數據庫
開始第二次增量備份
innobackupex –incremental /backups/inc2 –incremental-basedir=/backups/inc1/2018-02-23_14-26-17
基于前一次增量備份的基礎上的增量備份
scp -r /backups/* 192.168.27.17:/data/
把備份文件復制到遠程主機
2 在目標主機
不啟動mariadb
rm -rf /var/lib/mysql/*
確保原數據庫是清空狀態
innobackupex –apply-log –redo-only /data/2018-02-23_14-21-42/
只將完全備份已經提交的事務redo而沒提交的事務保存并放到/data/2018-02-23_14-21-42/目錄下
innobackupex –apply-log –redo-only /data/2018-02-23_14-21-42/ –incremental-dir=/data/inc1/2018-02-23_14-26-17
將第一次增量備份整合到完全備份的 /data/2018-02-23_14-21-42/目錄里面
innobackupex –apply-log –redo-only /data/2018-02-23_14-21-42/ –incremental-dir=/data/inc2/2018-02-23_14-28-29/
將第二次增量備份文件整合到完全備份的/data/2018-02-23_14-21-42/目錄里面
ls /var/lib/mysql/
確保要恢復的數據服務器目錄是清空狀態
innobackupex –copy-back /data/2018-02-23_14-21-42/
恢復數據
chown -R mysql.mysql /var/lib/mysql/
修改屬組所有都屬性
systemctl start mariadb
啟動服務
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/100970