当前位置:首页 > MySQL
Linux 系统下 MySQL 数据库的自动备份和手工恢复
来源:靑龍一笑的博客  作者:靑龍一笑  发布时间:2014-05-10 10:34:57  点击量:1122  评论:0

一、自动备份

    1、创建数据库备份目录:

[root@RicenOS ricen_file]# mkdir -pv /usr/ricen_file/dbBackUp

    2、编写数据库自动备份脚本:

[root@RicenOS ricen_file]# vi autobackupmysql.sh

    内容如下:

#!/bin/bash
# 作者:靑龍一笑(C.S.Ricen)
# 功能:对 MySQL 数据库进行备份
#
# 指定数据库备份目录
Backup_DB_HOME="/usr/ricen_file/dbBackUp"
# 数据库连接帐号、密码
DB_User="root"
DB_Pass="webDB0918"
# 数据库备份程序
DB_Dump="/usr/local/mysql/bin/mysqldump"
# 备份的数据库列表
DB_Backup_List="/usr/ricen_file/db.list"
# 当前时间
CUR_TIME=`date +%Y%m%d`
# 备份文件保留天数
SAVE_DAYS=15
# 检查备份命令
if [ ! -f $DB_Dump ]; then
        echo "错误:mysqldump 命令不存在!"
        exit 1
fi
# 检查数据库列表
if [ ! -f $DB_Backup_List ]; then
        echo "错误:数据库列表不存在!"
        exit 1
fi
# 检查数据库备份目录
if [ ! -d $Backup_DB_HOME ]; then
        mkdir -p $Backup_DB_HOME
fi
# 备份数据库
cat $DB_Backup_List | while read line
do
        DB_NAME=$line
        # 打包后的文件
        DB_FILE="$Backup_DB_HOME/$DB_NAME-$CUR_TIME.sql.gz"
        # 开始备份数据库
        $DB_Dump -u$DB_User -p$DB_Pass --hex-blob --triggers --events --routines $DB_NAME | gzip > $DB_FILE
done
# 删除备份文件
find $Backup_DB_HOME -mtime +$SAVE_DAYS -exec rm {} \;
exit 0

    3、编写需要备份的数据库列表:

[root@RicenOS ricen_file]# vi db.list

    内容如下:

dis
search

    其中,dis、search 是需要备份的数据库名,每行指定一个。
    4、给数据库自动备份脚本赋予可执行权限:

[root@RicenOS ricen_file]# chmod +x autobackupmysql.sh

    5、创建一个 crontab:

[root@RicenOS ricen_file]# vi autobackupcron

    内容如下:

0 3 * * * /usr/ricen_file/autobackupmysql.sh

    其中,第一列为分钟,第二列为小时,第三列为日期,第四列为月份,第五列为星期,第六列为要执行的命令。
    6、提交 crontab:

[root@RicenOS ricen_file]# crontab autobackupcron

    查看 crontab 的命令如下:

[root@RicenOS ricen_file]# crontab -l

    编辑 crontab 的命令如下:

[root@RicenOS ricen_file]# crontab -e

    删除 crontab 的命令如下:

[root@RicenOS ricen_file]# crontab -r

二、手工恢复

    1、进入到数据库备份目录,解压要恢复的数据库备份:

[root@RicenOS ricen_file]# cd dbBackUp/
[root@RicenOS dbBackUp]# gunzip dis-20140510.sql.gz 

    2、登录 MySQL 数据库:

[root@RicenOS dbBackUp]# mysql -uroot -pwebDB0918

    3、选择要恢复的数据库:

mysql> use dis

    4、执行数据库恢复操作:

mysql> source /usr/ricen_file/dbBackUp/dis-20140510.sql
版权所有 © 2005-2023 靑龍一笑的博客  Powered by C.S.Ricen
Copyright © 2005-2023 by www.ricensoftwares.com.cn  All Rights Reserved.

欢迎光临本站,这里是靑龍一笑的博客。

因资金匮乏,本站已迁到国外的免费空间,可能导致本站的访问速度较慢,由此给您带来的不便,敬请谅解。

您可以通过下方的“支持本站建设”链接,给本站提供资金支持。

Free Web Hosting