xtrabackup是由percona開源的免費資料庫熱備份軟體,它能對innodb資料庫和xtradb儲存引擎的資料庫進行備份,對於myisam的備份需要加表鎖,當資料庫資料大於10g時,xtrabackup備份比mysqldump優秀。
xtrabackup的執行檔案說明:
xtrabackup:專門用來備份innodb引擎的。
innobackupex:支援備份innodb和myisam,myisam備份需要flush table with read lock(鎖表)
備份原理:
備份開始時會開啟乙個後台檢測程序,實時檢測mysql redo的變化,發現一旦有新的日誌寫入,立刻將日誌記入後台日誌檔案xtrabackup_log中,之後複製innodb的資料檔案與系統表空間檔案ibdatax,複製結束後,將執行flush tables with read lock,然後複製.frm myi myd等檔案,最後執行unlock tables,最後停止xtrabackup_log
需要先安裝yum拓展源percona-release
rpm -ivh
重新生成快取:
安裝percona-xtrabackupyum clean all
yum makecache
yum install percona-xtrabackup
在mysql裡面建立備份使用者並授權:
----------------------------------grant reload,lock tables,replication client on *.* to 'backuser'@'loca
lhost' identified by '123457';
flush privileges;
建立備份目錄:
mkdir /data/backup
備份mysql:
innobackupex --defaults-file=/etc/my.cnf --user=backuser --password=123457 -s /tmp/mysql.sock /data/backup
出現:
191103 17:29:35 completed ok!
備份完成,會在備份目錄下生成乙個目錄:
這個目錄是按備份時間戳命名的。ls /data/backup/
2019-11-03_17-29-30
-----------------------------------------
全量備份恢復
停止mysqld服務:
/etc/init.d/mysqld stop
刪除原有資料:
恢復mysqlmv /data/mysql/ /data/mysql_bak
mkdir /data/mysql/
首先需要初始化
恢復:
innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/2019-11-03_17-29-30/
檢視mysql資料目錄:
還有最後一步:du -sh /data/mysql
111m /data/mysql
chown mysql:mysql /data/mysql
完成。
如果資料太大,經常全量備份太耗費資源,所有就可以使用在全量的基礎上進行增量備份。
上面已經有乙個全量備份了。
2019-11-03_17-29-30
做兩次增量備份:
第一次備份:
先對資料庫做一些改天,建立庫t1:
mysql -uroot -p123457 -e "create database t1;"
備份:
innobackupex --defaults-file=/etc/my.cnf --user=backuser --password=123457 -s /tmp/mysql.sock --incremental /data/backup/ --incremental-basedir=/data/backup/2019-11-03_17-29-30/
–incremental:做增量備份
–incremental-basedir:增量備份的基礎,在這裡是全量備份。
檢視:
第二個就是第乙個增量備份。ls /data/backup/
2019-11-03_17-29-30 2019-11-03_18-40-16
第二個增量備份:
innobackupex --defaults-file=/etc/my.cnf --user=backuser --password=123457 -s /tmp/mysql.sock --incremental /data/backup/ --incremental-basedir=/data/backup/2019-11-03_18-40-16/
–incremental-basedir:在這裡是第一次增量備份,如果是全量備份的話,等下恢復的時候,直接初始話全量和第二次增量備份就可以得到全部資料了。
ls /data/backup/
2019-11-03_17-29-30 2019-11-03_18-40-16 2019-11-03_18-47-24
先初始化全量:/etc/init.d/mysqld stop
mv /data/mysql /data/mysql.bak
mkdir /data/mysql
初始化第一次增量:
初始化第二次增量:
再一次初始話全量:
innobackupex --copy-back /data/backup/2019-11-03_17-29-30/
增加許可權,防止啟動有問題:
chown -r mysql:mysql /data/mysql
Xtrabackup備份與恢復
percona xtrabackup是percona公司為了實現增量備份而開發的一款主流備份工具,支援mysql percona server和mariadb,它包含了xtrabakup和innobakupe2個工具。備份速度快,物理備份可靠 備份過程不會打斷正在執行的事務 無需鎖表 能夠基於壓縮等...
Mysql 備份恢復與xtrabackup備份
1,在傳統語音通訊公司都是在具體硬體上開發音訊軟體。有了硬體就要有相應的驅動,在linux android上就是alsa相關的驅動軟體開發。對於前處理 編譯碼 傳輸等模組,既可以在底層做也可以在偏上面的層次做,這取決於軟體架構。我曾經在linux平台上硬體一樣軟體需求一樣的情況下由於軟體架構不一樣開...
xtrabackup單錶備份與恢復
備份 單錶備份主要是使用include引數,格式如下 include name 指定表名,格式 databasename.tablename具體命令如下 innobackupex defaults file data01 3306 conf my.cnf socket data01 3306 tmp...