MySQL 备份脚本--mysqldump在slave 上进行备份

使用mysqldump在slave上进行备份,建议使用stop slave sql_thread,start slave sql_thread,

在slave上进行mysqldump备份的时候(--single-transaction),这时候如果主库对表发生ddl,从库的mysqldump备份可能会发生错误,table definition has changed,pelase try transaction.mysqldump终止

#!/bin/sh
#create by hq on 20160531 show_slave_status(){
echo -e"-----master.info:-----" >>${LOG_FILE}
cat ${MAIN_PATH}/data/master.info | sed -n '2,3p' >>${LOG_FILE}
echo -e"----show slave status:----">>${LOG_FILE}
echo "show slave status\G" |${MYSQL_CMD} | egrep "Slave_IO_Running|Slave_SQL_Running|Master_Log_File|Read_Master_Log_Pos|Exec_Master_Log_Pos|Relay_Log_File|Relay_Log_Pos" >>${LOG_FILE}
echo -e "" >> ${LOG_FILE}
}
source /data/mysqldata/scripts/mysql_env.ini
HOST_PORT=3306
HOST_IP=127.0.0.1
MAIN_PATH=/data/mysqldata/${HOST_PORT}
DATA_PATH=/data/mysqldata/backup/mysql_full
DATA_FILE=${DATA_PATH}/dbfullbk_`date +%F`.sql.gz
LOG_FILE=${DATA_PATH}/dbfullbk_`date +%F`.log
MYSQL_PATH=/usr/local/mysql/bin
MYSQL_CMD="${MYSQL_PATH}/mysql -u${MYSQL_USER} -p${MYSQL_PASS} -h${HOST_IP} -P${HOST_PORT} -S ${MAIN_PATH}/mysql.sock"
MYSQL_DUMP="${MYSQL_PATH}/mysqldump -u${MYSQL_USER} -p${MYSQL_PASS} -h${HOST_IP} -P${HOST_PORT} -A -R -S ${MAIN_PATH}/mysql.sock --single-transaction" echo > ${LOG_FILE}
echo -e "====jobs started at `date +%F' '%T' '%w`====\n">>${LOG_FILE} if [ ! -d ${DATA_PATH} ]; then
mkdir -p ${DATA_PATH}
echo -e "===`${DATA_PATH}` does not exsits,created them!" >> ${LOG_FILE}
fi echo -e "**** started postion===:" >>${LOG_FILE}
echo "stop slave SQL_THREAD;"| ${MYSQL_CMD}
show_slave_status echo -e "**** executed command:${MYSQL_DUMP} |gzip > ${DATA_FILE}">>${LOG_FILE}
${MYSQL_DUMP} | gzip >${DATA_FILE}
echo -e "**** execute finished at `date +%F' '%T' '%w`"==== >>${LOG_FILE}
echo -e "**** backup file size:`du -sh ${DATA_FILE}`====\n" >>${LOG_FILE} echo -e "**** recheck position====">>${LOG_FILE}
show_slave_status
echo "start slave SQL_THREAD;" | ${MYSQL_CMD} echo -e "----find expired backup and delete those file ---" >>${LOG_FILE}
for tfile in $(/usr/bin/find ${DATA_PATH} -mtime +30)
do
if [ -d $tfile ] ; then
rmdir $tfile
elif [ -f $tfile ] ; then
rm -f $tfile
fi echo -e "---- delete file :$tfile---" >>${LOG_FILE}
done echo -e "\n===jobs ended at `date +%F' '%T' '%w` ====\n ">>${LOG_FILE}

