需求:主机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数据库自动备份工具(windows客户端)是深圳木浪科技开发的一款高效MySQL自动备份和恢复的工具。可以备份网站服务器和本地MySQL数据库,免费授权给大家使用。多备份MySQL数据库自动备份工具的特色1、全面...
通过定时备份,可以在数据库发生故障或数据丢失时快速恢复数据,减少损失。 在本文中,我们将介绍三种不同的Mysql数据库定时备份方法,包括手动备份、使用定时任务备份和Java代码添加监听备份。 手动备份 手动...
下面将详细介绍如何在Windows上使用工具进行MySQL定时备份。 首先,我们需要一个合适的工具来执行这个任务。在这个场景中,我们讨论的可能是名为`mysqlbak`的工具。`mysqlbak`可能是一个自定义脚本或第三方软件,...
在Linux环境下进行MySQL数据库的日常自动备份是一项重要的维护工作,它能够确保数据的安全性与完整性。本文将详细介绍如何通过编写Shell脚本并结合Cron定时任务来实现MySQL数据库的每日自动备份。 #### 一、准备...
本文将详细介绍MySQL数据库的自动备份与恢复策略,特别是在数据库遭到破坏后进行数据恢复的方法,以及如何通过Shell脚本实现整个备份恢复流程的自动化。 ### MySQL自动备份与恢复的重要性 在数据库服务器搭建完成后...
对于远程服务器上的MySQL数据库,定期进行自动备份是防止数据丢失的有效手段。本篇文章将详细介绍如何实现这一目标,将远程服务器的MySQL数据库自动定时备份并存储在本地。 首先,我们需要了解MySQL的数据备份类型...
2. **MySQL自动备份的重要性** - 数据安全:定期备份能防止因硬件故障、软件错误或恶意攻击导致的数据丢失。 - 恢复速度:如果出现问题,可以快速恢复到某个时间点的状态,减少业务中断时间。 - 符合法规:某些...
通过以上步骤,你已经在Linux系统上成功设置了MySQL的自动备份。记得替换脚本中的环境变量,使其符合你的实际配置。定期备份能确保即使遇到硬件故障或意外数据丢失,也能快速恢复到正常状态,从而保护你的数据安全。
通过上述步骤,我们可以实现MySQL数据库的定时自动备份,不仅简化了管理员的工作,还提高了数据的安全性。对于大型数据库来说,建议进一步优化备份策略,比如采用增量备份、多副本冗余等措施,以提高数据恢复的效率...
"mysql 自动备份数据库脚本" 提供了一种自动化的方法,通过Windows的定时任务服务(taskschd.msc)来定期执行数据库的备份,避免了手动操作的繁琐和可能的人为错误。 MySQL的自动备份主要涉及以下几个核心知识点: ...
数据库定时自动备份是确保数据安全性和业务连续性的重要策略。在IT行业中,特别是对于依赖大量数据运行的企业,定期备份数据库可以防止数据丢失,减少因硬件故障、软件错误、人为失误或恶意攻击导致的数据灾难。本篇...
MySQL全量备份是数据库管理中的重要环节,它能够保护数据免受意外丢失,确保系统在出现故障时可以迅速恢复到正常状态。在这个场景中,我们有两个关键文件:`backup.sh` 和 `restore.sh`,它们分别对应于数据库的备份...
### Linux下MySQL定时备份知识点详解 #### 一、概述 在Linux环境中,为了确保...通过以上步骤,即可实现在Linux环境下MySQL数据库的定时自动备份。这不仅有助于保障数据的安全,还能有效提高数据恢复的速度和效率。
在Windows 10系统中,设置定时任务自动备份MySQL数据库文件是一项重要的数据保护措施,它可以帮助用户定期保存和恢复重要数据。以下是如何实现这一功能的详细步骤和相关知识点。 首先,我们需要了解MySQL数据库的...
MySQL自动备份恢复软件是一款专为Windows用户设计的实用工具,旨在简化MySQL数据库的备份与恢复操作。这款绿色软件无需安装,直接运行即可,且具备高度的灵活性,支持用户自定义备份路径和设置备份周期,使得数据库...
本文将详细介绍如何在CentOS7上设置MySQL定时自动备份,以及如何清理过期的备份文件。 首先,我们需要创建一个用于存放备份文件的目录,例如`/data/backup/mysql`,并创建一个用于执行备份操作的脚本,例如`mysql_...
MySQL 自动定时备份数据库的方法 MySQL 是一个流行的开源关系数据库管理系统,随着数据量的增加,数据库的备份变得越来越重要。备份数据库可以保护数据的安全和完整性,避免数据丢失或损坏。MySQL 自动定时备份...