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

MySQL定时自动备份与自动恢复

阅读更多
需求:主机A每日凌晨三点自动备份dump,然后发送的主机B上。主机B每日凌晨四点自动恢复该dump。

主机A IP:10.180.50.24
主机B IP:10.180.50.23

主机A使用scp命令远程复制到主机B。需要先做密钥互信,具体参见:http://elvis4139.iteye.com/blog/2406401

1、主机A shell脚本:backup.sh
#!/bin/sh 
cd /bak/bakmysql
echo "============MySQL自动备份开始============"

BackFolder=/usr/bak/mysqldump
Now=$(date +"%Y%m%d") 
file=_dump_$Now.sql.gz

echo "[1/5]移动前一日备份文件开始..."
mv *_dump_* $BackFolder
echo "移动前一日备份文件完成"

echo "---------------------------------"

echo "[2/5]数据库scpnf备份开始..."
mysqldump -udump -p'dump' scpnf | gzip > scpnf$file
echo "数据库scpnf备份完成"
echo "---------------------------------"
echo "[3/5]数据库fecs备份开始..."
mysqldump -udump -p'dump' fecs | gzip > fecs$file 
echo "数据库fecs备份完成"
echo "---------------------------------"
echo "[4/5]远程复制数据库备份文件开始..."
scp *$file root@10.180.50.23:/usr/dbbackup
echo "远程复制数据库备份文件完成"
echo "---------------------------------"
echo "[5/5]三天前备份文件清理开始..."
RetainDay=$(date -d -3day  +"%Y%m%d") 
RetainDayFile=_dump_$RetainDay.sql.gz

if [ -f $BackFolder/scpnf$RetainDayFile ] 
then
rm -rf $BackFolder/scpnf$RetainDayFile 
echo "成功删除备份文件scpnf$RetainDayFile"
else
echo "无法找到备份文件scpnf$RetainDayFile"
fi

if [ -f $BackFolder/fecs$RetainDayFile ] 
then
rm -rf $BackFolder/fecs$RetainDayFile 
echo "成功删除备份文件fecs$RetainDayFile"
else
echo "无法找到备份文件fecs$RetainDayFile"
fi

echo "============MySQL自动备份完成============"




2、将主机A shell脚本:backup.sh加入计划任务

vim /etc/crontab

0 3 * * * root /bak/bakmysql/backup.sh


3、主机B自动恢复shell脚本:mysql_restore.sh
####################################################################
#
#说明:每天凌晨4点自动从备份脚本恢复数据库scpnf和fecs库,并删除三天前的备份文件。
#
####################################################################
#!/bin/sh 
cd /usr/dbbackup
echo "======================================"

#备份文件名称
File=_dump_$(date +"%Y%m%d").sql.gz
echo "1/3:数据库[fecs]开始恢复..."
gunzip < fecs$File | mysql -uroot -p'password' fecs
echo "数据库[fecs]恢复成功!"
echo "------------------------------------"

echo "2/3:数据库[scpnf]开始恢复..."
gunzip < scpnf$File | mysql -uroot -p'password' scpnf
echo "数据库[scpnf]恢复成功!"
echo "------------------------------------"

echo "3/3:准备删除三天前的数据备份文件..."
RetainDays=$(date -d -3day  +"%Y%m%d") 

#删除fecs备份文件
if [ -f ./fecs_dump_$RetainDays.sql.gz ] 
then
rm -rf ./fecs_dump_$RetainDays.sql.gz
echo "成功删除文件:fecs_dump_$RetainDays.sql.gz"
else
echo "没有找到备份文件:fecs_dump_$RetainDays.sql.gz"
fi

#删除scpnf备份文件
if [ -f ./scpnf_dump_$RetainDays.sql.gz ] 
then
rm -rf ./scpnf_dump_$RetainDays.sql.gz
echo "成功删除文件:scpnf_dump_$RetainDays.sql.gz"
else
echo "没有找到备份文件:scpnf_dump_$RetainDays.sql.gz"
fi
echo "======================================"


4、将主机B shell脚本:backup.sh加入计划任务

vim /etc/crontab

0 4 * * * root /usr/dbbackup/mysql_restore.sh
分享到:
评论

