2、安装Xtrabackup
安装Xtrabackup有几种方法:
第一种:通过源码进行安装
第二种:通过yum来安装
[percona]
name=CentOS-$releasever - Percona
baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/
gpgcheck=0
第三种:直接使用xtrabackup、innobackupex这两个二进制可执行文件即可
[root@SQL1 ~]wget http://www.percona.com/percona-builds/XtraBackup/XtraBackup-1.2/Linux/binary/i686/xtrabackup-1.2.tar.gz
[root@SQL1 ~]cp innobackupex-1.5.1 tar4ibd xtrabackup /usr/sbin
3、安装Xtrabackup
1)innobackupex工具
(1)备份操作(下列是几个例子)
####备份employess数据库(普通备份)####
[root@SQL1 ~]# innobackupex-1.5.1 --defaults-file=/usr/local/mysql/etc/my.cnf --user=root --host=192.168.1.52 --password=XXXX --port=3306 --socket=/tmp/mysql.sock --slave-info --databases=employees /root/backup 1> process_log 2>&1 &
注意:将数据库employees备份到目录/root/backup/XXXX下
[root@SQL1 ~]# ls -l /root/backup
total 4
drwxr-xr-x 3 root root 4096 Apr 13 14:16 2010-04-13_14-14-43
####备份给定的数据库列表中的数据库中(普通备份)####
[root@SQL1 ~]# cat backup_db_name
school
employees
[root@SQL1 ~]# innobackupex-1.5.1 --defaults-file=/usr/local/mysql/etc/my.cnf --user=root --host=192.168.1.52 --password=XXXX --port=3306 --socket=/tmp/mysql.sock --slave-info --databases=/root/backup_db_name /root/backup 1> process_log 2>&1 &
或者
[root@SQL1 ~]# innobackupex-1.5.1 --defaults-file=/usr/local/mysql/etc/my.cnf --user=root --host=192.168.1.52 --password=XXXX --port=3306 --socket=/tmp/mysql.sock --slave-info --databases=“school employees” /root/backup 1> process_log 2>&1 &
####备份employess数据库中的employess表(普通备份)####
[root@SQL1 ~]# innobackupex-1.5.1 --defaults-file=/usr/local/mysql/etc/my.cnf --user=root --host=192.168.1.52 --password=XXXX --port=3306 --socket=/tmp/mysql.sock --slave-info --databases="employees.employees" /root/backup 1> process_log 2>&1 &
####备份所有的数据库,并打包(tar方式)#####
[root@SQL1 ~]# innobackupex-1.5.1 --defaults-file=/usr/local/mysql/etc/my.cnf --user=root --host=192.168.1.52 --password=XXXX --port=3306 --socket=/tmp/mysql.sock --slave-info --stream=tar /root/backup 1> /root/backup/all_databases.tar 2> process_log &
####备份所有的数据库并压缩,并打包压缩(tar+gzip方式)####
[root@SQL1 ~]# innobackupex-1.5.1 --defaults-file=/usr/local/mysql/etc/my.cnf --user=root --host=192.168.1.52 --password=XXXX --port=3306 --socket=/tmp/mysql.sock --slave-info --stream=tar /root/backup 2> process_log | gzip > /root/backup/all_databases.tar.gz &
注意:首先要先创建备份目录:/root/backup,--databases=[ db_name.tb_name | db_name ],如果不使用--databases参数的话,那么将备份所有的数据库
(2)恢复操作
(步骤:先apply log,再copy back,最后再chown -R mysql:mysql datadir)
####(普通备份)的还原操作######
[root@SQL1 ~]# ls -l /root/backup/2010-04-13_15-02-37/
total 223484
-rw-r--r-- 1 root root 348 Apr 13 15:02 backup-my.cnf
drwxr-xr-x 2 root root 4096 Apr 13 15:03 employees
-rw-r--r-- 1 root root 228589568 Apr 13 15:03 ibdata1
-rw-r--r-- 1 root root 0 Apr 13 15:03 mysql-stderr
-rw-r--r-- 1 root root 379 Apr 13 15:03 mysql-stdout
-rw-r--r-- 1 root root 1 Apr 13 15:03 xtrabackup_binlog_info
-rw-r--r-- 1 root root 60 Apr 13 15:03 xtrabackup_checkpoints
-rw-r--r-- 1 root root 2048 Apr 13 15:02 xtrabackup_logfile
-rw-r--r-- 1 root root 53 Apr 13 15:03 xtrabackup_slave_info
[root@SQL1 ~]# innobackupex-1.5.1 --defaults-file=/usr/local/mysql/etc/my.cnf --user=root --host=192.168.1.52 --password=XXXX --port=3306 --socket=/tmp/mysql.sock --apply-log /root/backup/2010-04-13_15-02-37
[root@SQL1 ~]# innobackupex-1.5.1 --defaults-file=/usr/local/mysql/etc/my.cnf --user=root --host=192.168.1.52 --password=XXXX --port=3306 --socket=/tmp/mysql.sock --copy-back /root/backup/2010-04-13_15-02-37
[root@SQL1 ~]# chown -R mysql:mysql /usr/local/mysql/data
[root@SQL1 ~]# rm -rf /usr/local/mysql/data/xtrabackup*
####(tar方式备份)的还原操作######
[root@SQL1 ~]# mkdir /root/backup/db
[root@SQL1 ~]# tar -ixvf all_databases.tar -C /root/backup/db(先解压,注意必须跟-i参数)
[root@SQL1 ~]# innobackupex-1.5.1 --defaults-file=/usr/local/mysql/etc/my.cnf --user=root --host=192.168.1.52 --password=XXXX --port=3306 --socket=/tmp/mysql.sock --apply-log /root/backup/db
[root@SQL1 ~]# innobackupex-1.5.1 --defaults-file=/usr/local/mysql/etc/my.cnf --user=root --host=192.168.1.52 --password=XXXX --port=3306 --socket=/tmp/mysql.sock --copy-back /root/backup/db
[root@SQL1 ~]# chown -R mysql:mysql /usr/local/mysql/data
[root@SQL1 ~]# rm -rf /usr/local/mysql/data/xtrabackup
[root@SQL1 ~]# rm -rf /root/backup/db
####(tar+gzip方式备份)的还原操作######
[root@SQL1 ~]# mkdir /root/backup/db
[root@SQL1 ~]# tar -izxvf all_databases.tar.gz -C /root/backup/db(先解压,注意必须跟-i参数)
[root@SQL1 ~]# innobackupex-1.5.1 --defaults-file=/usr/local/mysql/etc/my.cnf --user=root --host=192.168.1.52 --password=XXXX --port=3306 --socket=/tmp/mysql.sock --apply-log /root/backup/db
[root@SQL1 ~]# innobackupex-1.5.1 --defaults-file=/usr/local/mysql/etc/my.cnf --user=root --host=192.168.1.52 --password=XXXX --port=3306 --socket=/tmp/mysql.sock --copy-back /root/backup/db
[root@SQL1 ~]# chown -R mysql:mysql /usr/local/mysql/data
[root@SQL1 ~]# rm -rf /usr/local/mysql/data/xtrabackup
[root@SQL1 ~]# rm -rf /root/backup/db
其实:可以不使用copy-back操作,而是直接拷贝备份文件中的数据到datadir目录下即可
cp employees ibdata1 ib_logfile0 ib_logfile1 mysql school test /usr/local/mysql/data/ -rf && chown -R mysql:mysql /usr/local/mysql/data
如果您不关心binary log position of backup 或者all the tables are innodb,那么可以加上--no-lock参数
四、参数资料
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。