xtrabackup备份与恢复

xtrabackup

XtraBackup(PXB) 工具是 Percona 公司用 perl 语言开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle)、Percona Server 和 MariaDB,并且全部开源,真可谓是业界良心。阿里的 RDS MySQL 物理备份就是基于这个工具做的。由于是采取物理拷贝的方式来做的备份,所以速度非常快,几十G数据几分钟就搞定了,而它巧妙的利用了mysql 特性做到了在线热备份,不用像以前做物理备份那样必须关闭数据库才行,直接在线就能完成整库或者是部分库的全量备份和增量备份。

安装

  1. 安装仓库Install the Percona repository
    yum install http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm

  2. 测试一下仓库里是否含有最新版的资源
    yum list | grep percona

  3. 安装packages
    yum install percona-xtrabackup-24

  4. 安装报错

    解决办法yum update percona-release

数据备份1

  1. 全量备份
    innobackupex ----defaults-file=/etc/my.cnf --user=root --password=root /root/back

数据恢复

  1. 关闭数据库服务
    service mysql stop

  2. 执行数据恢复命令*(注意my.cnf里配置的datadir目录必须是一个空目录,因此在恢复数据之前,要先datadir到别的目录,然后新建一个空目录再执行恢复)
    innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync /path/to/backup

  3. 给新建的目录变更权限
    chown -R mysql. /app/mysql/data

  4. 启动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=' defaultsfileuser=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 -> ' passwordstream=tar/mnt/storagedatabase/tempsshroot@ip"gzip>backup_dir$name’.tar.gz"’

eval $shell

你可能感兴趣的:(xtrabackup备份与恢复)