backup 地球

挪威人为地球的农作物做了一个”全备份 “,放在北极圈内斯瓦尔巴群岛上新修建的“诺亚方舟”,备份的内容是种子,目的是一旦地球环境遭到毁灭性破坏,在基本的生存要素得到恢复后,比如阳光、温度、水、大气,再把种子拿出来重建粮农作物物种,解决人们的饥饿问题。 前些年,人们担心过不小心闯入地球轨道的天体,现在,人们认识到这种威胁更可能来自人类自己,这个灾备系统的安全系数也不断得到升级。人们可以把信息备份到各式各样的存储器中,可以把植物种子备份到北极地下,甚至备份了生物(包括人类自己)的DNA 也可以在灾难后恢复出现有的物种,可是海洋、大气、整个地球的环境却没法备份,如果人类一直都不需要启动这个种子的诺亚方舟,有一天,或许可以在超级电脑上敲入下面的命令: # db2 backup planet Earth to Mars 升级版本大概需要做: # db2 backup...

挪威人为地球的农作物做了一个”全备份 “,放在北极圈内斯瓦尔巴群岛上新修建的“诺亚方舟”,备份的内容是种子,目的是一旦地球环境遭到毁灭性破坏,在基本的生存要素得到恢复后,比如阳光、温度、水、大气,再把种子拿出来重建粮农作物物种,解决人们的饥饿问题。

前些年,人们担心过不小心闯入地球轨道的天体,现在,人们认识到这种威胁更可能来自人类自己,这个灾备系统的安全系数也不断得到升级。人们可以把信息备份到各式各样的存储器中,可以把植物种子备份到北极地下,甚至备份了生物(包括人类自己)的DNA 也可以在灾难后恢复出现有的物种,可是海洋、大气、整个地球的环境却没法备份,如果人类一直都不需要启动这个种子的诺亚方舟,有一天,或许可以在超级电脑上敲入下面的命令:

# db2 backup planet Earth to Mars

solar system

升级版本大概需要做:

# db2 backup planet Earth to M42@Orion 

扯远了,还是祝愿这个种子备份永远也不会被用到吧。如果那一天真的来了,也希望人们有机会执行恢复的进程,并且能熬过那个漫长的前滚恢复。

在Dreamhost自动备份mysql数据库

今天准备在Dreamhost 上自动备份blog的DB,MySQL是Dreamhost唯一提供的关系数据库服务,当前版本5.0 我了解很少(这里有个学习笔记 ),已知可以在命令行使用mysqldump 命令备份整个数据库,备份时似乎无需了解数据库的当前状态(比如是否正在运行事务),它会自行处理,从备份出的文件看,mysqldump实现的是冷备份,也就是说,仅采用这种备份方法,数据仅能恢复到最后一次运行mysqldump的时间点。 MySQL也介绍了一个热备份工具mysqlhotcopy,不过文档中有以下声明,我不清楚什么是MyISAM 与ARCHIVE tables,也不大明白MySQL 热备份的恢复机制(如何前滚日志)。还好,我的数据库目前很小,而我的空间很大很大,每次全备份只花费很少的时间,也占用很小的空间。 mysqlhotcopy works only for backing up...

今天准备在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

mail.png


标签订阅|Tag Subscription

If you use an RSS reader, you can subscribe to a feed of all future entries tagged 'backup'. [What is this?]

Subscribe to feed Subscribe to feed

最近更新|Recent Entries

不定期更新|Handy Entries

其它标签|Other Tags

分类栏目|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