首先,值得商榷的是泥“冗余文件”的说法,按照泥的意思,ORACLE也只是对控制文件做到了“冗余”,因为ORACLE运行期间是要对多个控制文件做相同的处理的,这样以来就要增加ORACLE的负担,就是ORACLE在更新控制文件的时候要同时更新多个文件。不过,ORACLE这样做是有道理的,在阿看来,对ORACLE来说,控制文件是极其重要的,如果因为磁盘的损坏或其它意外的情况而导致控制文件损坏,则后果将直接导致ORACLE的不可用。所以,ORACLE要对控制文件做必要的“冗余”处理。至于重做日志文件,就不是泥所说的“冗余文件了”。ORACLE至少有2个联机日志文件,LGWR进程是循环写入到联机日志文件中的,并不是所谓的“冗余”。
数据文件中保存只是数据,如果担心数据文件损坏或者丢失,泥可以在操作系统上对数据文件做备份。要是为了安全性,而对数据文件做“冗余”处理的话,即DBWR进程每次做2次相同的写入操作,相应地LGWR的工作量也加大了,好像也不是一个理智的处理方式吧?况且又增加了ORACLE一倍的工作量!有点得不偿失吧?
所以,在阿看来,ORACLE对控制文件能够做到“冗余”也就足够了!一家之言,见笑~

解决方案 »

  1.   

    一般的,对于数据文件可不必冗余处理,用各种备份手段就可以了。但对于高保险的需求,可以使用不同的oracle系统结构做冗余处理。比如raid1系统,同时维护两个拷贝的磁盘。镜像磁盘可以在一个磁盘失效时来取代。简单结构:     -------------  ---------------
         | 磁盘阵列1 |  |   磁盘阵列2  |
         -------------  ---------------
             磁盘1:------- 磁盘1:
            数据文件        数据文件
           ---------       ----------
             磁盘2:------- 磁盘2:
             数据文件      数据文件
           ---------       ----------
      

  2.   

    谢谢你的见解。
    不过你说的好像也有可以商榷的地方。
    我很认同你对oracle中控制文件和数据文件的说法,但对于日志文件,oracle是可以做到“冗余”处理的,你可以讲日志文件进行分组,每个组里面最少有两个日志文件,那么,orcle在写入日志文件的时候,总是同时写入组中的每个文件,并且,oracle是在组间循环写入数据的。