引用:
原帖由 冬瓜头 于 2008-1-23 11:50 发表 
1 我的理解,你说的RAM是内存,不带电保护,所以写到log里面对不?
ram是指内存。io进来是先写到ram,同时将操作日志写入nvram(也就是留一份存根)
2 log在NAS头里面是什么个东西,是怎么存在的,是NVRAM还是什 ...
这个如果林总了解一下数据库就可以明白了。比如某时刻一个io说:向某某文件某offset开始,长度128字节,写入128字节的如下数据:……◎%※#※,此时,程序会从read buffer中读出这些数据块到write buffer,然后将数据更新到buffer块中。而同时将这个操作日志记录到log中(nvram中),writer buffer对应的这些块可能是512字节(裸数据加开销)。但是log对应的这条帐目,远小于512字节,只有裸数据+描述动作的信息。这就是log。
谢谢冬瓜的回答,但是依然有个问题,数据库里面关有log是不够的,我的理解你这里讲的log只是为了rollforward和rollback时的SCN序列号,但是log最终需要调用redo log里面真实的记录来,如果真实记录不存在,光有id有什么用,online和archive redo log和里面记录的才是实实在在的数据,这里的数据才是恢复时所需要的真正数据,这个数据保存在哪里呢?
1 是机头的内存里面,不带电保护?
2 是机头根据变化量和现有数据,算出一个差量的log,然后把这个差量变化的log写入NVRAM里面,恢复的时候通过现有硬盘的数据和差量log可以得出最新的数据
是哪一种呢,冬瓜头