| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
我以前备份都使用mysqldump,导成文本文件便于存放,但是速度很慢的。最快的备份方法当然是直接把数据目录copy一份了。但是一般来说,都要关闭 MySQL的服务才能做,不然在你copy的时候刚好还有人读写表那麻烦就大了。这次朋友介绍我使用mysqlhotcopy。就相当于上面,不过他可以热备份.他备份非常快,我测试一个2.8G的mysql他备份的时间在3分钟内完成.
下面是它的介绍. 网管论坛bbs_bitsCN_com
mysqlhotcopy是一个Perl脚本,最初由Tim Bunce编写并提供。它使用LOCK TABLES、FLUSH TABLES和cp或scp来快速备份数据库。它是备份数据库或单个表的最快的途径,但它只能运行在数据库目录所在的机器上。mysqlhotcopy只用于备份MyISAM。它运行在Unix和NetWare中 网管联盟bitsCN@com
使用方法见下面的脚本.加入crotab中吧.
网管网www.bitscn.com
#!/bin/sh
# Name:mysqlbackup.sh
# PS:MySQL DataBase Backup,Use mysqlhotcopy script.
# Last Modify:2008-06-12
# 定义变量,请根据具体情况修改
# 定义脚本所在目录
scriptsDir=`pwd`
# 数据库的数据目录
dataDir=/var/lib/mysql 网管u家u.bitsCN.com
# 数据备份目录
tmpBackupDir=/tmp/mysqlblackup
backupDir=/backup/mysql 网管联盟bitsCN@com
# 用来备份数据库的用户名和密码
mysqlUser=root
mysqlPWD='you password' 网管联盟bitsCN_com
# 如果临时备份目录存在,清空它,如果不存在则创建它
if [[ -e $tmpBackupDir ]]; then
rm -rf $tmpBackupDir/*
else
mkdir $tmpBackupDir
fi 网管u家www.bitscn.net
# 如果备份目录不存在则创建它
if [[ ! -e $backupDir ]];then
mkdir $backupDir
fi 网管bitscn_com
# 得到数据库备份列表,在此可以过滤不想备份的数据库
for databases in `find $dataDir -type d | \
sed -e "s/\/var\/lib\/mysql\///" | \
sed -e "s/test//"`; do
if [[ $databases == "" ]]; then
continue
else 网管联盟bitsCN@com
# 备份数据库
/usr/bin/mysqlhotcopy --user=$mysqlUser --password=$mysqlPWD -q "$databases" $tmpBackupDir
dateTime=`date "+%Y.%m.%d %H:%M:%S"`
echo "$dateTime Database:$databases backup success!" >>MySQLBackup.log
fi
done 网管bitscn_com
# 压缩备份文件
date=`date -I`
cd $tmpBackupDir
tar czf $backupDir/mysql-$date.tar.gz ./ 网管bitscn_com
#End完成 中国网管联盟bitsCN.com
加入到crontab中设置每周5运行
0 0 * * 5 /backup/blackup.sh
网管联盟bitsCN_com
注意:恢复数据库到备份时的状态 网管网www_bitscn_com
网管有家www.bitscn.net
|
0
|
评论加载中…