xtrabackup備份與恢復

2021-09-29 07:14:51 字數 3280 閱讀 3328

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
重新生成快取:

yum clean all

yum makecache

安裝percona-xtrabackup

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
刪除原有資料:

mv /data/mysql/ /data/mysql_bak

mkdir /data/mysql/

恢復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...