上官车月 发表于 2013-2-4 12:54:33

服务器数据备份(shell 定时脚本备份mysql)

<div style="font-family: Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif; line-height: 18px;">Mysql备份策略大概可分为4种:

1) 直接拷贝数据库文件(不推荐)
2) 使用mysqlhotcopy备份数据库
3) 使用mysqldump备份数据库
4) 使用主从复制机制(replication)(实现数据库实时备份)
一般mysqldump使用比较广泛,操作也方便,下面就具体描述mysqldump备份策略。
数据备份分为三步:

1) 定时导出备份数据库并打包成gz压缩包 (Linux shell 脚本 + crontab)
mysqlFullBackup.sh
<div class="cnblogs_code" style="background-color: #f5f5f5; font-family: 'Courier New'; border: 1px solid #cccccc; padding: 5px; overflow: auto; margin: 5px 0px;">#!/bin/sh# Use mysqldump --help get more detail.## 定义变量,请根据具体情况修改# 定义脚本目录scriptsDir=`pwd`# 定义用于备份数据库的用户名和密码user=rootuserPWD=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"` > $eMailFilefor dbName in ${dbNames
[*]}do    # 定义备份文件名    dumpFile=$dataBackupDir/db/$dbName-$DATE.sql.gz    # 使用mysqldump备份数据库,请根据具体情况设置参数    mysqldump -u$user -p$userPWD $dbName | gzip > $dumpFiledoneif [[ $? == 0 ]]; then    echo "DataBase Backup Success!" >> $eMailFileelse    echo "DataBase Backup Fail!" >> $emailFilefi# 写日志文件echo "================================" >> $logFilecat $eMailFile >> $logFileecho $dumpFile >> $logFile# 发送邮件通知#cat $eMailFile | mail -s "MySQL Backup" $eMail
页: [1]
查看完整版本: 服务器数据备份(shell 定时脚本备份mysql)