Xtrabackup備份和恢複MySQL

來源:互聯網
上載者:User

mysqldump排Xtrabackup是一個對InnoDB做資料備份的工具,支援線上熱備份(備份時不影響資料讀寫),是商業備份工具InnoDB Hotbackup的一個很好的替代品。

Xtrabackup中包含兩個工具:

    * xtrabackup - 用於熱備份innodb, xtradb表的工具,不能備份其他表。
    * innobackupex - 對xtrabackup封裝的perl指令碼,提供了myisam表備份的能力。

Xtrabackup可以做什麼

    * 線上(熱)備份整個庫的InnoDB, XtraDB表
    * 在xtrabackup的上一次整庫備份基礎上做增量備份(innodb only)
    * 以流的形式產生備份,可以直接儲存到遠程機器上(本機硬碟空間不足時很有用)

Xtrabackup如何工作的

    * xtrabackup - 具體原理有待研究。。。
    * innobackupex整庫備份
         1. 調用xtrabackup對innodb資料表空間檔案(這一瞬間的映像Time1)備份,而在這個innodb表備份期間資料庫是不加鎖的,外部可以繼續往庫裡增減資料(這才能叫熱備份)。而在Time1和Time2這兩個時間點之間的改動由一個線程不斷地掃innodb log獲得(ChangeSet1)。
         2. 鎖所有庫。
         3. 以直接拷貝的方式備份frm,MYD,MYI,MRG,TRG,TRN,opt格式的檔案。
         4. 步驟3中的資料備份完畢時(Time2),停止掃innodb log的線程,把ChangeSet1的資料拷貝到備份中。
         5. 解鎖所有庫。
         6. 終止掛起,備份完畢。

注意要點

    * 根據innobackupex的原理可知它不是真正的熱備份,MyISAM表越少越小就越有利。要利用Xtrabackup的好處就盡量用innodb表。
    * 還原備份前關閉mysql服務;還原備份後檢查資料檔案許可權是否正確。
    * 效能:備份一個資料目錄總大小5.6G,其中ibdata 2G,總時間4分鐘,鎖表時間2.5分鐘。如果用mysqldump做這個庫的備份鎖表時間是5-8倍。

安裝
tar zxf xtrabackup-0.7.tar.gz
cd xtrabackup-0.7
./configure
make

進行到這裡時,千萬別慣性使用make install,那樣就會接著安裝MySQL了,正確方法是接著:

cd innobase/xtrabackup/
make
make install

然後,就會在你的/usr/bin目錄裡安裝上兩個工具:xtrabackup,innobackupex-1.5.1

# 制定備份多個資料庫
innobackupex-1.5.1 --user=root --databases="innodb innodb2" /bak/

# 壓縮備份(不加--databases,預設全部資料庫)
innobackupex-1.5.1 --user=root --stream=tar /bak/ | gzip > /bak/bak.tar.gz
(解壓縮必須加i。innobackupex: You must use -i (--ignore-zeros) option for extraction of the tar stream.)

# 遠程備份到192.168.1.200的/bak目錄下。
innobackupex-1.5.1 --user=root --stream=tar /bak | ssh root@192.168.1.200 cat ">" /bak/backup.tar
恢複
# innobackupex-1.5.1 --apply-log  /bak/2009_0929/
# innobackupex-1.5.1 --copy-back  /bak/2009_0929/
# chown -R mysql:mysql /usr/local/mysql/data/*
# mysqladmin -uroot -p123456 shutdown
# mysqld_safe --user=mysql &
除某幾張表不匯出,其餘都匯出。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.