MySQL mysqldump与innobackupex 组合备份
此脚本,在01点进行一次逻辑全备份,03点进行一次物理全备份,中午12点进行一次增量物理备份
#! /bin/bash
#05 01,03,12 * * * mysql /data/mysqldata/scripts/mysql_backup_dump_xtra.sh >> /data/mysql/backup/log/mysql_back2.log 2>&1
############################################################
# Define the variables the script used for executing.
#mysql backup by hongquan on 2017
#day=`date +%u`
curHour=`date +%H`
curDate=`date +'%Y%m%d'`
backupDir=/data/mysqldata/backup
defaultFile=/data/mysqldata/backup
mysqlHost=127.0.0.1
port=3306
logicuser=**
logicpass=**
logicalBackupDir=/data/mysqldata/backup/logical
fullBackupDir=/data/mysqldata/backup/full
incBackupDir=/data/mysqldata/backup/inc
logfile=/data/mysqldata/backup/mysql_backup.log
sockfile=/data/mysqldata/3306/mysql.sock full_inbkpex_day=/data/mysqldata/backup/full/full_ipx$curDate$curHour
inc_inbkpex=/data/mysqldata/backup/inc/inc_ipx$curDate$curHour MYSQL_PATH=/usr/local/mysql/bin
MYSQL_CMD="${MYSQL_PATH}/mysql -u${logicuser} -p${logicpass} -h${mysqlHost} -S /data/mysqldata/${HOST_PORT}/mysql.sock"
MYSQL_DUMP="${MYSQL_PATH}/mysqldump -u${logicuser} -p${logicpass} -h${mysqlHost} -P${HOST_PORT} -R -S \
${sockfile} --single-transaction --master-data=2 --default-character-set=utf8 --set-gtid-purged=OFF -q " case ${curHour} in
01)
type=logical
;;
03)
type=full
;;
12)
type=inc
;;
"*")
exit
esac echo "NOW is : Backup type=$type" >> ${logfile} if [ ! -d "${backupDir}" ]; then
mkdir -p "${backupDir}"
echo -e "===${backupDir} does not exsits,created them!" >> ${logfile}
fi if [ ! -d "${logicalBackupDir}" ]; then
mkdir -p "${logicalBackupDir}"
echo -e "===${logicalBackupDir} does not exsits,created them!" >> ${logfile}
fi if [ ! -d "${fullBackupDir}" ]; then
mkdir -p "${fullBackupDir}"
echo -e "===${fullBackupDir} does not exsits,created them!" >> ${logfile}
fi if [ ! -d "${incBackupDir}" ]; then
mkdir -p "${incBackupDir}"
echo -e "===${incBackupDir} does not exsits,created them!" >> ${logfile}
fi extra_lsndir=${backupDir}
ori_conf_file=/data/mysqldata/${port}/my.cnf
new_conf_file=${backupDir}/my_${port}_`date +%Y%m%d%H%M%S`.cnf echo "backup start" `date` >> ${logfile}
echo -e "===first cp my.cnf file to backup directory ===" >> ${logfile}
/bin/cp ${ori_conf_file} ${new_conf_file} echo >> ${logfile} if [[ "${type}" = "logical" ]]; then
# -------------------------- logical backup with mysqldump --------------------------
echo -e "mysqldumpbk per db list= ${list} " >> ${logfile}
for dbs in `${MYSQL_CMD} 2>/dev/null -e "show databases" | sed '1d' | egrep -v "information_schema|performance_schema|sys"`
do
echo -e "echo $dbs is appoint ; " >> ${logfile}
${MYSQL_DUMP} ${dbs} 2>/dev/null | gzip > ${logicalBackupDir}/${dbs}_${curDate}.sql.gz
echo -e " **** database :${dbs} backup stop_time :`date +%F' '%T' '%w` **** \n">> ${logfile}
echo -e "**** backup file size:`du -sh ${logicalBackupDir}/`**** \n" >> ${logfile}
done
elif [[ "${type}" = "full" ]]; then
# -------------------------- full backup with xtrabackup --------------------------
cd ${backupDir}
#rm -rf /data/mysql/backup/full/
if [ ! -d "${full_inbkpex_day}" ]; then
mkdir -p "${full_inbkpex_day}"
echo -e "===${full_inbkpex_day} does not exsits,created them!" >> ${logfile}
fi
#tar -zcvf $tar_full.tar.gz ${full_inbkpex_day}
cd ${full_inbkpex_day} /usr/bin/innobackupex --defaults-file=${ori_conf_file} --user=${logicuser} --password=${logicpass} \
--host=${mysqlHost} --port=${port} --no-timestamp --extra-lsndir=${extra_lsndir} --stream=tar ${backupDir} \
2>/tmp/full_ipx$curDate$curHour.log | gzip 1>${full_inbkpex_day}/`date +%Y%m%d%H%M%S`.tar.gz echo -e "mysql full backup full_ipx$curDate$curHour" >> ${logfile} elif [[ "${type}" = "inc" ]]; then
# -------------------------- incremental backup with xtrabackup --------------------------
if [ ! -d "${inc_inbkpex}" ]; then
mkdir -p "${inc_inbkpex}"
echo -e "===${inc_inbkpex} does not exsits,created them!" >> ${logfile}
fi
/usr/bin/innobackupex --defaults-file=${ori_conf_file} --user=${logicuser} --password=${logicpass} \
--host=${mysqlHost} --port=${port} --no-timestamp --extra-lsndir=${extra_lsndir} --incremental \
--incremental-basedir=${backupDir} ${inc_inbkpex} 2>/tmp/inc_ipx$curDate$curHour.log
echo -e "mysql inc backup inc_ipx$curDate$curHour" >> ${logfile}
else
echo -e "wrong backup type!" >> ${logfile}
exit 1
fi #echo -e "----find expired backup and delete those files ----">> ${logfile}
#for tfile in $(/usr/bin/find ${backupDir}/ -mtime +7)
#do
# if [ -d $tfile ] ; then
# rmdir $tfile
# elif [ -f $tfile ]; then
# #rm -f $tfile
# echo -e "---not backupDir found ----">> ${logfile}
# fi
# echo -e "----delete file:$tfile ----">> ${logfile}
#done echo -e "\n=== backup dened at `date +%F' '%T' '%w`===\n" >> ${logfile}
MySQL mysqldump与innobackupex 组合备份的更多相关文章
- 配合crond服务实现自定义周期备份MySQL数据库(使用innobackupex进行备份)
备份 新建一个脚本/root/backup.py,内容如下: #!/usr/bin/env python# -*- coding: utf-8 -*- ''' 脚本作者:昨夜星辰 脚本作用:配合cro ...
- c# Process cmd 执行完回调 Proc_OutputDataReceived mysql mysqldump mysql source备份还原数据
c# Process 执行完回调 Proc_OutputDataReceived mysql mysqldump mysql source备份还原数据 直接贴代码 前提:mysql5.7 vs2017 ...
- 使用mysql自带工具mysqldump进行全库备份以及source命令恢复数据库
mysql数据库提供了一个很好用的工具mysqldump用以备份数据库,下面将使用mysqldump命令进行备份所有数据库以及指定数据库 一.mysqldump一次性备份所有数据库数据 /usr/lo ...
- [MySQL] innobackupex在线备份及恢复(全量和增量)
安装percona-xtrabackup 方法1: percona-xtrabackup-2.1.9-744-Linux-x86_64.tar.gz(D:\share\src\linux-mysql) ...
- mysql 针对单张表的备份与还原
A.MySQL 备份工具xtrabackup 的安装 . percona 官方xtrabackup 的二进制版本:二进制版本解压就能用了. . 解压xtrabackup & 创建连接 -Lin ...
- mysql用户授权及数据备份恢复
用户授权与权限撤销 修改数据库管理员从本机登陆的密码测试: mysqladmin -hlocalhost -uroot -p password "新密码" Enter passwo ...
- 【转】mysqldump与innobackupex知多少
作者:罗小波 [目录] 1. 先看mysqldump 1.1 mysqldump备份过程解读 1.2 mysqldump备份过程中的关键步骤 1.2.1 FLUSH TABLES和FLUSH TABL ...
- mysqldump与innobackupex备份过程你知多少
mysqldump与innobackupex备份过程你知多少 测试库表创建(这里在同一个库下创建两个表,一个表为innodb引擎,一个为myisam引擎) root@localhost : (none ...
- MySQL 分区表原理及数据备份转移实战
MySQL 分区表原理及数据备份转移实战 1.分区表含义 分区表定义指根据可以设置为任意大小的规则,跨文件系统分配单个表的多个部分.实际上,表的不同部分在不同的位置被存储为单独的表.用户所选择的.实现 ...
随机推荐
- Linux 基本命令___0002
来源:https://mp.weixin.qq.com/s/DmfpDfWpWRV3EDItDdYgXQ #配置vim #http://www.cnblogs.com/ma6174/archive/2 ...
- 剑指Offer——重建二叉树2
Question 输入某二叉树的后序遍历和中序遍历的结果,请重建出该二叉树.假设输入的后序遍历和中序遍历的结果中都不含重复的数字.例如输入后序遍历序列{1, 3, 4, 2}和中序遍历序列{1, 2, ...
- java基础(8)-集合类
增强for循环 /* *增强for循环 * for(元素类型 变量:数据或Collection集合){ * 使用变量即可,该变量就是元素 * } * 优点:简化了数组和集合的遍历 * 缺点:增强for ...
- Avoid RegionServer Hotspotting Despite Sequential Keys
n HBase world, RegionServer hotspotting is a common problem. We can describe this problem with a si ...
- cplusplus.com
1/ http://www.cplusplus.com/reference/map/multimap/find/ 2. C
- nginx + tomcat多实例
一.tomcat 配置多实例(修改两个端口:server端口,tomcat端口) 搭建之前,先确保已安装java和tomcat jdk安装:http://note.youdao.com/notes ...
- review39
不可以在非同步方法中使用wait().notify()和notifyAll().
- Explain分析查询语句
表的读取顺序 读取操作的类型 可用索引,实际使用的索引 表之间的引用 每张表多少行被优化器查询 索引的长度 EXPLAIN字段解释: ØTable:显示这一行的数据是关于哪张表的 Øpossible ...
- Android环境配好的标志
Window —> preference —> android
- selenium定位多个嵌套iframe
一. driver.switch_to.frame(id):可以通过id切换到iframe 之前学习了selenium切换到iframe的方法,代码如下 from selenium import we ...