Percona XtraBackup簡單使用操作命令

本文寫得很簡單,僅僅包括全庫備份、全庫準備、全庫恢復3個步驟。如果要詳細的備份,如打包、遠程備份等,建議之後閱讀這篇文章http://blog.csdn.net/yongsheng0550/article/details/6682162,然後再閱讀官方手冊。

介紹一下環境:CentOS 6.3,Percona XtraBackup 2.2.6,MySQL 5.5。

1. 準備工作

首先,請先裝好MySQL和XtraBackup,不要憑腦袋瓜子空想。

2. 創建一個備份專用用戶

從技術角度考慮,root用戶很合適,但是從安全角度考慮,最好還是有個專門的用戶,只給最低權限。、

XtraBackup要的權限不多,有RELOAD, LOCK TABLES, REPLICATION CLIENT3個就行。LOCK TABLES是備份MyISAM表時用的。

CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY 's3cret';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
FLUSH PRIVILEGES;

3. 備份數據庫

innobackupex --user=bkpuser --password=s3cret /usr/programs/backup/
cp /etc/my.cnf /usr/programs/backup/


這裏是全庫備份,指定用戶名、密碼和備份文件保存的位置執行即可。

注意:後面的cp是備份my.cnf。這個文件對XtraBackup和MySQL都非常重要,但是XtraBackup並不備份,所以需要手動備份一下。此外,恢復時也會需要my.cnf文件中的datadir參數,所以這裏需要提前備份該文件,並檢查是否有datadir參數。如果沒有該文件,可以從/usr/share/mysql/下面的各種my-*.cnf選一個適合自己硬件的,並增加datadir參數。(默認可以把datadir指向/var/lib/mysql目錄,即datadir=/var/lib/mysql)

4. 停止數據庫服務

service mysql stop
5. 備份準備工作

innobackupex --apply-log /usr/programs/backup/2014-12-03_09-46-46/

這個2014-12-03的文件夾是備份時自動生成的。由於是熱備份,有可能在備份時還有沒執行完的事務,在這裏需要“準備”來完成這些事務。要了解更詳細的內容可以自行搜索XtraBackup的原理。

6. 刪除數據庫物理文件

rm /var/lib/mysql/* -rf

XtraBackup其實就是把這些文件都拷回來,所以要把所有的文件都刪了,不然恢復時會報錯。千萬注意:只能刪除/var/lib/mysql文件夾下面的所有文件,而這個mysql文件夾絕對不能刪,如果刪了,你的恢復肯定沒戲,啓動MySQL時絕對給你報錯“ERROR! The server quit without updating PID file”。(個人以爲這個錯誤是因爲SELinux引起的,可以修改SELinux的配置:chcon -R -t mysqld_db_t /var/lib/mysql/

7. 恢復

innobackupex --copy-back /usr/programs/backup/2014-12-03_09-46-46/

這裏可能會出現找不到datadir的錯誤(如下),此時需要把備份的my.cnf恢復到初始位置,並且my.cnf中要包含datadir這個變量值。默認my.cnf在/etc/目錄下,datadir=/var/lib/mysql。

innobackupex: got a fatal error with the following stacktrace: at /usr/bin/innobackupex line 4478
	main::get_option('datadir') called at /usr/bin/innobackupex line 2433
	main::copy_back(0) called at /usr/bin/innobackupex line 1561
innobackupex: Error: no 'datadir' option in group 'mysqld' in server configuration file '' at /usr/bin/innobackupex line 4478.

8. 文件授權

chown -R mysql:mysql /var/lib/mysql/

重新拷貝的文件需要授權,不然MySQL同樣不能啓動,也會報“ERROR! The server quit without updating PID file”的錯誤。

9. 啓動MySQL

service mysql start



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章