mysql备份策略(2)

2019-01-12 12:29

root@192.168.0.200's password:

id_rsa.pub 100% 218 0.2KB/s 00:00 3)、测试SSH登录

[root@lab ~]# ssh 192.168.0.200 //测试SSH登录 Last login: Fri Nov 16 10:34:02 2007 from 192.168.0.20 [root@lib ~]#

(4)、设置crontab任务,每天执行备份脚本 shell> crontab -e

#每个星期日凌晨3:00执行完全备份脚本

0 3 * * 0 /root/MySQLBackup/mysqlFullBackup.sh >/dev/null 2>&1 #周一到周六凌晨3:00做增量备份

0 3 * * 1-6 /root/MySQLBackup/mysqlDailyBackup.sh >/dev/null 2>&1

mysqlFullBackup.sh注释: #!/bin/sh

# Name:mysqlFullBackup.sh # PS:MySQLDataBase Full Backup. # Write by:i.Stone # Last Modify:2007-11-17 #

# Use mysqldump --help get more detail. #

# 定义变量,请根据具体情况修改 # 定义脚本目录 scriptsDir=`pwd` # 定义数据库目录

mysqlDir=/usr/local/mysql

# 定义用于备份数据库的用户名和密码 user=root userPWD=111111 # 定义备份目录

dataBackupDir=/tmp/mysqlbackup # 定义邮件正文文件

eMailFile=$dataBackupDir/email.txt

# 定义邮件地址

eMail=alter@somode.com # 定义备份日志文件

logFile=$dataBackupDir/mysqlbackup.log DATE=`date -I`

echo \

echo $(date +\cd $dataBackupDir # 定义备份文件名 dumpFile=mysql_$DATE.sql

GZDumpFile=mysql_$DATE.sql.tar.gz

# 使用mysqldump备份数据库,请根据具体情况设置参数 $mysqlDir/bin/mysqldump -u$user -p$userPWD \\ --opt --default-character-set=utf8 --extended-insert=false \\ --triggers -R --hex-blob --all-databases \\ --flush-logs --delete-master-logs \\ --delete-master-logs \\ -x > $dumpFile

# 压缩备份文件 if [[ $? == 0 ]]; then

tarczf $GZDumpFile $dumpFile>> $eMailFile 2>&1 echo \ echo \ rm -f $dumpFile

# Delete daily backup files. cd $dataBackupDir/daily rm -f *

# Delete old backup files(mtime>2). $scriptsDir/rmBackup.sh

# 如果不需要将备份传送到备份服务器或备份服务器为Windows,请将标绿的行注释掉 # Move Backup Files To Backup Server.

#适合Linux(MySQL服务器)到Linux(备份服务器) $scriptsDir/rsyncBackup.sh if (( !$? )); then

echo \ else

echo \ fi else

echo \fi

# 写日志文件

echo \cat $eMailFile>> $logFile # 发送邮件通知

cat $eMailFile | mail -s \

mysqlDailyBackup.sh注释: #!/bin/sh

# Name:mysqlDailyBackup.sh

# PS:MySQLDataBase Daily Backup. # Write by:i.Stone # Last Modify:2007-11-17 #

# 定义变量,请根据具体情况修改 # 定义数据库目录和数据目录 scriptsDir=`pwd`

mysqlDir=/usr/local/mysql

dataDir=$mysqlDir/data

# 定义用于备份数据库的用户名和密码 user=root

userPWD=111111

# 定义备份目录,每日备份文件备份到$dataBackupDir/daily dataBackupDir=/tmp/mysqlbackup

dailyBackupDir=$dataBackupDir/daily # 定义邮件正文文件

eMailFile=$dataBackupDir/email.txt # 定义邮件地址

eMail=alter@somode.com # 定义日志文件

logFile=$dataBackupDir/mysqlbackup.log # 得到数据库所在主机的主机名 HOSTNAME=`uname -n` #

echo \

echo $(date +\#

# 刷新日志,使数据库使用新的二进制日志文件

$mysqlDir/bin/mysqladmin -u$user -p$userPWD flush-logs cd $dataDir

# 得到二进制日志列表

fileList=`cat $HOSTNAME-bin.index` iCounter=0

for file in $fileList

do

iCounter=`expr $iCounter + 1` done nextNum=0 iFile=0

for file in $fileList do

binLogName=`basename $file` nextNum=`expr $nextNum + 1`

# 跳过最后一个二进制日志(数据库当前使用的二进制日志文件) if [[ $nextNum == $iCounter ]]; then echo \ else

dest=$dailyBackupDir/$binLogName # 跳过已经备份的二进制日志文件 if [[ -e $dest ]]; then

echo \ else

# 备份日志文件到备份目录

cp $binLogName $dailyBackupDir if [[ $? == 0 ]]; then

iFile=`expr $iFile + 1`

echo \ fi fi fi done

if [[ $iFile == 0 ]];then

echo \else

echo \ echo \

# 如果不需要将备份传送到备份服务器或备份服务器为Windows,请将标绿的行注释掉 # Move Backup Files To Backup Server.

#适合Linux(MySQL服务器)到Linux(备份服务器) $scriptsDir/rsyncBackup.sh

if [[ $? == 0 ]]; then

echo \ else

echo \ fi fi

# 发送邮件通知

cat $eMailFile | mail -s \# 写日志文件

echo \cat $eMailFile>> $logFile

rsyncBackup.sh注释: #!/bin/sh

# Name:rsyncBackup.sh

# PS:Move Backup Files To Backup Server. # Write by:i.Stone # Last Modify:2007-11-17 #

# 请根据具体情况修改,注意最后有“/” # 定义数据库备份目录

dataBackupDir=/tmp/mysqlbackup/

# 定义备份服务器上存放备份数据的目录 backupServerDir=/root/mysqlbackup/ # 定义备份服务器

backupServer=192.168.0.200 #

# 同步备份文件到备份服务器

rsync -a --delete $dataBackupDir -e ssh $backupServer:$backupServerDir> /dev/null 2>&1

rmBackup.sh注释: #!/bin/sh

# Name:rmBackup.sh # PS:Delete old Backup. # Write by:i.Stone # Last Modify:2007-11-15


mysql备份策略(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于明确我市园林绿化损坏赔偿费标准的通知

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: