Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。

XtraDB 存储引擎是由Percona开发的一款MySQL数据库的高性能存储引擎,其目的是用来代替InnoDB存储引擎,可用于需要更高性能的环境。

XtraDB 可以看作是InnoDB存储引擎的增强版本,它在InnoDB上进行了大量的修改和patched,它完全兼容InnoDB,且提供了很多InnoDB不具备的有用的功能。

对于高负载的MySQL应用来说,如果不需要MySQL官方技术支持的话,完全可以使用XtraDB来代替InnoDB存储引擎。

InnoDB 有个商业的InnoDB Hotbackup,可以对InnoDB引擎的表实现在线热备。而percona出品的Xtrabackup,是InnoDB Hotbackup的一个开源替代品,可以在线对InnoDB/XtraDB引擎的表进行物理备份。mysqldump支持在线备份,不过是逻辑备份,效率较差。xtrabackup是开源的MySQL备份工具,物理备份,效率较好。

Xtrabackup有两个主要的工具:xtrabackup、innobackupex,其中xtrabackup只能备份InnoDB和XtraDB两种数据表,innobackupex则封装了xtrabackup,同时可以备份MyISAM数据表。

Xtrabackup属于物理备份,EPEL源中有安装包,可以安装epel-release后直接安装。

这里由于线上环境是CentOS5.4,所以就单独从官网下载rpm包安装了。另外,由于使用yum安装会依赖libev,这里直接使用rpm安装。

# wget https://www.percona.com/downloads/XtraBackup/XtraBackup-2.0.0/RPM/rhel5/x86_64/percona-xtrabackup-2.0.0-417.rhel5.x86_64.rpm
# rpm -ivh percona-xtrabackup-2.0.0-417.rhel5.x86_64.rpm

设置定时任务

# crontab -e
10 0 * * * /root/bin/innobackup.sh

备份脚本

# cat /root/bin/innobackup.sh
#!/bin/bash backup_root='/data/backup'
today=$(date +%F)
confs=($(ls /etc/my*))
for conf in ${confs[@]}
do
port=$(basename $conf |sed -e 's/.cnf//' -e 's/my//' -e 's/-//')
[[ -z $port ]] && port=3306
[[ $port == 3306 ]] && continue
backup_path=$backup_root/$port
mkdir -p $backup_path
list=($(find $backup_path/ -mindepth 1 -maxdepth 1 -type d))
if [[ $(date +%w) -eq 0 || -z ${list[*]} ]];then
echo /usr/bin/innobackupex --defaults-file=$conf --user=root --password='dellXdell' $backup_path/ >> $backup_path/backup.$today.log 2>&1
/usr/bin/innobackupex --defaults-file=$conf --user=root --password='dellXdell' $backup_path/ >> $backup_path/backup.$today.log 2>&1
if [[ $? -eq 0 ]];then
rm -rf ${list[@]}
fi
else
last_backup=$(echo ${list[@]} | tr ' ' '\n' |sort |tail -1)
echo /usr/bin/innobackupex --defaults-file=$conf --user=root --password='dellXdell' --incremental $backup_path --incremental-basedir=$last_backup/ >> $backup_path/backup.$today.log 2>&1
/usr/bin/innobackupex --defaults-file=$conf --user=root --password='dellXdell' --incremental $backup_path --incremental-basedir=$last_backup/ >> $backup_path/backup.$today.log 2>&1
fi
done

这里设置的是周日全备,其它天增备,事先需要手动做一次全备。

# /usr/bin/innobackupex --defaults-file=/etc/my-3307.cnf --user=root --password='dellXdell' --socket=/nh/mysql3307/mysql-3307.sock --compress /data/backup/3307 >> /data/backup/3307/backup.$(date +%F).log 2>&1

