安装

rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm

yum install xtrabackup

备份

innobackupex /backup/xtrabackup/

预备

innobackupex --apply-log /backup/xtrabackup/全备

还原

service mysqld stop

删除原来的mysql文件夹,创建一个新的mysql文件夹

innobackupex --copy-back /backup/xtrabackup/全备

chown –R mysql.mysql /var/lib/mysql

增量备份

先弄个全备

innobackupex /home/db_backup/

做第一个增量

innobackupex --incremental /backup/xtrabackup/ --incremental-basedir=/backup/xtrabackup/全备

做第二个增量

innobackupex --incremental /backup/xtrabackup/ --incremental-basedir=/backup/xtrabackup/增量1

预备增量

innobackupex --apply-log --redo-only /backup/xtrabackup/全备

innobackupex --apply-log --redo-only /backup/xtrabackup/全备 --incremental-dir=/backup/xtrabackup/增量1

innobackupex --apply-log /backup/xtrabackup/增量1 --incremental-dir=/backup/xtrabackup/增量2

还原

service mysqld stop

删除原来的mysql文件夹,创建一个新的mysql文件夹

innobackupex --copy-back /backup/xtrabackup/全备

chown –R mysql.mysql /var/lib/mysql

最后放个异地备份的脚本

#!/bin/sh

# xtrabackup的相关配置

INNOBACKUPEX="innobackupex "

MY_CNF="/etc/my.cnf"

MY_USER="xtrabackup"

MY_PASSWORD="xtrabackup"

MY_SOCKET="/var/lib/mysql/mysql.sock"

# 远程备份机 文件名配置

REMOTE_HOST="testa"

REMOTE_DIR="/backup/xtrabackup"

LOCAL_LSN_FILE="/backup/xtrabackup/.to_lsn_important"

DATE_NAME=`date +%Y-%m-%d-%H-%M-%S`

REMOTE_FILE=$DATE_NAME.tar.gz

LOCK_FILE="/backup/xtrabackup/.mysql.backup.lock"

LOCAL_BACKUP_DIR="/backup/xtrabackup/$DATE_NAME"

# 输出帮助信息

function usage()

{

echo "Usage:"

echo "-f db will be backuped fully with this parameter. If not , incrementally. "

}

#防止同时执行两个备份命令,发生冲突

if [ -f $LOCK_FILE ] ;then

echo 'Mysql backup lockfile is locked!'

exit 

fi

full=

while getopts "fh" arg #选项后面的冒号表示该选项需要参数

do

case $arg in

f)

full=

;;

h) # 输出帮助信息

usage

exit 

;;

esac

done

echo "backup dir is $REMOTE_DIR/$REMOTE_FILE"

# backup up db to remote host

echo "start to backup db!"`date +%Y-%m-%d-%H-%M-%S`

"x ] ;then

# 全量备份

' > $LOCK_FILE

$INNOBACKUPEX --defaults-file=$MY_CNF --user=$MY_USER --password=$MY_PASSWORD --socket=$MY_SOCKET ./ --stream=tar | gzip | ssh $REMOTE_HOST "cat - > $REMOTE_DIR/FULL-$REMOTE_FILE"

ssh $REMOTE_HOST "cd $REMOTE_DIR;rm -f xtrabackup_checkpoints;tar zxfi $REMOTE_DIR/FULL-$REMOTE_FILE xtrabackup_checkpoints "

toLSN=$( ssh $REMOTE_HOST "cat $REMOTE_DIR/xtrabackup_checkpoints|grep to_lsn|awk -F= '{gsub(/ /,\"\",\$2);print \$2}'" )

if [ $toLSN ] ;then

echo $toLSN > $LOCAL_LSN_FILE

else

echo 'no lsn from remote host!please check!'

fi

else

# 增量备份

if [ -f $LOCAL_LSN_FILE ] ;then

toLSN=`cat $LOCAL_LSN_FILE`

fi

if [ ! $toLSN ] ;then

echo 'last LSN is not set !please check!'

exit 

fi

' > $LOCK_FILE

mkdir -p $LOCAL_BACKUP_DIR

echo "last to lsn is "$toLSN

$INNOBACKUPEX --parallel= --defaults->/tmp/innobackexLog

