Mysql备份策略大概可分为4种:
1) 直接拷贝数据库文件(不推荐)
2) 使用mysqlhotcopy备份数据库
3) 使用mysqldump备份数据库
4) 使用主从复制机制(replication)(实现数据库实时备份)
一般mysqldump使用比较广泛,操作也方便,下面就具体描述mysqldump备份策略。
数据备份分为三步:
1) 定时导出备份数据库并打包成gz压缩包 (Linux shell 脚本 + crontab)
mysqlFullBackup.sh
#!/bin/sh
# Use mysqldump --help get more detail.
#
# 定义变量,请根据具体情况修改
# 定义脚本目录
scriptsDir=`pwd`
# 定义用于备份数据库的用户名和密码
user=root
userPWD=123456
# 定义备份数据库名称
dbNames=(database1 database2 database3)
# 定义备份目录
dataBackupDir=/home/zhanghuihua/backup
# 定义邮件正文文件
eMailFile=$dataBackupDir/log/email.txt
# 定义邮件地址
eMail=Huihua.Zhang@quidos.co.uk
# 定义备份日志文件
logFile=$dataBackupDir/log/mysqlbackup.log
# DATE=`date -I`
DATE=`date -d "now" +%Y%m%d`
echo `date -d "now" "+%Y-%m-%d %H:%M:%S"` > $eMailFile
for dbName in ${dbNames[*]}
do
# 定义备份文件名
dumpFile=$dataBackupDir/db/$dbName-$DATE.sql.gz
# 使用mysqldump备份数据库,请根据具体情况设置参数
mysqldump -u$user -p$userPWD $dbName | gzip > $dumpFile
done
if [[ $? == 0 ]]; then
echo "DataBase Backup Success!" >> $eMailFile
else
echo "DataBase Backup Fail!" >> $emailFile
fi
# 写日志文件
echo "================================" >> $logFile
cat $eMailFile >> $logFile
echo $dumpFile >> $logFile
# 发送邮件通知
#cat $eMailFile | mail -s "MySQL Backup" $eMail
2) 通过ftp 服务定时下载到本地 (Linux shell 脚本 + crontab)
或从服务器上备份数据库到ftp 服务器 (Linux shell 脚本 + crontab)
ftpDownload.sh
#!/bin/bash
# 定义变量
DATE=`date -d "now" +%m%d%y`
ftpServer=192.168.1.103
ftpUser=zhanghuihua
ftpPasswd=123456
remoteDir=/backup/db
localDir=/home/zhanghuihua/backup
#开始ftp操作
/usr/bin/ftp -niv <<!
open $ftpServer
user $ftpUser $ftpPasswd
binary
cd $remoteDir
lcd $localDir
mget database1-$DATE.sql.gz
mget database2-$DATE.sql.gz
mget database3-$DATE.sql.gz
bye
!
dbPutToFtp.sh
#!/bin/bash
# 定义变量
DATE=`date -d "now" +%Y%m%d`
ftpServer=192.168.1.103
ftpUser=zhanghuihua
ftpPasswd=123456
remoteDir=/backup/db
localDir=/home/zhanghuihua/backup/db
#开始ftp操作
/usr/bin/ftp -niv <<!
open $ftpServer
user $ftpUser $ftpPasswd
binary
cd $remoteDir
lcd $localDir
mput database1-$DATE.sql.gz
mput database2-$DATE.sql.gz
mput database3-$DATE.sql.gz
bye
!
3) 定期刻录光盘 (人工操作)
3) 定期刻录光盘 (人工操作)
Crontab 定时任务管理
crontab -e
01 03 * * * /var/proftpd_data/backup/bin/mysqlFullBackup.sh
10 04 * * * /var/proftpd_data/backup/bin/ftpDownload.sh
前五个字段的整数取值范围及意义是:
0~59 表示分
1~23 表示小时
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)
分享到:
相关推荐
### Linux下定时备份MySQL数据库的Shell脚本知识点详解 #### 一、背景介绍与重要性 对于每一个在线网站或服务而言,数据备份是一项至关重要的任务。无论是为了应对未来的版本升级,还是服务器迁移的需求,定期备份...
《Xtrabackup备份与恢复:Shell脚本详解》 ...总结,Xtrabackup结合Shell脚本提供了一套强大的MySQL备份恢复解决方案,能够应对各种复杂的业务场景。理解并熟练掌握这一工具,对于保障数据库的安全运行具有重要意义。
本文将详细介绍如何利用shell脚本来创建MySQL的定时备份,并结合提供的"mysqlbackup.sh"脚本和"添加定时任务.txt"文件,帮助你实现这一功能。 首先,我们来看"mysqlbackup.sh"这个shell脚本。这个脚本通常包含以下...
本文将详细介绍如何通过编写Shell脚本并结合Cron定时任务,在Linux服务器上自动完成MySQL数据库的每日定时备份,并且只保留最近五天的备份文件。 #### 一、创建备份存储文件夹 首先,在Linux服务器上创建用于存储...
标题中的"mysql定时备份(linux脚本)"指的是一个使用Linux shell编写的脚本,用于自动执行MySQL数据库的备份任务。这个脚本通常会包含以下几个关键部分: 1. **连接信息**:包括MySQL服务器的IP地址、端口、用户名和...
MySQL数据迁移是一个重要的...总结来说,通过编写Shell脚本自动化MySQL数据迁移,我们可以提高效率,减少错误,并实现定制化的迁移策略。理解这些基本原理和操作后,你可以根据自己的需求创建适应各种情况的迁移脚本。
为了备份MySQL数据库,我们通常使用`mysqldump`工具,它是一个非常有效的命令行工具,专门用于导出MySQL服务器的数据。Shell脚本中,可以使用这个命令来进行数据库的全量备份。 脚本内容展示了如何利用`mysqldump`...
本文将详细讲解如何使用Shell脚本实现对数据库的定时备份,以及涉及到的相关技术。 首先,Shell脚本是Unix/Linux操作系统中的一种强大的命令行解释器,它允许用户编写自动化任务,例如执行一系列命令、处理文件或...
综上所述,`cron_update.sh`脚本是数据库管理自动化的一个实例,通过shell脚本语言实现了对前一天数据的备份和删除,借助Linux的cron服务实现了定时执行,提高了数据管理的效率和安全性。正确配置和使用这样的脚本...
在这个场景下,shell脚本用于自动化备份MySQL数据库,节省手动操作的时间和精力。 MySQL是世界上最流行的开源关系型数据库管理系统,5.7.8版本是在其发展历史中一个重要的里程碑。在该版本之前,数据库的备份主要...
通过以上步骤,你可以建立一个自动定时备份远程服务器MySQL数据库并存储在本地的系统,确保数据的安全性和可恢复性。在实际操作中,还需要根据具体的服务器环境和业务需求进行适当的调整和优化。
二、每日备份shell脚本 每日备份脚本主要利用cron定时任务执行,以下是一个基本示例: ```bash #!/bin/bash # 设置MySQL服务器的相关信息 USER="root" PASSWORD="your_password" DATABASE="your_database" BACKUP_...
"mysql自动实现备份脚本" 提供了一种高效的方法,通过编写Bash shell脚本来自动化这一过程。下面将详细介绍这个脚本的工作原理、重要性以及如何配置和使用。 1. **Bash脚本简介** Bash是Unix和Linux系统中的默认...
通过这种方式,shell脚本和MySQL可以协同工作,实现自动化的数据库管理任务,比如数据导入导出、批量更新、定时备份等。记住,为了安全起见,避免在脚本中明文写入密码,通常会使用环境变量或者密钥管理工具来存储...
MySQL数据库是广泛应用于网站和应用程序的数据存储解决方案,定期进行数据备份是确保数据安全的重要环节。本文将详细解析“mysql备份脚本.rar”压缩包中的内容,包括在Windows和Linux操作系统中如何利用脚本来进行...
总之,利用shell脚本进行多线程备份MySQL 5.7.8以后的数据库是一个高效且灵活的方法,它能够根据系统资源和业务需求进行定制,确保数据的安全性和可靠性。通过深入理解和实践,可以进一步优化备份流程,提升整体系统...
### Linux自动备份MySQL数据库并上传到FTP服务器上Shell脚本详解 #### 一、脚本概述 本脚本主要用于在Linux环境下实现MySQL数据库的自动备份,并将备份文件上传至指定的FTP服务器。对于需要定期备份MySQL数据库的...
本文将详细介绍如何在CentOS环境下使用Shell脚本来实现MySQL的定时备份。这个方法简单易行,适合初学者参考。 首先,我们需要了解备份MySQL数据库的核心命令——`mysqldump`。这个命令用于导出MySQL数据库的结构和...
备份MySQL数据涉及到使用mysqldump工具导出数据库内容到.sql文件中。 9. tar归档工具:tar是一个用于在Unix和类Unix系统上打包文件的工具。在备份过程中,可以使用tar来将文件和目录压缩成一个.tar.gz格式的归档...
本文将详细介绍如何编写一个在Linux环境下,每天凌晨3点自动执行的MySQL数据库备份脚本,以及如何配置Linux的定时任务来执行这个脚本。 首先,我们来看`DB_backup.sh`这个脚本文件。它通常包含以下核心部分: 1. *...