相关推荐

    mysql数据库自动定时备份

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

    多备份-MySQL数据库自动备份工具 v1.0

    多备份MySQL数据库自动备份工具(windows客户端)是深圳木浪科技开发的一款高效MySQL自动备份和恢复的工具。可以备份网站服务器和本地MySQL数据库,免费授权给大家使用。多备份MySQL数据库自动备份工具的特色1、全面...

    Mysql数据库定时备份

    通过定时备份,可以在数据库发生故障或数据丢失时快速恢复数据,减少损失。 在本文中,我们将介绍三种不同的Mysql数据库定时备份方法,包括手动备份、使用定时任务备份和Java代码添加监听备份。 手动备份 手动...

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

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

    在win10系统中设置定时任务自动备份MySQL数据库文件

    在Windows 10系统中,设置定时任务自动备份MySQL数据库文件是一项重要的数据保护措施,它可以帮助用户定期保存和恢复重要数据。以下是如何实现这一功能的详细步骤和相关知识点。 首先,我们需要了解MySQL数据库的...

    MySQL的自动备份与恢复(mysqlhotcopy)

    本文将详细介绍MySQL数据库的自动备份与恢复策略,特别是在数据库遭到破坏后进行数据恢复的方法,以及如何通过Shell脚本实现整个备份恢复流程的自动化。 ### MySQL自动备份与恢复的重要性 在数据库服务器搭建完成后...

    自动定时备份远程服务器的mysql数据库并存储在本地

    对于远程服务器上的MySQL数据库,定期进行自动备份是防止数据丢失的有效手段。本篇文章将详细介绍如何实现这一目标,将远程服务器的MySQL数据库自动定时备份并存储在本地。 首先,我们需要了解MySQL的数据备份类型...

    mysql自动实现备份脚本

    2. **MySQL自动备份的重要性** - 数据安全:定期备份能防止因硬件故障、软件错误或恶意攻击导致的数据丢失。 - 恢复速度:如果出现问题,可以快速恢复到某个时间点的状态,减少业务中断时间。 - 符合法规:某些...

    linux mysql定时备份脚本

    通过以上步骤,你已经在Linux系统上成功设置了MySQL的自动备份。记得替换脚本中的环境变量,使其符合你的实际配置。定期备份能确保即使遇到硬件故障或意外数据丢失,也能快速恢复到正常状态,从而保护你的数据安全。

    mysql数据库定时备份手册

    通过上述步骤,我们可以实现MySQL数据库的定时自动备份,不仅简化了管理员的工作,还提高了数据的安全性。对于大型数据库来说,建议进一步优化备份策略,比如采用增量备份、多副本冗余等措施,以提高数据恢复的效率...

    mysql 自动备份数据库脚本

    "mysql 自动备份数据库脚本" 提供了一种自动化的方法,通过Windows的定时任务服务(taskschd.msc)来定期执行数据库的备份,避免了手动操作的繁琐和可能的人为错误。 MySQL的自动备份主要涉及以下几个核心知识点: ...

    数据库定时自动备份

    数据库定时自动备份是确保数据安全性和业务连续性的重要策略。在IT行业中,特别是对于依赖大量数据运行的企业,定期备份数据库可以防止数据丢失,减少因硬件故障、软件错误、人为失误或恶意攻击导致的数据灾难。本篇...

    Mysql全量备份与配套恢复脚本,可使用crontab定时自动全量备份

    MySQL全量备份是数据库管理中的重要环节,它能够保护数据免受意外丢失,确保系统在出现故障时可以迅速恢复到正常状态。在这个场景中,我们有两个关键文件:`backup.sh` 和 `restore.sh`,它们分别对应于数据库的备份...

    mysql 定时备份 工具 (windows环境)

    下面将详细介绍如何在Windows上使用工具进行MySQL定时备份。 首先,我们需要一个合适的工具来执行这个任务。在这个场景中,我们讨论的可能是名为`mysqlbak`的工具。`mysqlbak`可能是一个自定义脚本或第三方软件,...

    linux下mysql定时备份

    ### Linux下MySQL定时备份知识点详解 #### 一、概述 在Linux环境中,为了确保...通过以上步骤,即可实现在Linux环境下MySQL数据库的定时自动备份。这不仅有助于保障数据的安全,还能有效提高数据恢复的速度和效率。

    mysql自动备份恢复软件.rar

    MySQL自动备份恢复软件是一款专为Windows用户设计的实用工具,旨在简化MySQL数据库的备份与恢复操作。这款绿色软件无需安装,直接运行即可,且具备高度的灵活性,支持用户自定义备份路径和设置备份周期,使得数据库...

    mysql自动定时备份数据库的方法

    MySQL 自动定时备份数据库的方法 MySQL 是一个流行的开源关系数据库管理系统,随着数据量的增加,数据库的备份变得越来越重要。备份数据库可以保护数据的安全和完整性,避免数据丢失或损坏。MySQL 自动定时备份...

    linux下mysql自动备份

    本文将详细介绍三种常见的MySQL自动备份方法,并讲解如何在Linux下设置执行计划来定时运行这些备份任务。 一、mysqldump命令备份 mysqldump是MySQL官方提供的一个命令行工具,它可以将数据库结构和数据导出为SQL...

Global site tag (gtag.js) - Google Analytics