安装Xtrabackup,设置定时备份msyql数据库
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数据库的更多相关文章
- linux设置定时备份mysql数据库
最近写自己的项目,买了阿里云服务器,可以在云上根据自己想到的需求随意使用技术,感觉很爽.备份mysql流程如下: 环境:CentOS Linux release 7.2.1511 (Core) mys ...
- linux下使用crontab定时备份MYSQL数据库的方法:
摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...
- 【mysql】备份篇1:使用系统计划任务+mysqldump 定时备份mysql数据库 不用输入密码自动导出sql文件
项目部署在服务期上之后,有了新的需求,需要每月定时备份mysql数据库的所有数据! 查找了网上的多篇文章之后,自己又对bat文件中的mysqldump语句进行改进,可以实现了不用输入密码就能自动定时备 ...
- Linux下定时备份MySQL数据库的Shell脚本
Linux下定时备份MySQL数据库的Shell脚本 对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...
- centos7-每天定时备份 mysql数据库
centos7-每天定时备份 mysql数据库 第一步:编写数据库备份脚本database_mysql_shell.sh #!/bin/bash DATE=`date +%Y%m%d%H%M` #ev ...
- 定时备份mysql数据库的shell脚本
最近项目需要定时备份mysql数据库的数据,根据需求写了一份定时备份mysql数据库的脚本. -h mysql的地址 默认为localhost -P 端口号 默认为3306 -u 用户 默认为r ...
- 如何定时备份Mysql数据库
1.创建备份数据库存储目录 cd data/db mkdir backup #创建存储目录 2.添加备份脚本 vim backupdb.sh #创建脚本文件 脚本内容如下: #!/bin/sh db_ ...
- Linux shell实现每天定时备份mysql数据库
每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据: 需求: 1,每天4点备份mysql数据: 2,为节省空间,删除超过3个月的所有备份数据: 3,删除超过7天的备份数据,保留3 ...
- 定时备份mysql数据库
第一步:编写mysqldump备份数据库脚本,先新建txt文档,编辑内容为 @echo off set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" ...
随机推荐
- VMware两台虚拟机之间文件共享
虚拟机A的文件拷贝到虚拟机B scp[参数][原路径][目标路径] eg: scp -r root@192.168.0.172:/home/rookie/下载/ /home/rooookie/下载/ ...
- 使用NNI的scikit-learn以及Tensorflow分析
一.NNI简介 NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包. 它通过多种调优的算法来搜索最好的神经网络结构和(或)超参,并支持单机.本地 ...
- zip命令详解
基础命令学习目录首页 好文链接:https://www.cnblogs.com/yinzhengjie/p/6247833.html 原文链接:https://www.cnblogs.com/ferr ...
- eclipse在线安装maven插件
http://blog.csdn.net/xiaoxiaoyeyaya/article/details/17200987 在安装插件的时候将下面的contact all update sites du ...
- mysql/mybatis之合并两个表的查询结果
下面这段sql是把两个表中各自符合条件的count值相加,返回结果是两个之和 SELECT sum(result) FROM ( SELECT COUNT(*) result FROM TEST_A ...
- Daily Scrum 11.14
姓名 今日任务 黄新越 按照热度排序->产生柱状图 刘垚鹏 总体代码架构整合 王骜 总体代码架构整合 林旭鹏 优化整体UI布局 安康 优化整体UI布局 黄伟龙 预先合作编写测试用例 马佐霖 预先 ...
- iOS自学-UILabel常见属性
#import "ViewController.h" #import <CoreText/CoreText.h> @interface ViewController ( ...
- nginx配置hls
备注:本来是想用浏览器播放hls,后来没有成功,最后使用flash播放rtmp的方案.所以下面的配置未使用. 修改/usr/local/nginx/conf/nginx.conf文件内容如下: wor ...
- js如何判断一个值是不是Array类型
本来判断一个对象类型用typeof是最好的,不过对于Array类型是不适用的可以使用 instanceof操作符var arrayStr=new Array("1","2 ...
- Swift-懒加载使用
// 懒加载 lazy var tableView : UITableView = { let tempTableView = UITableView() ret ...