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=‘ d e f a u l t s f i l e ′ − − u s e r = ′ defaults_file' --user=' defaultsfile′−−user=′user’ --password=‘ p a s s w o r d ′ − − s t r e a m = t a r / m n t / s t o r a g e d a t a b a s e / t e m p ∣ s s h r o o t @ 要 发 送 的 i p " g z i p − > ′ password' --stream=tar /mnt/storage_database/temp | ssh root@要发送的ip "gzip -> ' password′−−stream=tar/mnt/storagedatabase/temp∣sshroot@要发送的ip"gzip−>′backup_dir$name’.tar.gz"’
eval $shell