xtrabackup備份mysql
mysqldump基於邏輯備份,相當於將sql語句重新執行。xtrabackup相當於文件物理備份。
安裝依賴
wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/libev-4.15-1.el6.rf.x86_64.rpm
rpm -ivh libev-4.15-1.el6.rf.x86_64.rpm
安裝xtrabackup
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum install percona-xtrabackup
全部備份可選參數--databases=xtra_test --host=192.168.200.51 --password=123456#
innobackupex --defaults-file=/etc/my.cnf --user=root /backup
生成全備文件/backup/2018-01-23_21-16-32
模擬寫數據
insert into travelrecord(id,user_id,traveldate,fee,days) values(50004023,‘test‘,20160102,100,10);
基於全備的增量備份
innobackupex --defaults-file=/etc/my.cnf --user=root --incremental --incremental-basedir=/backup/2018-01-23_21-16-32 /backup/zengliang
生成文件/backup/zengliang/2018-01-23_21-25-20
檢查完備的數據一致性
innobackupex --apply-log --redo-only /backup/2018-01-23_21-16-32
將增量1應用到完全備份(最後一次沒有--fedo-only)
innobackupex --apply-log /backup/2018-01-23_21-16-32 --incremental-dir=/backup/zengliang/2018-01-23_21-25-20
還原數據
service mysqld stop
mv /var/lib/mysql /var/lib/mysqlold
mkdir /var/lib/mysql
innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /backup/2018-01-23_21-16-32
chown -R mysql:mysql /var/lib/mysql
service mysqld start
可以看到數據都在,模擬寫入的數據也在。
xtrabackup_binlog_info:記錄當前最新的LOG Position
xtrabackup_binlog_pos_innodb:innodb log postion
xtrabackup_checkpoints: 存放備份的起始位置beginlsn和結束位置endlsn,增量備份需要這個lsn[增量備份可以在這裏面看from和to兩個值的變化
xtrabackup_info:備份的一些具體信息日誌
再測試做一次完全備份的恢復
模擬寫數據
insert into travelrecord(id,user_id,traveldate,fee,days) values(50004063,‘gogogo‘,20160102,100,10);
innobackupex --defaults-file=/etc/my.cnf --user=root /backup
生成文件/backup/2018-01-23_21-44-19/
檢查完備的數據一致性
innobackupex --apply-log --redo-only /backup/2018-01-23_21-44-19/
還原數據
service mysqld stop
mv /var/lib/mysql /var/lib/mysqlold1
mkdir /var/lib/mysql
innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /backup/2018-01-23_21-44-19/
chown -R mysql:mysql /var/lib/mysql
service mysqld start
可以看到數據gogogo都在,模擬寫入的數據也在。
xtrabackup備份mysql