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
# 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
!
# 定义变量
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
!
# 定义变量
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表示星期日)
相关推荐
NBU&MySQL备份恢复 NBU(NetBackup)是一款功能强大的备份恢复软件,而MySQL是一款流行的关系型数据库管理系统。本文将详细介绍如何使用NBU来备份和恢复MySQL数据库。 NBU备份mysql的优势 使用NBU备份mysql数据库...
### MySQL备份脚本知识点解析 #### 一、脚本概述 该脚本主要实现了MySQL数据库的备份功能,并根据当前日期创建对应的备份文件夹与备份文件,同时对备份文件进行了压缩处理。此脚本适用于Windows环境。 #### 二、...
MySQL 备份还原详解 MySQL 备份还原是数据库管理中非常重要的一步骤,能够确保数据库的安全和可靠性。下面我们将详细介绍 MySQL 备份还原的步骤和注意事项。 什么是 MySQL 备份还原? MySQL 备份还原是指将数据库...
首先,"Java操作mysql备份"这个标题表明我们将讨论的是利用Java编程语言编写程序,对MySQL数据库进行备份。备份的主要目的是防止数据丢失,确保在系统故障或意外情况下能快速恢复数据。 描述中的"代码清晰可用"意味...
阿里MySQL备份恢复指南是针对使用阿里云数据库服务的用户,特别是那些依赖MySQL数据库的企业或开发者设计的一份详尽的操作手册。这份指南旨在提供一个简单易懂的流程,帮助用户有效地进行数据库备份和恢复,以确保...
### Windows 下 MySQL 备份详解 #### 单机备份 在 Windows 环境下进行 MySQL 数据库备份是一项常见的数据库管理任务。对于确保数据的安全性和完整性至关重要。下面将详细介绍两种不同的备份方法:一种是通过复制...
MySQL备份平台是数据库管理系统中至关重要的组成部分,它确保了数据的安全性和可恢复性。在本文中,我们将深入探讨如何搭建MySQL备份平台,以及利用Apache服务器和Xtrabackup工具来实现这一目标。 首先,MySQL备份...
根据提供的实验报告“MYSQL备份与恢复”的相关内容,我们可以总结出以下几个关键知识点: ### 一、MYSQL日志管理 #### 1. 错误日志 - **定义**: 记录MySQL运行过程中的错误信息和警告信息。 - **作用**: 帮助管理...
"mysql备份.zip"这个压缩包提供了在Windows和Linux操作系统上进行MySQL数据库自动备份的解决方案。 在Windows环境下,"db.bat"是一个批处理文件,用于执行MySQL的备份任务。批处理文件通常包含一系列命令,这里可能...
MySQL备份主要是为了防止数据丢失,这可能由于硬件故障、软件错误、人为操作失误或恶意攻击等原因引起。备份策略通常包括全量备份、增量备份和差异备份,每种都有其适用场景和优缺点。 全量备份是最基础的备份类型...
MySQL 备份工具使用指南 MySQL 备份工具是数据库管理的基本任务之一,它提供了自动化备份 MySQL 数据库的支持。下面是 MySQL 备份工具的主要特性和使用指南: 自动备份 MySQL 备份工具可以自动备份 MySQL 数据库,...
阿里云 RDS for MySQL 备份文件恢复至自建数据库 本文档将介绍如何将阿里云 RDS for MySQL 的备份文件恢复至自建数据库中,以供测试平台使用。我们将讨论物理备份和逻辑备份的差异,并探讨如何下载和解压备份文件,...
下面我们将深入探讨如何利用shell脚本来执行MySQL备份。 首先,我们需要理解MySQL备份的基本类型:全量备份和增量备份。全量备份是指备份整个数据库或所有选定的数据库,而增量备份则仅备份自上次备份以来发生更改...
MySQL的备份和恢复是数据库管理的关键环节,确保数据的...总的来说,MySQL备份和恢复需要根据不同的表类型和需求选择合适的工具和策略。定期备份、测试恢复过程以及了解备份参数的正确使用是保证数据安全的关键步骤。
标题“mysql备份”涉及到的是MySQL数据库的备份操作,这是数据库管理中的重要环节,用于保护数据安全,防止数据丢失。在IT行业中,定期备份是确保业务连续性和数据完整性的重要步骤。 描述中提到的“一键备份数据库...
Mysql 备份与恢复 在数据库管理中,备份与恢复是非常重要的两步骤。备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低。 ...
MySQL备份和恢复是数据库管理中的关键环节,旨在保护数据免受意外损失,如硬件故障、软件错误或数据损坏。在本方案中,我们将探讨两种主要的备份策略,并讨论如何实施有效的恢复计划,确保数据安全和应用程序的连续...
新宇Mysql备份还原大师是一款专为MySQL数据库设计的便捷备份和恢复软件,适用于那些对数据库操作不熟悉或缺乏专业数据库管理员的用户。这款工具旨在简化数据库管理过程,确保数据安全,防止因意外数据丢失而带来的...
一个用于备份MYSQL数据库的bat文件, 使用mysqldump命令, 并在dump后使用winrar命令将文件压缩成rar文件(前提: 需要安装winrar并将其添加到环境变量中)