Dec
18
2006

用ITPUB 2007精英年会测试一下Google Calendar的功能,点击上面的图片可以看到年会的详细信息。如果有人收到相关邮件请给个回复,让我也看看Google Calendar的功能。
Update@2006-12-18
coolyl和fenng都有回执,eygle这个不看gmail信箱的人没有音信。我原来以为会在gmail信箱中收到回执,然后点击阅读以后才会把他人的计划更新到自己的calendar中,然而却不是这样,calendar直接就更新了,恩,很方便,界面也很友好。

我一直觉得GTD不是一个人的事情,如果所处的环境,所接触的朋友,客户都能够使用相同的时间安排方法,那么GTD才算是真正进入日常生活。幻想有一天大家都可以通过Calendar来商定事情,策划出游,预定会议。
BTW:Google Calendar的Search Public Event功能貌似有问题,ITPUB 2007精英年会的事件我已经设置成Public了,但是无论以什么方式搜索都无法查到结果。
Google 


Dec
17
2006

申请Google Apps服务,纯为好玩。
现在我的域名也可以提供2G的邮件服务,还同时有日历,即时通信,以及网域网页的功能。
Google在做的是一个劲儿往客户身上砸存储,砸技术,然后收获内容,他日定有用处。
BTW:申请方法
Google 


Dec
17
2006
用就用了,不标明原始出处和作者也罢了,但是还自己随便删删减减,实在不太厚道。
我的原文发表在eygle的blog上:
关于oracle的版权信息-一些你可能不知道的,一些可以看出Oracle野心的…
vongates引用了我才知道,不关vongates的事儿:
ORACLE不能进行双机热备
恩,其实我也没什么生气的,发个牢骚而已。
Update@2006-12-18
我更希望这是一个误会,转载尽量说明出处吧,以此共勉。
No Tags
Dec
12
2006
Oracle Database 10g中出现的ASM(Automatic Storage Management,自动存储管理)技术提供了一种镜像冗余的方法,用以保护可能出现的磁盘故障而导致的数据丢失。要知道,以前也许我们需要RAID来达到这样的目的,但是现在Oracle数据库本身就提供给你这样的选项了,Oracle的意思是,把所有的鸡蛋都放到Oracle这个篮子里面吧,我们是Unbreakable的。
ASM提供了3种冗余方法。
external redundancy表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术。
normal redundancy(默认方式)表示Oracle提供2路镜像来保护数据。
high redundancy表示Oracle提供3路镜像来保护数据。
先预告一下,有时间再写吧,相信我,有内部资料的(本文用词很多来自某些metalink internal资料的翻译,因为inernal所以就不做link了),呵呵。
什么是 ASM failure group?
Oracle通过failure group来提供数据的高可用性。ASM使用的镜像算法并不是镜像整个disk,而是作extent级的镜像。所以很明显如果为各个failure group使用不同容量的disk是不明智的,因为这样在Oracle分配下一个extent的时候可能就会出现问题。在normal redundancy模式下,ASM环境中每分配一个extent都会有一个primary copy和一个second copy,ASM的算法保证了second copy和primary copy一定是在不同的failure group中,这就是failure group的意义。通过这个算法,ASM保证了即使一个failure group中的所有disk都损坏了,数据也是毫发无伤的。
Oracle在分配extent的时候,所有failure group中的这个将拥有相同数据的extent称为一个extent set,当Oracle将数据写入文件的时候,primary copy可能在任何一个failure group中,而second copy则在另外的failure group中,当Oracle读取数据的时候,除非是primary copy不可用,否则将优先从primary copy中读取数据,通过这种写入无序,读取有序的算法,Oracle保证了数据读取尽量分布在多个disk中。
因为公用一个硬件模块的磁盘很可能会同时损坏或者失效,所以通常我们在设计failure group时,应该把一个大的盘阵中在一个tray中的磁盘放在一个failure group中,这样我们就可以拿走一个tray,失效这个failure group,然后换上新的tray和磁盘,这跟RAID的思想是一样的。
ASM的冗余方式一经设定就无法更改,如果我们想把normal redundancy改为high redundancy就只能是创建一个新的failure group,然后把旧failure group中的文件通过RMAN或者DBMS_FILE_TRANSFER的方法移动到新failure group中去。
如果在ASM环境中没有创建failure groups情况会怎样?
即使没有显式指定,failure groups也是始终会创建的。在这种情况下,每个disk都属于一个failure group,在创建磁盘组的时候,failure group也会默认创建,名称就是disk的名字。
应该创建多少failure groups?
什么时候该用external redundancy什么时候该用normal或者high redundancy?
如果failure group出现故障怎样恢复?
- 如何使用kfed实用程序来查看ASM Disk header
我们测试的数据库是Oracle10.2.0.2,首先需要编译生成kfed程序,在其它版本的Oracle中生成kfed的方法会略有不同。
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ikfed
此时$ORACLE_HOME/bin目录中将会产生kfed程序。
使用kfed的语法是:kfed read *devicename* text=*filename*
假设我们要读取/dev/raw/raw1的文件头,那么使用下面的语句
kfed read /dev/raw/raw1 text=raw1.out
这样raw1的文件头信息将会被dump到raw1.out文件中,大家有兴趣可以去看一下文件内容,基本上通过名字和值还是能猜测出都是些什么内容的,包括了这个ASM Disk创建时间是什么,每个block多大,Disk名字是什么,属于哪个Disk Group,Header Status是怎么样的。虽然大部分内容都可以从ASM实例的数据字典中获得,但是在我们碰到ASM磁盘故障的时候,kfed提供的信息往往更容易让我们判断问题点。
- 如何清理ASM Disk
有时候一个ASM Disk由于故障,导致我们删也删不掉,加也加不进去,通常现象是磁盘的header status状态不正确但是disk header中仍然保留了部分磁盘组的信息。此时我们就需要clear这个磁盘,然后再将它重新加入磁盘组中。
dd if=/dev/zero of= *diskname* bs= *blocksize* count=10000
注意:上述语句请谨慎操作,可能会出现问题。
ASM 


Oracle 

