大家好:
      我在创建表空间时使用了nologing选项,也就是不记录重做日志:
create tablespace user05 nologging datafile '/ora01/oracle/oradata/demo/user_05.dbf' size 1m;
做实验,然后关闭数据库,删除 user_05.dbf 数据文件:
shutdown immediate;
rm -f /ora01/oracle/oradata/demo/user_05.dbf
,再startup启动数据库报错,报找不到user_05.dbf 数据文件,之后,我执行
alter database create datafile '/ora01/oracle/oradata/demo/user_05.dbf'
重新创建数据文件,
然后再执行 recover datafile '/ora01/oracle/oradata/demo/user_05.dbf';
居然可以成功,然后可以正常打开数据库,正常使用该 表空间数据文件。
想问一下,我创建表空间时,使用了nologging,为何使用 recover datafile '/ora01/oracle/oradata/demo/user_05.dbf';
命令应用重做日志会成功呢?
创建表空间时,使用了nologging选项,不是不记录记录重做日志的吗?
为什么还可以应用日志恢复该数据文件的呢?
待复,感谢!oraclenologgingrecover

解决方案 »

  1.   

    不是说recover不行,是recover 之后,可能出现block是坏块,无法正常使用
      

  2.   

    ---
    不是啊。你没看明我的意思,我是说在创建表空间和表时使用了nologging选项,但是还能正常恢复数据文件,为什么呢?使用nologging选项不是不记录重做日志的吗?为何还能recover恢复数据文件的数据?
      

  3.   

    nologging 不影响正常的数据库操作的日志生成,只影响所谓的 bulk operation,比如 direct path 的 sql loader 等等。
      

  4.   

    TOM:
    and we said...The NOLOGGING option on the CREATE table only affects the actual operation of the CREATE 
    TABLE itself. All subsequent operations are logged as normal. 以上是Tom大神的原文