mysql备份脚本(shell)

mysql数据库shell备份脚本

任何项目的运行都离不开数据,持久化数据对于一个企业尤为重要,任何时候都不可掉以轻心,下面是我自己写的一个shell脚本,用来备份数据,分享给大家。

#!/bin/bash
# 数据库连接信息
MY_user=""
MY_pass=""
MY_port="3306"

# 环境变量
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/data/mysql_57/bin
export PATH
MY_data=`date "+%F"`

# 脚本日志
SHELL_LOG="/root/mysql_bak.sh.log"

# mysql 目录
Mysql_datadir="/data/mysql_57"
Mysql_Binlog_dir="/data/mysql_57/logs/bin-log"

# 备份目录
Bak_dir="/root/mysql_data"
Full_dir=${Bak_dir}/full  # 全量备份目录
DB_dir=${Bak_dir}/db  # 单库备份目录
Binlog_dir=${Bak_dir}/binlog  # 增量二进制备份目录

# Write Log
shell_log(){
    LOG_INFO=$1
    echo "$(date "+%F") $(date "+%T") : $0 : ${LOG_INFO}" >> ${SHELL_LOG}
}
case $1 in
# 全量备份
Full)
    mysqldump -u${MY_user} -p${MY_pass} -P${MY_port} -A -B -F -R -x --events|gzip > ${Full_dir}/${MY_data}_all.sql.gz
    if [[ $? -eq 0 ]];then
        shell_log "SUCCESS: mysql Full database bak is success"
    else
        shell_log "ERROR: mysql Full database bak error"
    fi
;;
# 单库备份
db)
    db_fun(){
        DB_name=$1
        mysqldump -u${MY_user} -p${MY_pass} -P${MY_port} -F -B  ${DB_name}|gzip > ${DB_dir}/${MY_data}_${DB_name}.sql.gz
        if [[ $? -eq 0 ]];then
            shell_log "SUCCESS: mysql database ${DB_name} bak is success"
        else
            shell_log "ERROR: mysql database ${DB_name} bak error"
        fi
    }
    db_fun cadavertrace
;;
# 增量备份(全量和单库备份都会刷新二进制日志)
increment)
    cd ${Mysql_Binlog_dir}
    binlog=`ls -At mysql-bin* | head -n 1`
    gzip -c ${binlog} > ${Binlog_dir}/${binlog}.gz
    mysql -u${MY_user} -p${MY_pass} -P${MY_port} -e "flush logs;" 2> /dev/null
;;
*)
    echo "ERROR: Usage: mysqlbak [ Full | db | increment ]"
;;
esac
#if [[ $# -eq 0 ]];then
#   echo "Invalid paramete;Full | db | increment"
#fi

原文地址:https://blog.51cto.com/11962757/2455309

时间: 2024-11-05 23:27:11

mysql备份脚本(shell)的相关文章

mysql 备份脚本(xtrabackup)

mysql备份脚本,记录一下: 全备: #!/bin/sh  set -x                                                             USER=root  PASSWORD=123456 time=`date +"%y-%m-%d-%H-%M"`   date >> /data/mysqlbackup/logs/$time'_allbackup.log'    #1 begin Full Backups  ech

Windows下MySQL备份脚本

1 @echo off 2 rem MySQL备份脚本 支持全备份 3 rem 增量备份需要MySQL服务加--log-bin参数执行 4 rem 数据还原 mysql -u root -p < backup.sql 5 rem ===================== 6 rem 全局变量 7 set dump=mysqldump.exe 8 set rand=%random% 9 rem ===================== 10 11 rem 检测MySQL路径是否添加到PATH变

线上MySQL备份脚本

最近在研究数据库备份,定时执行备份任务,这里直接把备份脚本设置为crontab命令定时执行,脚本内容如下: [[email protected] ~]# cat mysql-backup.sh #!/bin/bash dbpwd='possw0rd123' dbuser=root host=127.0.0.1 port=3306 dbarg=" -u$dbuser -p$dbpwd -h$host -P$port --default-character=utf8 " DATE=`dat

xtrabackup的mysql备份脚本

一.安装xtrabackup工具 安装方法见:xtrabackup安装 二.配置备份脚本 1.拷贝mysql_backup_shell到mysql业务服务器目录,比如:/data/backup_shell/mysql_backup_shell 2.进入拷贝后mysql_backup_shell所在目录, 然后执行chmod 777 mysql_backup.sh 3.修改backup.conf 需要修改的项: mysql_conf_file=/usr/local/meb/my.cnf.3309

基于Innobackupex的MySQL备份脚本

Innobackupex是Xtrabackup的一部分,其实质也是调用xtrabackup.主要的不同是Xtrabackup除了支持innodb引擎外还支持xtradb引擎.本文主要封装了Innobackupex到shell脚本进行定期备份,供大家参考. 1.脚本描述a.支持增量备份以及全备b.需要传递到备份脚本(如备份路径,连接相关参数等)c.基于周日,周三的全量备份,其他增量备份d.可根据需要调整脚本,比如压缩备份的文件夹以及rsync等 2.脚本内容 ###################

mysql备份脚本

对extmail数据库进行每天01:00完全热备份,并可以完全恢复! 一.先建立备份脚本,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 vi mysql_extmail_bak.sh #!/bin/bash # Program #    use mysqldump to Fully backup mysql data per week! BakDir=/mysqlback#要备份到的目录 LogFile=/var/log/bak.log#备份记录日志

mysql 备份脚本以及定时任务

数据是企业最宝贵的资源,作为运维人员备份数据库的数据是特别重要的一项工作,以下是个人查找资料以及个人总结所记录的mysql数据库备份脚本,记录在此作为学习和复习笔记. (1)分库备份脚本 #/bin/sh #version 0.1 MYUSER=root MYPASS=123123 #SOCKET=/data/3306/mysql.sock MYLOGIN="mysql -u$MYUSER -p$MYPASS " MYDUMP="mysqldump -u$MYUSER -p$

两套mysql备份脚本

数据备份其重要性无需多言,再细想一步,我们至少需要两种备份:一种逻辑备份(mysqldump生成sql文件):一种物理备份(xtrabackup可很好完成).逻辑备份在出问题时能提供更细粒度的恢复和对比:物理备份在整库范围的数据恢复或者增加从库方面有着更高额效率. 首先看下逻辑备份脚本,比较简单 #!/bin/sh ###每天运行一次 ###定义用户 密码 备份目录等信息 user=mysqldump psd=mysqldump backup_base=/data/mysql_backup da

mysql备份脚本及备份失败报警

[[email protected] myfile]# cat mysqlback_zabbix.sh  #!/bin/bash USER=root DB=zabbix #PASSWORD=123456 SERVER=172.16.9.129 DIR_HOME=/vol/myfile/mysql_$SERVER LOG_FILE=$DIR_HOME/logs/mysqlback.log if [ ! -d $DIR_HOME ];then mkdir $DIR_HOME ;fi if [ ! -