安装Xtrabackup,设置定时备份msyql数据库的更多相关文章

  1. linux设置定时备份mysql数据库

    最近写自己的项目,买了阿里云服务器,可以在云上根据自己想到的需求随意使用技术,感觉很爽.备份mysql流程如下: 环境:CentOS Linux release 7.2.1511 (Core) mys ...

  2. linux下使用crontab定时备份MYSQL数据库的方法:

    摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...

  3. 【mysql】备份篇1:使用系统计划任务+mysqldump 定时备份mysql数据库 不用输入密码自动导出sql文件

    项目部署在服务期上之后,有了新的需求,需要每月定时备份mysql数据库的所有数据! 查找了网上的多篇文章之后,自己又对bat文件中的mysqldump语句进行改进,可以实现了不用输入密码就能自动定时备 ...

  4. Linux下定时备份MySQL数据库的Shell脚本

    Linux下定时备份MySQL数据库的Shell脚本   对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...

  5. centos7-每天定时备份 mysql数据库

    centos7-每天定时备份 mysql数据库 第一步:编写数据库备份脚本database_mysql_shell.sh #!/bin/bash DATE=`date +%Y%m%d%H%M` #ev ...

  6. 定时备份mysql数据库的shell脚本

    最近项目需要定时备份mysql数据库的数据,根据需求写了一份定时备份mysql数据库的脚本. -h mysql的地址  默认为localhost -P 端口号  默认为3306 -u 用户  默认为r ...

  7. 如何定时备份Mysql数据库

    1.创建备份数据库存储目录 cd data/db mkdir backup #创建存储目录 2.添加备份脚本 vim backupdb.sh #创建脚本文件 脚本内容如下: #!/bin/sh db_ ...

  8. Linux shell实现每天定时备份mysql数据库

    每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据: 需求: 1,每天4点备份mysql数据: 2,为节省空间,删除超过3个月的所有备份数据: 3,删除超过7天的备份数据,保留3 ...

  9. 定时备份mysql数据库

    第一步:编写mysqldump备份数据库脚本,先新建txt文档,编辑内容为 @echo off set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" ...

随机推荐

  1. phpcmsv9广告版位调用方法

    <div class="ya"> <?php // pc:get 使用sql语句获取指定条件的广告版位! ?> {pc:get sql="SELE ...

  2. ThinkPHP3.2开发仿京东商城项目实战视频教程

    ThinkPHP3.2仿京东商城视频教程实战课程,ThinkPHP3.2开发大型商城项目实战视频 第一天 1.项目说明 2.时间插件.XSS过滤.在线编辑器使用 3.商品的删除 4.商品的修改完成-一 ...

  3. 用Solidity在Truffle上构建一个HelloWorld智能合约

    原文地址:石匠的blog Truffle的环境安装在前文已经整理,这次用Solidity在Truffle写一个HelloWorld以太坊智能合约,并在testrpc上进行测试.当前的软件版本信息如下: ...

  4. url的param与dict转换

    urllib.parse.urlencode urlencode from urllib import parse from urllib.request import urlopen from ur ...

  5. ffmpeg——压缩mav格式音频

    今天偶然帮朋友压缩一个mav格式的音频.开始用压缩码率的方式,mav格式的音频体积一点都没变,查资料需要压缩音频文件的采样率和声道才能压缩mav格式的音频. 压缩要求是:将一个mav格式的音频文件,由 ...

  6. YQCB冲刺周第七天

    站立会议 任务看板 燃尽图 今天的任务为实现个人设置中的修改密码.设置金额的功能.以及界面的美化. 遇到的问题为修改自己密码时获得当前用户的id问题.

  7. Task 4.5 求二维数组中的最大连通子数组之和

    任务:输入一个二维整形数组,数组里有正数也有负数. 求所有子数组的和的最大值.要求时间复杂度为O(n). 1.设计思想:因为用之前的解决子数组最大和的问题的思路一直没能解决这个问题,后来看到同学使用将 ...

  8. Oracle安装后出现的问题

    安装oracle没有勾选"安装模板数据库",可以通过执行以下命令进行修改: cd $ORACLE_HOME/rdbms/admin 到这个目录下sqlplus /as sysdba ...

  9. 数据库:XML,解析Dom4J

    package com.itheima.util; import java.io.FileOutputStream; import java.net.URL; import org.dom4j.Doc ...

  10. 关于“scrum站立会议”

    每日站立会议是SCRUM方法中的一条关键实践,整个会议可能会比较混乱粗略,但推进进度的目标却非常清晰明确,并促使团队齐心协力朝共同目标迈进. 站立会议的功能很简单,作为一个以简短为特点的项目会议,所有 ...