toLSN=$( cd $LOCAL_BACKUP_DIR/*; cat xtrabackup_checkpoints|grep to_lsn|awk -F= '{gsub(/ /,"",$2);print $2}' )

echo "new to lsn is "$toLSN;

if [ $toLSN ] ;then

echo $toLSN > $LOCAL_LSN_FILE

cd $LOCAL_BACKUP_DIR/*;tar zc .|ssh $REMOTE_HOST "cat - > $REMOTE_DIR/$REMOTE_FILE"

echo "save file to $REMOTE_HOST @ $REMOTE_DIR/$REMOTE_FILE"

else

echo 'no lsn from local backup file!delete remote backup file!'$LOCAL_BACKUP_DIR/$REMOTE_FILE

fi

echo "remove $LOCAL_BACKUP_DIR"

rm -rf $LOCAL_BACKUP_DIR

fi

rm -f $LOCK_FILE

echo "end to backup db!"`date +%Y-%m-%d-%H-%M-%S`

XtraBackup备份笔记的更多相关文章

  1. mysqldump和xtrabackup备份原理实现说明

    背景: MySQL数据库备份分为逻辑备份和物理备份两大类,犹豫到底用那种备份方式的时候先了解下它们的差异: 逻辑备份的特点是:直接生成SQL语句,在恢复的时候执行备份的SQL语句实现数据库数据的重现. ...

  2. Percona XtraBackup 备份原理说明【转】

    本文来自:http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MyS ...

  3. 利用xtrabackup备份mysql数据库

    利用xtrabackup备份mysql数据库 一.安装1.直接下载二进制文件wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2. ...

  4. MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]

    MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...

  5. Percona Xtrabackup备份mysql(转)

    add by zhj:另外,参考了Xtrabackup之innobackupex备份恢复详解,我用的是Xtrabackup2.2.6版本, 可以成功备份和恢复指定的数据库. 原文:http://www ...

  6. MySQL · 物理备份 · Percona XtraBackup 备份原理

    http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据 ...

  7. Percona XtraBackup 备份原理

    前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle).Percona Server 和 ...

  8. mysql xtrabackup 备份恢复实现,mysql命令备份数据库,打包压缩数据库

    简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具.特点: (1)备份过程快速.可靠 ...

  9. xtrabackup备份mysql数据库的使用方法

    xtrabackup是由percona提供的mysql备份工具,它是一款物理备份工具,通过连接数据库把数据库的数据备份出来.对于innodb存储引擎其支持全量备份和增量备份.对于myisam存储引擎只 ...

随机推荐

  1. 如何用java获得字符串的ASCII值

    使用Integer.valueOf就可以直接将char类型的数据转为十进制数据表现形式. int value=Integer.valueOf('1');//49int value=Integer.va ...

  2. 关于imagic拼接透明背景图片的问题

    目标: 为了做图片水印,需要水平拼接多个logo和文字... 之前用过imagick,所以继续使用. 第一个版本:实现了图片和文字的拼接,代码如下: package main import ( &qu ...

  3. ubuntu 下安装32位库 ia32-libs方法

    这两天在整Linux系统,要配置JDK,SDK环境,但是SDK配置使用的时候,提示没有权限. 需要安装32位库来解决,还有就是在修改文件的时候提示不能修改.唉...反正就是没有办法正常操作啦 后来根据 ...

  4. Linux下NFS服务器的搭建与配置

    一.NFS服务简介 NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的. 它最大的功能就是可以透过网络,让不同的机器.不同的操作系统.可以彼此分享个别 ...

  5. 老男孩python自动化运维作业1

    #!/usr/bin/env pthon #字典操作三级菜单 “b”返回上一级菜单,“q”退出. menu={"BJ":{"cp":{1:1,2:2,3:3}, ...

  6. OpenSource.organization-in-github

    1. gosquared https://github.com/gosquared 2. slack https://github.com/slackhq 3. The New York Times ...

  7. Knockout.Js官网学习(value绑定)

    前言 value绑定是关联DOM元素的值到view model的属性上.主要是用在表单控件<input>,<select>和<textarea>上. 当用户编辑表单 ...

  8. C/C++中extern关键字解析

    1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义.此外extern也可用来进行链接指定. 也就是说extern ...

  9. 搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

  10. 用python画xy散点图

    import matplotlib.pyplot as plt plt.plot([1,2,3],[4,5,6],'ro') plt.show()#这个智障的编辑器 这样的话,就可以画一个散点图,图中 ...