XtraBackup备份笔记
安装
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备份笔记的更多相关文章
- mysqldump和xtrabackup备份原理实现说明
背景: MySQL数据库备份分为逻辑备份和物理备份两大类,犹豫到底用那种备份方式的时候先了解下它们的差异: 逻辑备份的特点是:直接生成SQL语句,在恢复的时候执行备份的SQL语句实现数据库数据的重现. ...
- Percona XtraBackup 备份原理说明【转】
本文来自:http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MyS ...
- 利用xtrabackup备份mysql数据库
利用xtrabackup备份mysql数据库 一.安装1.直接下载二进制文件wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2. ...
- MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]
MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...
- Percona Xtrabackup备份mysql(转)
add by zhj:另外,参考了Xtrabackup之innobackupex备份恢复详解,我用的是Xtrabackup2.2.6版本, 可以成功备份和恢复指定的数据库. 原文:http://www ...
- MySQL · 物理备份 · Percona XtraBackup 备份原理
http://mysql.taobao.org/monthly/2016/03/07/ 前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据 ...
- Percona XtraBackup 备份原理
前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle).Percona Server 和 ...
- mysql xtrabackup 备份恢复实现,mysql命令备份数据库,打包压缩数据库
简介 Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具.特点: (1)备份过程快速.可靠 ...
- xtrabackup备份mysql数据库的使用方法
xtrabackup是由percona提供的mysql备份工具,它是一款物理备份工具,通过连接数据库把数据库的数据备份出来.对于innodb存储引擎其支持全量备份和增量备份.对于myisam存储引擎只 ...
随机推荐
- 【转】Win7 64bit Oracle 11g 使用PL/SQL Developer 连接时提示“SQL*Net not properly installed”
转载:http://www.cnblogs.com/xihuaodc/p/3189257.html 因为之前的Oracle不能用了,所以重新安装了64位的Oracle,安装一路正常 完了之后安装了P ...
- HTML可编辑的select
HTML可编辑的select实现原理还是用select和input伪装成的! <!DOCTYPE html PUBLIC "-//W3C//Dth XHTML 1.0 Transiti ...
- 开启 mysql 远程访问
如何开启MySQL的远程帐号-1)首先以 root 帐户登陆 MySQL 在 Windows 主机中点击开始菜单,运行,输入“cmd”,进入控制台,然后cd 进入MySQL 的 bin 目录下,然后输 ...
- Getting Started With Hazelcast 读书笔记(第八章-第十章)
第八章到第十章就是一些介绍性的描述,吹的就是Hazelcast能使用在各种地方.. 第八章 -从外面看 1.Hazelcast做了一个memcache的java实现,方便py和php使用. 2.可 ...
- 我开发的SNMP编译器和浏览器
我开发的SNMP编译器和浏览器 什么是SNMP SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进 ...
- 20145229&20145316 《信息安全系统设计基础》实验三 实时系统的移植
实验封面 实验内容 1.安装ADS(安装文件在00-ads1.2目录下,破解方法00-ads1.2\Crack目录下) 2.安装GIVEIO驱动(安装文件在01-GIVEIO目录下) 3.把整个GIV ...
- git conifg
1. git config简介 我们知道config是配置的意思,那么git config命令就是对git进行一些配置.而配置一般都是写在配置文件里面,那么git的配置文件在哪里呢?互动一下,先问下大 ...
- virtual 修饰符 C# .NET
virtual 关键字用于修饰方法.属性.索引器或事件声明,并且允许在派生类中重写这些对象. 例如,此方法可被任何继承它的类重写. (C#参考) public virtual double Area( ...
- myeclipse2014激活
MyEclipse2014破解教程 一. 在破解myeclipse2014之前,要先把环境变量配置好: 1)打开我的电脑--属性--高级--环境变量 2)新建系统变量JAVA_HOME 和CLASSP ...
- 用栈解决Largest Rectangle问题
一问题描述 Given n non-negative integers representing the histogram's bar height where the width of each ...