MySQL 备份脚本--mysqldump在slave 上进行备份的更多相关文章

  1. mysql数据库使用mysqldump工具针对一个数据库备份,使用--databases选项与不使用该参数的区别

    需求描述: 今天在做mysqldump备份某个数据库的试验,在备份某个数据库的时候可以使用 --databases参数,也可以直接进行某个数据库的备份,那么这里记录下两者的区别 操作过程: 1.使用- ...

  2. mysql备份脚本-mysqldump

    背景:全库备份 备份流程: 1.生成DB列表,将DB名字写入文件 2.定义备份函数,结果写入SQL文件 3.压缩文件,减少磁盘占用量 4.设置保留天数,定期删除n天之前的 5.通过for循环读取DB列 ...

  3. 【转】【MySql】脚本备份数据库

    #!/bin/bash #this is a script of mysql backup if [ ! -d /mydata/data1/backup ] ;then mkdir /mydata/d ...

  4. MySQL(十五)之数据备份中mysqldump详解

    前言 其实前面一篇数据备份已经是非常的详细了,这里我想单独的讲解一下mysqldump,相信很多程序员都是用过这个命令的! 一.MySQL数据库的备份与还原 1.1.MySQL数据库备份 1)语法 m ...

  5. 【MySql】脚本备份数据库

    #!/bin/bash #this is a script of mysql backup #Mysql="mysql" #MysqlDump="mysqldump&qu ...

  6. weblogic域备份脚本

    一直一来,由于空间问题,weblogic域很少备份,偶尔会手动备份一次,这运维做得不称职,今天有时间,写个小脚本来定时备份. 1.脚本备份文件目录结构 [weblogic@mylinux ~]$ tr ...

  7. mysql线上一个定时备份脚本

    数据库服务使用的是阿里云的mysql,远程进行定时的全量备份,备份到本地,以防万一.mysql数据库远程备份的数据最好打包压缩: [root@huanqiuPC crontab]# pwd/Data/ ...

  8. 备份 MySQL 的 shell 脚本(mysqldump版本) shell脚本

    #!/bin/bash # 备份 MySQL 的 shell 脚本(mysqldump版本) # 定义变量 user(数据库用户名),passwd(数据库密码),date(备份的时间标签) # dbn ...

  9. linux centeros 通过 innoback 工具备份mysql 5.7 全库并自动压缩zip上传到备份服务器的脚本,附自动清理过期备份

    innoback 安装见连接:https://blog.csdn.net/fanren224/article/details/79693863 脚本解析后续将更新 181024:更新添加定期清理备份的 ...

随机推荐

  1. codeforces 435B

    题意:只能对相邻的两个数字进行交换,允许k次交换,输出交换能得到的最大的数.从最高位开始寻找最优,每次寻找能交换的步数里交换到的最大值进行交换. #include<cstdio> #inc ...

  2. HDU 4004 The Frog's Games(2011年大连网络赛 D 二分+贪心)

    其实这个题呢,大白书上面有经典解法  题意是青蛙要跳过长为L的河,河上有n块石头,青蛙最多只能跳m次且只能跳到石头或者对面.问你青蛙可以跳的最远距离的最小值是多大 典型的最大值最小化问题,解法就是贪心 ...

  3. SGU 106 The equation 扩展欧几里德

    106. The equation time limit per test: 0.25 sec. memory limit per test: 4096 KB There is an equation ...

  4. LAMP环境搭建问题

    //////////////////////////LAMP环境搭建问题///////////////////////////////////////LAMP常见的问题A.安装相关问题(1)MySQL ...

  5. 怎么用API网关构建微服务

    选择将应用程序构建为微服务时,需要确定应用程序客户端如何与微服务交互.在单体应用程序中,只有一组端点.而在微服务架构中,每个微服务都会暴露一组通常是细粒度的端点.在本文中,我们将讨论一下这对客户端与应 ...

  6. Python — 多线程与多进程

    1.多线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位,一个进程可以包含多个线程.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线 ...

  7. 论文笔记 — Learning to Compare Image Patches via Convolutional Neural Networks

    论文: 引入论文中的一句话来说明对比图像patches的重要性,“Comparing patches across images is probably one of the most fundame ...

  8. python如何获取多个excel单元格的值

    一. 获取多个单元格的值报错:AttributeError: 'tuple' object has no attribute 'value' 需要读取的sample.xlsx 代码读取的是A3:B10 ...

  9. Android中字体颜色的设置

    1.在Android中经常看到设置的颜色为八位的十六进制的颜色值,例如: 1 2 3 public static final class color {     public static final ...

  10. Chrome Adobe flash player已过期怎么办

    越来越多的朋友感受到了来自谷歌chrome新版浏览器的压力,因为有不少朋友在使用新版chrome浏览器看视频时,却出现了这样的提示:Adobe flash player已过期!怎么办啊? 有网友抱怨: ...