xtrabackup
XtraBackup(PXB) 工具是 Percona 公司用 perl 語言開發的一個用於 MySQL 數據庫物理熱備的備份工具,支持 MySQl(Oracle)、Percona Server 和 MariaDB,並且全部開源,真可謂是業界良心。阿里的 RDS MySQL 物理備份就是基於這個工具做的。由於是採取物理拷貝的方式來做的備份,所以速度非常快,幾十G數據幾分鐘就搞定了,而它巧妙的利用了mysql 特性做到了在線熱備份,不用像以前做物理備份那樣必須關閉數據庫才行,直接在線就能完成整庫或者是部分庫的全量備份和增量備份。
安裝
-
安裝倉庫Install the Percona repository
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm
-
測試一下倉庫裏是否含有最新版的資源
yum list | grep percona
-
安裝packages
yum install percona-xtrabackup-24
-
安裝報錯
解決辦法yum update percona-release
數據備份1
- 全量備份
innobackupex ----defaults-file=/etc/my.cnf --user=root --password=root /root/back
數據恢復
-
關閉數據庫服務
service mysql stop
-
執行數據恢復命令*(注意my.cnf裏配置的datadir目錄必須是一個空目錄,因此在恢復數據之前,要先datadir到別的目錄,然後新建一個空目錄再執行恢復)
innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync /path/to/backup
-
給新建的目錄變更權限
chown -R mysql. /app/mysql/data
-
啓動mysql服務
service mysql start
數據備份2-流式備份
#!/bin/bash
defaults_file="/etc/my.cnf" # mysql配置文件位置
user=“root” #mysql賬號
password=“aaaaaa” #mysql密碼
backup_dir="/mnt/database_backup/dir/" #需要存檔的根目錄
name="$(date +"%Y%m%d")"
shell=‘innobackupex --defaults-file=‘user’ --password=‘backup_dir$name’.tar.gz"’
eval $shell