MySQL 备份和恢复策略二:使用mysqlhotcopy备份数据库
来源:互联网 发布:小猪cms电商系统 编辑:程序博客网 时间:2024/05/13 10:53
备份策略二、使用mysqlhotcopy备份数据库(完全备份,适合小型数据库备份)
mysqlhotcopy 是一个 PERL 程序,最初由Tim Bunce编写。它使用 LOCK TABLES、FLUSH TABLES 和 cp 或 scp 来快速备份数据库。它是备份数据库或单个表的最快的途径,但它只能运行在数据库文件(包括数据表定义文件、数据文件、索引文件)所在的机器上,并且mysqlhotcopy 只能用于备份 MyISAM表。
本备份策略适合于小型数据库的备份,数据量不大,可以采用mysqlhotcopy程序每天进行一次完全备份。
备份策略布置:
(1)、安装DBD-mysql perl模块,支持mysqlhotcopy脚本连接到MySQL数据库。
shell> tar -xzvf DBD-mysql-4.005.tar.gz
shell> cd DBD-mysql-4.005
shell> unset LANG
shell> perl Makefile.PL -mysql_config=/usr/local/mysql/bin/mysql_config -testuser=root -testpassword=UserPWD
shell> make
shell> make test
shell> make install
(2)、设置crontab任务,每天执行备份脚本
shell> crontab -e
0 3 * * * /root/MySQLBackup/mysqlbackup.sh >/dev/null 2>&1
每天凌晨3:00执行备份脚本。
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=/usr/local/mysql/data/
# 数据备份目录
tmpBackupDir=/tmp/tmpbackup/
backupDir=/tmp/mysqlbackup/
# 用来备份数据库的用户名和密码
mysqlUser=root
mysqlPWD=111111
# 定义eMail地址
eMail=alter@somode.com
# 如果临时备份目录存在,清空它,如果不存在则创建它
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///usr//local//mysql//data////" | /
sed -e "s/test//"`; do
if [[ $databases == "" ]]; then
continue
else
# 备份数据库
/usr/local/mysql/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
# 压缩备份文件
date=`date -I`
cd $tmpBackupDir
tar czf $backupDir/mysql-$date.tar.gz ./
# 发送邮件通知
if [[ -s MySQLBackup.log ]]; then
cat MySQLBackup.log | mail -s "MySQL Backup" $eMail
fi
# 使用smbclientmv.sh脚本上传数据库备份到备份服务器
# $scriptsDir/smbclientmv.sh
smbclientmv.sh注释
#!/bin/sh
# Name:smbclientmv.sh
# PS:Move the data to Backup Server.
# Write by:i.Stone
# Last Modify:2007-11-15
#
# 定义变量
# 备份服务器名
BackupServer="BackupServerName"
# 共享文件夹名
BackupShare="ShareName"
# 备份服务器的访问用户名和密码
BackupUser="SMBUser"
BackupPW="SMBPassword"
# 定义备份目录
BackupDir=/tmp/mysqlbackup
date=`date -I`
# Move the data to BackupServer
smbclient //$BackupServer/$BackupShare /
$BackupPW -d0 -W WORKGROUP -U $BackupUser /
-c "put $BackupDir/mysql-$date.tar.gz /
mysql-$date.tar.gz"
# Delete temp files
rm -f $BackupDir/mysql-$date.tar.gz
(3)、恢复数据库到备份时的状态
mysqlhotcopy 备份出来的是整个数据库目录,使用时可以直接拷贝到 mysqld 指定的 datadir (在这里是 /usr/local/mysql/data/)目录下即可,同时要注意权限的问题,如下例:
shell> cp -rf db_name /usr/local/mysql/data/
shell> chown -R mysql:mysql /usr/local/mysql/data/ (将 db_name 目录的属主改成 mysqld 运行用户)
本套备份策略只能恢复数据库到最后一次备份时的状态,要想在崩溃时丢失的数据尽量少应该更频繁的进行备份,要想恢复数据到崩溃时的状态请使用主从复制机制(replication)。
以上内容转自:http://blog.sina.com.cn/s/blog_4e424e2101000c1x.html
- MySQL 备份和恢复策略二:使用mysqlhotcopy备份数据库
- MySQL 备份和恢复策略二:使用mysqlhotcopy备份数据库
- MySQL 备份和恢复策略三、使用mysqldump备份数据库
- 使用mysqlhotcopy备份MySQL
- mysql数据库mysqlhotcopy热备份的备份恢复方法
- mysqlhotcopy 热备份和恢复
- MySQL 备份和恢复策略(二)
- MySQL 备份和恢复策略(二)
- Mysql数据备份二(脚本备份mysqlhotcopy)
- Mysql备份:mysqlhotcopy和mysqldump
- MySQL 备份和恢复策略四:使用主从复制机制(replication)实现数据库实时备份
- 在LINUX下使用mysqlhotcopy备份MySQL中的数据库
- MySQL 备份和恢复策略
- MySQL 备份和恢复策略
- MySQL 备份和恢复策略
- mysql 备份和恢复策略
- MySQL 备份和恢复策略
- MySQL 备份和恢复策略
- android SeekBar 使用注意
- [转]关于VIPT cache alias 的一封经典邮件
- Java的数据类型
- Java的数据类型
- axis2 生成
- MySQL 备份和恢复策略二:使用mysqlhotcopy备份数据库
- 移动Windows XP的%USERPROFILE%到其它盘的方法
- ExtJS Performance - Element click events
- MongoDB Replica Set: 详解Primary down机后elect新的Primary过程
- Java多线程 --- join
- GridView绑定结果为空时显示表头
- 微软云计算组件“Huron” – 将你的数据同步至云计算数据中心(Azure)
- ffmpeg论坛
- c语言处理变参数变类型