实施MySQL千万数量级备份与恢复

 

作者:YOUDI(Kevin.U)

 

 

一,设置Linux的定时器:

crontab –e

0 3 * * * /www/cron/mysqlbackup.sh

每天三点执行备份脚本.

脚本如下:

#!/bin/sh

# Name:mysqlbackup.sh

# PS:MySQL DataBase Backup,Use mysqlhotcopy script.

# Write by:i.Stone

# Last Modify:2007-11-15

#

# 定义变量,请根据具体情况修改

# 定义脚本所在目录

scriptsDir=`pwd`

# 数据库的数据目录

dataDir=/data/var/

# 数据备份目录

tmpBackupDir=/backup/sql/var/

backupDir=/backup/sql/backup/

# 用来备份数据库的用户名和密码

mysqlUser=hotcopyer

mysqlPWD=123456


# 如果临时备份目录存在,清空它,如果不存在则创建它
cd /backup/sql/

if [[ -e $tmpBackupDir ]]; then

rm -rf $tmpBackupDir/*

else

mkdir $tmpBackupDir

fi

# 如果备份目录不存在则创建它

if [[ ! -e $backupDir ]];then


mkdir $backupDir

fi


# 清空MySQLBackup.log

if [[ -s MySQLBackup.log ]]; then

cat /dev/null >MySQLBackup.log

fi


# 得到数据库备份列表,在此可以过滤不想备份的数据库

for databases in `find $dataDir -type d | /

sed -e "s///data//var" | /

sed -e "s/test//"`; do


if [[ $databases == "" ]]; then

    continue

else

# 备份数据库

    /data/mysql5/bin/mysqlhotcopy --noindices "$databases" $tmpBackupDir

    dateTime=`date "+%Y.%m.%d %H:%M:%S"`

    echo "$dateTime Databasedatabases backup success!" >>MySQLBackup.log

fi

done


# 压缩备份文件

#date=`date -I`

#cd $tmpBackupDir

# tar czf $backupDir/mysql-$date.tar.gz ./

day=`date +"%Y%m%d"`

/usr/local/bin/rar m -m5 -r var.rar var/

/bin/mv var.rar all.bin.$day.rar

dateTime=`date "+%Y.%m.%d %H:%M:%S"`

echo "$dateTime Databases compressed su如何ccess!" >> MySQLBackup.log

 

恢复:
mkdir var
cd var
rar e ../all.bin.$day.rar
myisamchk –r *
完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值