`

linux 备份Mysql数据库shell

阅读更多
欢迎拍砖,详细内容如下:


# MYSQL 数据文件路径
MYSQL_DATA_PATH="/usr/local/mysql/data/"

# 备份目录
MYSQL_DUMP_PATH="***/DB/"

# 备份用户名
MYSQL_ACCOUNT="mysql_backup"

# 备份密码
MYSQL_PASSWORD="mysql_backup"

MYSQLDUMP_OPTS="mysqldump -u$MYSQL_ACCOUNT -p$MYSQL_PASSWORD --single-transaction"

# 压缩命令  bzip2 -k 保留源文件
TAR_OPTS="bzip2 "

# 单个数据库进行备份
function BackDB(){
        FULLPATH="$1"

        #遍历目录
        for dbName in $(/bin/ls $FULLPATH)
        do
                # check is database
                fileType=`/usr/bin/file $FULLPATH$dbName | /bin/awk '{FS=":"} {printf $2}'`

                # 文件夹的类型为directory
                if [ "directory" == $fileType ]; then
                        # start dump
                        if [ "$dbName" == "mysql" ] \
                                || [ "$dbName" == "test" ] \
                                || [ "$dbName" == "information_schema" ] \
                                || [ "$dbName" == "performance_schema" ]; then
                                echo "------------->$dbName not need dump!!"
                        else
                                echo $dbName

                                dumpName=$MYSQL_DUMP_PATH/"$dbName"_"$DATESTR"
                                $MYSQLDUMP_OPTS $dbName > "$dumpName".sql

                                # 压缩备份档
                                $TAR_OPTS "$BACKUP_NAME".sql
                        fi
                else
                        printf '%s is not database            ######## \n' $dbName
                fi
        done
}

# 每个数据表单独备份
function BackDBTB(){
        FULLPATH="$1"

        #遍历目录
        for fName in $(/usr/bin/find $FULLPATH -name "*.ibd")
        do
                dbPath=`echo "$fName" | /bin/awk 'BEGIN {FS="'$FULLPATH'"} {printf $2}'`
                # get database name
                dbName=`echo "$dbPath" | /bin/awk 'BEGIN {FS="/"} {printf $1}'`
                # get table name
                tbName=`echo "$dbPath" | /bin/awk 'BEGIN {FS="/"} {printf $2}'`

                # start dump
                if [ "$dbName" == "mysql" ]\
                        || [ "$dbName" == "test" ] \
                        || [ "$dbName" == "information_schema" ] \
                        || [ "$dbName" == "performance_schema" ]; then
                        echo "------------->$dbName not need dump!!"
                else
                        echo $dbName $tbName

                         dumpName=$MYSQL_DUMP_PATH/"$dbName"_"$tbName"_"$DATESTR"
                        $MYSQLDUMP_OPTS $dbName $tbName > "$dumpName".sql

                        # 压缩备份档
                        $TAR_OPTS "$dumpName".sql
                fi
        done
}

0
0
分享到:
评论

相关推荐

    Linux下定时备份MySQL数据库的Shell脚本.pdf

    ### Linux下定时备份MySQL数据库的Shell脚本知识点详解 #### 一、背景介绍与重要性 对于每一个在线网站或服务而言,数据备份是一项至关重要的任务。无论是为了应对未来的版本升级,还是服务器迁移的需求,定期备份...

    Linux下mysql数据库备份以及恢复shell脚本

    总结,通过编写和使用`databackup.sh`和`datarestore.sh`这样的Shell脚本,Linux用户可以方便地对MySQL数据库进行自动化备份和恢复,确保在系统故障或数据丢失时能够迅速恢复服务,保障业务连续性。这两个脚本是IT...

    如何在linux下实现mysql数据库每天自动备份 txt

    ### 如何在Linux下实现MySQL数据库每天自动备份 在Linux环境下进行MySQL数据库的日常自动备份是一项重要的维护工作,它能够确保数据的安全性与完整性。本文将详细介绍如何通过编写Shell脚本并结合Cron定时任务来...

    linux系统 备份所有mysql数据库shell脚本

    linux服务器上,自己做所有数据库备份脚本方法,先打包在保存

    Linux下清理数据库shell脚本

    综上所述,"Linux下清理数据库shell脚本"涉及了Linux系统管理、数据库备份策略、shell脚本编程、任务调度和错误处理等多个方面。通过编写这样的脚本,我们可以实现自动化运维,提高工作效率,同时保障数据的安全性和...

    MySQL(Docker) 自动备份 Shell 脚本

    今天这个备份分二个版本一个是linux上直接安装的mysql,另一种是docker上安装的mysql。基本操作都一样只是备份sql语句不同而已。可以选择设置需要备份的库,自动备份压缩,自动删除 7 天前的备份,需要使用 crontab ...

    Linux shell实现每天定时备份mysql数据库

    在Linux环境中,使用shell脚本来实现每天定时备份MySQL数据库是一种常见的自动化操作,它可以帮助系统管理员高效地维护数据库的备份策略,确保数据的安全性。以下将详细介绍如何通过Linux shell实现这个功能。 首先...

    shell编程备份mysql数据库.sh

    防止误删服务器数据库 ,使用Shell脚本备份数据库: ### 1、需求分析: 1)每天凌晨2:10备份数据库atguiguDB到/data/backup/db 2)备份开始和备份结束能够给出相应的提示信息 3)备份后的文件要求以备份时间为...

    Linux系统Mysql数据库的备份和还原.pdf

    首先,备份MySQL数据库通常使用`mysqldump`工具,这是一个命令行实用程序,可以用来备份整个数据库或单个表。在描述中,我们看到备份过程分为几个步骤: 1. **登录MySQL**:通过输入`mysql -u root -p`命令,其中`...

    mysql数据库备份shell脚本,每天备份,只保留30天的备份数据

    mysql数据库备份shell脚本,每天备份,只保留30天的备份数据

    mysql数据库自动定时备份

    MySQL数据库的自动定时备份是数据库管理中的重要环节,它确保了数据的安全性和可恢复性,尤其是在发生意外情况如系统故障、硬件损坏或人为错误时。本教程将详细讲解如何设置MySQL数据库的自动定时备份,包括步骤、所...

    Linux自动备份MySQL数据库并上传到FTP服务器上shell脚本

    ### Linux自动备份MySQL数据库并上传到FTP服务器上Shell脚本详解 #### 一、脚本概述 本脚本主要用于在Linux环境下实现MySQL数据库的自动备份,并将备份文件上传至指定的FTP服务器。对于需要定期备份MySQL数据库的...

    linux下mysql数据库备份脚本

    在Linux环境中,MySQL数据库的备份是系统运维工作中的重要环节,确保数据安全和业务连续性。本文将详细解析一个Linux下的MySQL数据库备份脚本,包括其功能、原理以及使用方法。 首先,我们要明白Linux下的备份脚本...

    mysql数据库每天凌晨3点备份数据库的脚本

    本文将详细介绍如何编写一个在Linux环境下,每天凌晨3点自动执行的MySQL数据库备份脚本,以及如何配置Linux的定时任务来执行这个脚本。 首先,我们来看`DB_backup.sh`这个脚本文件。它通常包含以下核心部分: 1. *...

    shell脚本可配置多线程备份mysql5.7.8以后数据库.rar

    在本例中,shell脚本用于控制多线程备份MySQL数据库的过程。 多线程备份的关键在于并发执行,这意味着多个备份任务可以同时进行,从而缩短总备份时间。在MySQL 5.7.8之后的版本中,可以通过`mysqldump`命令来导出...

    通过shell脚本,备份mysql数据库

    linux系统通过shell脚本,备份mysql数据库,并通过定时任务的配置,每天在设定的时间内执行备份计划

    linux下数据库备份脚本

    在linux下方便的备份mysql数据库的脚本。

    linux下MYSQL数据库的备份脚本

    本文将详细介绍一个在Linux环境下用于MySQL数据库备份的Shell脚本。该脚本实现了自动化的数据库备份功能,并利用了Cron作业来定时执行备份任务。通过该脚本,用户可以轻松地对MySQL数据库进行定期备份,同时保留最近...

    Linux MySQL数据库本地备份及异地备份

    在IT行业中,数据库管理是至关重要的任务,尤其是对于运行在Linux环境下的MySQL数据库。本地备份与异地备份都是保障数据安全的重要策略。以下是对标题和描述中提到的知识点的详细解释: 1. **MySQL数据库备份**:...

Global site tag (gtag.js) - Google Analytics