`
AllenHU0320
  • 浏览: 83194 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysqldump自动化备份脚本

 
阅读更多

my.cnf文件中添加

[mysqldump]

user=system

password=123456

[client]

user=system

password=123456

库级备份

[mysql@mysql1 scripts]$ more /data/mysqldata/scripts/mysql_full_backup.sh

#!/bin/bash

#create by allen

source /data/mysqldata/scripts/mysql_env.ini

DATA_PATH=/data/mysqldata/backup/mysql_full

DATA_FILE=${DATA_PATH}/dbfullbak_`date +%F`.sql.gz

LOG_FILE=${DATA_PATH}/dbfullbak_`date +%F`.log

MYSQL_PATH=/usr/local/mysql/bin

MYSQL_DUMP="${MYSQL_PATH}/mysqldump -S /data/mysqldata/${HOST_PORT}/mysql.sock -A -R -x --default-character-set=utf8"

#A导出所有数据库,R导出存储过程、函数等定义好的MySQL程序,x在导出任务执行期间锁定所有表

echo > ${LOG_FILE}

echo -e "=== Jobs started at `date +%F' '%T' '%w` ===\n" >> ${LOG_FILE}

echo -e "*** Executed command:${MYSQL_DUMP} | gzip > ${DATA_FILE}" >> ${LOG_FILE}

${MYSQL_DUMP} | gzip > ${DATA_FILE}

echo -e "*** Executed finished at `date +%F' '%T' '%w` ===" >> ${LOG_FILE}

echo -e "*** Backup file size:`du -sh ${DATA_FILE}` ===\n" >> ${LOG_FILE}

echo -e "--- Find expired backup and delete those files ---" >> ${LOG_FILE}

for tfile in $(/usr/bin/find $DATA_PATH -mtime +6)

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@mysql1 scripts]$ more mysql_full_backup_by_table.sh

#!/bin/bash

#create by allen

source /data/mysqldata/scripts/mysql_env.ini

DATA_PATH=/data/mysqldata/backup/mysql_full_bytables

DATA_FILE=${DATA_PATH}/dbfullbak_by_tables_`date +%F`.sql.gz

LOG_FILE=${DATA_PATH}/dbfullbak_by_tables_`date +%F`.log

MYSQL_PATH=/usr/local/mysql/bin

MYSQL_CMD="${MYSQL_PATH}/mysql -u${MYSQL_USER} -p${MYSQL_PASS} -S /data/mysqldata/${HOST_PORT}/mysql.sock"

MYSQL_DUMP="${MYSQL_PATH}/mysqldump -S /data/mysqldata/${HOST_PORT}/mysql.sock --single-transaction -l"

# single-transaction -l对于支持多版本的存储引擎InnoDB,在导出时会建立一致性的快照

echo > ${LOG_FILE}

echo -e "=== Jobs started at `date +%F' '%T' '%w` ===\n" >> ${LOG_FILE}

 

for dbs in `${MYSQL_CMD} -e "show databases" | sed '1d' | egrep -v "information_schema|mysql|performance_schema"`

do

         mkdir -p ${DATA_PATH}/${dbs}

         echo -e "*** Database:${dbs} Backup Start_Time:`date +%F' '%T' '%w` ***\n" >> ${LOG_FILE}

         for tbls in `${MYSQL_CMD} -D ${dbs} -e "show tables" | sed '1d'`

         do

                   echo -e "   ### Begin ${dbs}.${tbls} Dump! Start_Time:`date +%F' '%T`" >> ${LOG_FILE}

                   echo -e "   Execute Command:${MYSQL_DUMP} --tables ${dbs} ${tbls} | gzip > ${DATA_PATH}/${dbs}/${db

s}_${tbls}.sql.gz" >> ${LOG_FILE}

                   ${MYSQL_DUMP} --tables ${dbs} ${tbls} | gzip > ${DATA_PATH}/${dbs}/${dbs}_${tbls}.sql.gz

                   echo -e "   ### End ${dbs}.${tbls} Dump! Stop_Time:`date +%F' '%T` \n" >> ${LOG_FILE}

                   echo >> ${LOG_FILE}

         done

         echo -e "*** Database:${dbs} Backup Stop_Time:`date +%F' '%T' '%w` ***\n" >> ${LOG_FILE}

         echo -e "*** Backup file size:`du -sh ${DATA_PATH}/${dbs}` ***\n" >> ${LOG_FILE}

done

echo -e "--- Find expired backup and delete those files ---" >> ${LOG_FILE}

for tfile in $(/usr/bin/find $DATA_PATH -mtime +6)

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}

脚本目前设定了自动过滤mysqlinformation_shemaperformance_schema三个库中的表对象,这3个库都属于系统库,其中的对象通常不需要单独处理。可根据实际情况,对脚本进行调整,更好地支持自己的备份和恢复策略。

分享到:
评论

相关推荐

    pyxtra:xtrabackup 备份还原自动化脚本

    pyxtraxtrabackup 备份还原自动化脚本使用说明:chmod a+x pyxtra.py使用root用户执行,否则请确保对相关目录有读写执行权限将备份还原到远程,需开启服务免密登录需安装 rsynceg:全量备份./pyxtra.py backup --type...

    使用Xtrabackup进行MySQL备份

    支持完整备份、增量备份,且能非常简单的集成在shell脚本中,执行自动化备份,也可以通过管道方便的传递到另一台服务器,实为Mysql数据库备份,重放的首选利器。 文章主要讲解MySQL利用xtrabackup进行增量备份的详细...

    mysql官方中文参考手册

    8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    05-mysql单多表的备份实战及脚本批量备份讲解.avi 06-只备份MySQL表结构及只备份MySQL数据.avi 07-企业生产场景不同引擎备份命令参数详解.avi 08-利用source恢复mysql数据讲解及实战.avi 09-分库备份后mysql如何分库...

    MySQL 5.1参考手册

    8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释...

    MySql 5.1 参考手册.chm

    8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误...

    MYSQL培训经典教程(共两部分) 2/2

    MySQL的安装 27 2.1 MYSQL系统的安装布局 28 2.1.1 二进制安装 28...化授权表 33 2.3.3 测试服务器是否工作 34 2.3.4 自动运行和停止MySQL 36 2.3.5 更改root用户的密码 38 2.3.6 修改选项文件 38...

    MYSQL培训经典教程(共两部分) 1/2

    MySQL的安装 27 2.1 MYSQL系统的安装布局 28 2.1.1 二进制安装 28...化授权表 33 2.3.3 测试服务器是否工作 34 2.3.4 自动运行和停止MySQL 36 2.3.5 更改root用户的密码 38 2.3.6 修改选项文件 38...

    MySQL 5.1中文手冊

    8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误...

    MySQL 5.1参考手册 (中文版)

    8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误...

    MYSQL中文手册

    8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释...

    MySQL 5.1参考手册中文版

    8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释...

    MySQL5.1参考手册官方简体中文版

    8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误...

    MySQL 5.1官方简体中文参考手册

    8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误...

    php网络开发完全手册

    4.2.5 获得本地化时间戳的函数mktime 64 4.2.6 输出控制函数flush 65 4.2.7 变量检测函数isset与变量释放 4.2.7 函数unset 66 4.2.8 随机函数rand与srand 66 4.3 关于引用的解释 67 4.3.1 对变量的引用 67 4.3.2 对...

    mysql5.1中文手册

    mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror...

    cmd操作命令和linux命令大全收集

    start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令 mem 查看cpu使用情况 attrib 文件名(目录名) 查看某文件(目录)的属性 attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉...

Global site tag (gtag.js) - Google Analytics