数据库

Blog完全恢复!

哈哈,总算彻底恢复了,一丁点儿数据都没有丢失,期盼的大团圆结局居然在最后才出现,实在是意外的惊喜!把昨天沮丧的文章转在下面吧:

忙了这么久,总算还有些成绩。原来的数据库恢复过程中由于MySQL Dump 数据时出现乱码,暂时放在一边,如果感兴趣,想看看残破的Drupal是什么样子,可以看看:http://www.kzeng.info/test/ 呵呵,仍然是一个完好的Drupal,只是数据库有些问题,出现了乱码。正在尝试进一步的修复,如果修复无望,只好把里面的重要的文章再copy过来。

现在运行的Drupal是基于三周前的一次备份,现在运行良好,只是丢掉了三周来的数据,不过会慢慢的补足,只是可惜了大家众多的评论和trackback,那里的乱码很难修复了。

这次突发事件有喜有忧,忧的是丢掉了一些文章,还要费时间转过来,喜得是学到了不少东西,以前对于Linux下的命令行,只是偶尔为之,动辄需要查手册,可是经过这两天的反复操作,已经成为一个熟练工了,MySQL和PHP也是一样的,为了迁移转换数据库试了许多方式,增加了不少经验值,同时还接触到了emac,LAMPP,qftp等等不少有趣的东西,挺好用的,不知道windows下游没有相关版本。美中不足的是没有一个大团圆的结局,最后折腾出来的数据库还是有乱码,但是在我这里基本上已经是无能为力,是空间提供商的问题。把旧的数据库先放在那里,看看以后会不会有办法。

这次事情突然,原来只是想搭个blog玩,所以没有太注意空间提供商的稳定性,可是东西积攒多了,一下子丢掉又舍不得。现在换了一个牢靠些的空间,以后应该不会有问题了。

关于这次问题,有了不少新的经验,大致总结一下:

拿到了数据库文件发现不能直接导入MySQL Server,仔细一看是版本的问题,当时到MySQL的网站,查了一下手册,知道问题出在Engine这个变量上,所以就用Ultra Edit更改了一下,但是在SSH中导入时却出现了错误,只要Ultra Edit修改过的文件,里面的编码似乎都会出现问题,把英文字符变为乱码。当时郁闷了一下。

幸好我的笔记本上还装了Mandrake的Linux 操作系统,最初装的时候只是好奇,现在看来Linux果然是一个强大的工具。在Linux先用普通的Editor修改MYSQL文件,但是发现仍然有 Ultra Edit一样的错误,偶然间发现了Emac,重新编辑过,问题居然没有了,于是我就手动把数据库文件从4.1降级为4.0。导入,OK,可惜居然是有乱码!(后来才知道是数据库文件本身的问题)。当时又郁闷了一下。

一计不成又生一计。从windows下的WAMP想到了Linux下的LAMP,于是搜索了一下,找到了集合 Apache, PHP 4.11.3 和 MySQL 4.1.11的LAMPP---bingo!我要到就是MySQl 4.1.11,于是下载,40多M,安装,以前比较讨厌Linux下用命令行的安装方式,不过现在看来也有不少便利之处,起码对安装的过程了解的通通透透。然后启动,一切顺利,把原来的数据库导入,然后再重新dump,加上了 compatible=msq4.0的条件,得到了可以在MySQL 4.0中使用的数据库文件,重新上传,导入,结果---还是乱码!当时又郁闷了一下。

于是想测试一下原来的数据库究竟怎样,于是在本地安装了Drupal,连接本地数据库,然后--还好乱码,原来已开始的问题所在就是数据库文件本身! 有些ft。最后还是用了这有问题的数据库,不过又想到了以前的备份数据,拿出来,居然还可以用,就是现在了。

只能抱怨原来的空间提供商了,好在损失还是不大:)

Blog分类: 

Drupal的cron任务

以前一直没有仔细看Drupal的readme文件,只要安装完毕便是万事大吉。运行不出问题,也没有去考虑钻研一下文献,结果慢慢的发现有了一个问题:数据库的尺寸越来越大,天啊,今天到了不可想像的80M,打开phpmysql,发现accesslog这个table尺寸巨大,还有cache这个table,到管理->设置->统计数据中把保留log的时间调短,可惜还是于事无补,数据库的尺寸一点都没有减小,于是爬上drupal总站,大喊一声,Drupal怎么这么挫,顿时来了不少热心先生,仔细讨论一番,原来是我一直大意,没有设置cron任务。

Drupal的一些模块有定期运行的任务,而这个任务必须由cron来引发。这个大致是类似windows下的“计划任务”,定期自动运行一些程序,譬如你决定周五晚上8:00杀毒一样。所以为了使得一些程序可以定期的清理数据库,丢弃不需要的数据,你必须设置cron任务。最简单的激活cron任务的方法就是访问:http://你的安装目录/cron.php 这是一个手动的比较笨的办法,当然最好就是能够自动运行,不过这需要你的服务器支持SSH,并且你还要熟悉一些常用的命令行,你既然能耐心看我罗嗦到这里,肯定是不会用这些复杂的,这儿有一个简单的方式,就是使用poormanscron.module,它 的原理其实也很简单,有访客访问你的网站的时候,通过对你设定的cron时间进行判断,如果该运行cron了,就在访客浏览你的网页时利用他的浏览激发cron任务。所以,只要安装了这个模块就可以省却不少麻烦。不妨试试,我今天使用后,accesslog出了一点小小的问题,不过刚才用repair table修复了,现在已经好了。

Blog分类: