備份
一:全備
$ innobackupex --defaults-file=/tmp/other-my.cnf --user=DBUSER
--password=DBUSERPASS /path/to/BACKUP-DIR/
二:增量備份
2.1增量備份理論基礎
之所以能夠進行增量備份,是因爲每一個InnoDB 頁(page)都包含了一個日誌序列
號,或者LSN。這個LSN 是一個整個數據庫的系統版本號。每一個頁的LSN 展示了它是怎麼
改變的。一個增量備份複製了每一個頁,這些頁的LSN 都是比之前的增量或者全備LSN號要
新。增量備份實際上不是比較現在的數據文件和之前的備份數據文件。實際上,如果你知
道它的、LSN你可以用-incremental-lsn 去這個參數去執行一個增量備份,即使之前沒有
做過備份。
增量備份簡單的讀取頁,和對比上一次備份的LSN 與它們的LSN 號。你仍然需要一個
全備去恢復一個增量的改變,但是,若沒有一個全備作爲一個基準,那些增量備份也會變
得無效。
在進行增量備份之前,必須要有一個全備。這個全備將作爲增量備份的一個基準。
1)全備:
innobackupex /全備目錄
這樣的全備,會在全備目錄下生成一個帶有時間標記的目錄,該目錄即是備份的數據,你也可以通過innobackupex -no-timestamp 來自己制定生成的文件的名字
2)第一次增備:
Innobackupex --incremental /增備存放目錄--incremental-basedir=/全備目錄這樣就有了一個增量備份了,如果此時還想要在進行一次增量備份。那麼類似的話,也需要一個基準,那麼現在的基準就變成了剛剛完成的增量備份了。
3)第二次增備:
innobackupex --incremental /第二次增備的存放目錄--incremental-basedir=/第一次增備的存放目錄
同時,你會發現在我們每一個備份中 ,不管是全備,還是增備,在它們的目錄中都有這麼一
個文件:xtrabackup-checkpoints 。
這個文件中有類似的記錄:
這些就是備份開始的位置和結束的位置。所以我們也可以通過這些位置點來備份:
這種備份方式更加值得提倡。
2.2增量備份實際案例
1)全備:
[root@localhost home]#innobackupex -user=root --password=123456
--defaults-file=/usr/local/mysql/data/3306/my.cnf /home/mysqlbackup
2)增備:
[root@localhost mysqlbackup]# innobackupex --user=root --password=123456
--defaults-file=/usr/local/mysql/data/3306/my.cnf --incremental /home/inc1
--incremental-basedir=/home/mysqlbackup/2013-02-19_12-20-49/
注意: 其中2013-02-19_12-20-49/ 是全備的目錄。增量備份新生成的備份目錄爲
2013-02-20_10-25-19
3)第二次增備:
[root@game7 mysqlbackup]# innobackupex --user=root --password=123456
--defaults-file=/usr/local/mysql/data/3306/my.cnf --incremental /home/inc2
--incremental-basedir=/home/inc1/2013-02-20_10-25-19/
注意:第二次增備生成的目錄是/home/inc2/2013-02-20_10-35-48
----------------------------------------------------------------------------------------------------------------------
全備(基準):/home/mysqlbackup/2013-02-19_12-20-49/
第一次增備:/home/inc1/2013-02-20_10-25-19/
第二次增備:/home/inc2/2013-02-20_10-35-48
----------------------------------------------------------------------------------------------------------------------