使用Xtrabackup來備份你的mysql

2022-09-03 14:21:12 字數 3955 閱讀 9364

參考:

使用

xtrabackup

來備份你的

mysql

一、

xtrabackup的基礎知識:

innodb 

有個商業的

innodb hotbackup

,可以對

innodb

percona

出品的xtrabackup

,是innodb hotbackup

innodb/xtradb

引擎的表進行物理備份。

mysqldump

xtrabackup

是開源的

mysql

備份工具,物理備份,效率很不錯。

xtrabackup

有兩個主要的工具:

xtrabackup

、innobackupex

,其中xtrabackup

只能備份

innodb

和xtradb

兩種資料表,

innobackupex

則封裝了

xtrabackup

,同時可以備份

myisam

資料表。

xtrabackup

做備份的時候不能備份表結構、觸發器等等,智慧型紛紛

.idb

資料檔案。

另外innobackupex

還不能完全支援增量備份,需要和

xtrabackup

結合起來實現全備的功能。

網上看到的很多教程都是錯誤的,因此自己摸索實踐了下,記錄下來,希望對大家有所幫助!

二、

xtrabackup的安裝

1.環境:

centos release 5.564bit

2.獲取安裝包:

rpm:

#centos4.6

版本用這個

wget 

#centos5.0

以上版本用這個

wget 

編譯好的二進位製包:

wget 

3.安裝:

rpm方式安裝:

rpm –ivh xtrabackup-0.9.5rc-50.rhel5.x86_64.rpm

編譯包的二進位製包方式安裝:

tar xzvf xtrabackup-0.9.tar.gz

cp xtrabackup-0.9/bin/* /usr/bin/

安裝完成以後覺得更改你的

/etc/my.cnf

配置檔案制定資料目錄,因為

xtrabackup

是根據你的

/etc/my.cnf

配置檔案來獲取你備份的檔案,比如在

/etc/my.cnf

的[mysqld] 

下新增datadir=/data/dbdata/

,然後重啟

mysql

三、

innobackupex的使用

ø正常備份:

innobackupex-1.5.1 --user=root --password=123 /home/db_backup/ 2>>/home/db_backup/db_backup.log

執行後會在

/home/db_backup

目錄下自動生成乙個備份目錄,比如

/home/db_backup/2010-12-29_20-22-39

ø正常還原:

/etc/rc.d/init.d/mysqld stop

rm –rf

/data/dbdata/*#生成

ib_logfile檔案#

還資料到

mysql

的資料目錄

innobackupex-1.5.1 -copy-back /home/db_backup/2010-12-29_20-22-39

#還原過去後預設是

root

許可權,因此修改屬組和屬主

chown –r mysql.mysql 

/data/dbdata

/etc/rc.d/init.d/mysqld start

四、

innobackupex

xtrabackup結合實現全被

+增量備份

備份:ø使用

innobackupex

做完全備份:

innobackupex-1.5.1--user=root--password=123456/home/db_backup/

假如備份後生成的目錄為:

2011-04-29_01-43-35

備份後可檢視檢查點的資訊:

cat xtrabackup_checkpoints

backup_type = full-backuped

from_lsn = 0:0

to_lsn = 6:2510228502ø使用

xtrabackup

做增量備份:

xtrabackup --backup --target-dir=/home/db_backup/2 --incremental-basedir=/home/db_backup/2011-04-29_01-43-35/其中2

為增量備份的目錄

備份後檢視檢查點的資訊:

cat xtrabackup_checkpoints

backup_type = incremental

from_lsn = 6:2510228502

to_lsn = 6:2510228844

#可以看到增量備份是從全備的檢查點開始進行增量備份的!

還原:還原之前,停掉

mysqld

,然後清空資料目錄!恢復的順序不太一樣ø使用

innobackupex-1.5.1進行ø

使用xtrabackup

將增量備份應用到全備目錄

2011-05-02_21-01-24

中去xtrabackup --prepare --target-dir=/home/db_backup/2011-05-02_21-01-24/ --incremental-dir=/home/db_backup/2

增量備份應用以後,可以到

2011-05-02_21-01-24

目錄下去看下檢查點的資訊,比如:

backup_type = full-prepared

from_lsn = 0:0

to_lsn = 6:2510228844

# to_lsn = 6:2510228502

變成了6:2510228844ø使用

innobackupex-1.5.1

進行還原

innobackupex-1.5.1 --user=root--copy-back /home/db_backup/2011-05-02_21-01-24

執行這一步後,大功告成,呵呵!

參考鏈結

來自為知筆記(wiz)

xtrabackup備份說明

通過最簡單的備份事例,說明備份所包含的內容等資訊 xtrabackup backup target dir tmp backup指定用於備份,預設全備 target dir指定備份檔案目錄 生成備份目錄xtrabackup backupfiles cd xtrabackup backupfiles ...

xtrabackup 備份問題

個人認為percona 對mysql最大的貢獻就是它提供了mysql 的熱備份工具xtrabackup.對於v2版本中有乙個問題是 從備份檔案中恢復資料時,對於備份前新建立的表,是無法完全利用工具恢復.frm 式檔案。不過這並不影響使用 貌似網上有人已經做了修改 由於我們預設的儲存引擎是innodb...

xtrabackup 增量備份

xtrabackup 增量備份 1.完全備份準備資料夾 xtrabackup backup target dir backup base 2.進入mysql 修改資料 centos mysql mariadb hellodb use hellodb 修改資料庫 mariadb hellodb ins...