今天准备在Dreamhost 上自动备份blog的DB,MySQL是Dreamhost唯一提供的关系数据库服务,当前版本5.0 我了解很少(这里有个学习笔记 ),已知可以在命令行使用mysqldump 命令备份整个数据库,备份时似乎无需了解数据库的当前状态(比如是否正在运行事务),它会自行处理,从备份出的文件看,mysqldump实现的是冷备份,也就是说,仅采用这种备份方法,数据仅能恢复到最后一次运行mysqldump的时间点。

MySQL也介绍了一个热备份工具mysqlhotcopy,不过文档中有以下声明,我不清楚什么是MyISAM 与ARCHIVE tables,也不大明白MySQL 热备份的恢复机制(如何前滚日志)。还好,我的数据库目前很小,而我的空间很大很大,每次全备份只花费很少的时间,也占用很小的空间。

mysqlhotcopy works only for backing up MyISAM and ARCHIVE tables. It runs on Unix and NetWare.

使用mysqldump备份出来的文件,是一个包含了sql语句的文本文件,含有建表语句以及Insert语句。我采用这种方式恢复:连接到mysql进入mysql提示符,创建一个db(如果不存在),连接到此db,执行备份文件,如:

mysql> source ./mybackup.sql 

执行结束则恢复完毕。这里有篇日志 介绍了另外一种恢复方法(如下),不过我没有尝试过。 

$ mysqldump -u root -p'123456' test2 < samp.db.txt 

言归正传,我准备采用crontab 自动运行mysqldump 来自动备份数据库。写了一个shell脚本如下,备份文件使用当前系统时间(到分钟)作为文件名,备份成功后进行压缩。

backupdb.sh 

bakfile=~/xxx/mt-db_`date '+\%Y\%m\%d\%H\%M'|tr -d '\\\'`.sql
mysqldump -hmysql.mydomain.com -umyname -pmypasswd mt > $bakfile
gzip $bakfile
exit 0

然后在crontab中加入条目,定时自动运行此脚本。这里设置为每4个小时,在整点运行一次,每天产生一份日志。

00 0-23/4 * * * ~/xxx/backupdb.sh >> ~/xxx/logs/backupdb_`date '+\%Y\%m\%d'|tr -d '\\\'`.log 

经试验`date '+\%Y\%m\%d'|tr -d '\\\'`部分似乎不能被cron命令成功替换,但是在shell中是可以成功执行的。

$ echo backupdb_`date '+\%Y\%m\%d'|tr -d '\\\'`.log
backupdb_20070127.log

评论 (1)

请问如何连接到mysql进入mysql提示符?偶不会呀

Post a comment

mail.png


相似文章|Related Entries

最近更新|Recent Entries

不定期更新|Handy Entries

相似标签|Related Tags

backup
Database (12)
Dreamhost (3)
MySQL (3)
备份 (1)
Database
backup (2)
CPU (1)
DB2 (13)
Dreamhost (3)
MySQL (3)
RawDevice (1)
Shell (8)
SQL (1)
Study notes (9)
函数 (1)
升级 (2)
备份 (1)
学习笔记 (14)
安装 (1)
数据库 (15)
补丁包 (2)
裸设备 (1)
隔离级别 (2)
Dreamhost
backup (2)
Database (12)
MySQL (3)
Shell (8)
备份 (1)
安全 (1)
安全漏洞 (1)
权限 (1)
MySQL
backup (2)
Database (12)
Dreamhost (3)
MT (22)
Study notes (9)
备份 (1)
备份
backup (2)
Database (12)
Dreamhost (3)
MySQL (3)

分类栏目|Categories

按月归档|By Month

2008
07
05
04
03
02
01
2007
12
10
07
06
05
04
03
02
01
2006
12
11
10
09
08
07
06
05
04
03
02
01
2005
11
10
09
08
07
04
03
2004
12
11
10
09
08
07
06
05
04
03
02
01
2003
12
10
09
08
06
2002
09
08
04
03
02
2001
12
09
07
06
05

站内链接|Site Links

Powered by
Movable Type 3.34