RMAN> sql 'alter datafile F:\app\Administrator\oradata\orcl\SYSAUX01.DBF offline';
谁帮我看看它错在那里呀
下面是错误信息:
sql 语句: alter datafile F:\app\Administrator\oradata\orcl\SYSAUX01.DBF offline
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: sql 命令 (default 通道上, 在 11/26/2011 19:54:26 上) 失败
RMAN-11003: 在分析/执行 SQL 语句期间失败: alter datafile F:\app\Administrator\or
adata\orcl\SYSAUX01.DBF offline
ORA-00940: 无效的 ALTER 命令

解决方案 »

  1.   

    --归档模式下可以
    alter database datafile ... offline--非归档模式下 
    alter database datafile ... offline drop
    --或者
    alter tablespace ... offline
      

  2.   


    而且你rman写的命令也不正确,路径需要增加单引号。
      

  3.   

    现在两种写法
    写法1:
    RMAN> sql 'alter database datafile ''F:\app\Administrator\oradata\orcl\SYSAUX01.DBF'' offline';写法2:
    RMAN> sql "alter database datafile 'F:\app\Administrator\oradata\orcl\SYSAUX01.DBF' offline";这两种写都不对。1楼的那种写法在sqlplus执行是没问题的,但是在rman中执行就出错了。
      

  4.   


    --归档模式下可以
    alter database datafile ... offline--非归档模式下 
    alter database datafile ... offline drop--或者
    alter tablespace ... offline
    这三句代码在RMAN中执行应该如何写呢?
      

  5.   

    1.在非规档模式(noachivelog)下恢复offline数据文件
     查看数据库处于何种归档模式: archive log list ;
    非归档模式下进行数据文件卸载后面必须加 drop 语法为:[ alter database datafile '/home/db/oracle/a.dbf' offline drop; ]
    恢复时 数据库必须处于mount状态下使用:recover datafile '/home/db/a.dbf' ;进行操作 
    [非归档模式下]卸载表空间(卸载后可直接进行挂载恢复):
              SQL> alter tablespace   DO_PARTITION_2 offline;          <卸载 ||v$datafile视图里面status为:offline,enabled为:disabled ;
              SQL> alter tablespace   DO_PARTITION_2 online;   <恢复如果是卸载数据文件的方式,必须进行恢复,恢复方法如下:
    卸载数据文件语法为:
     方法一: alter database datafile '/home/oracle/oracle/product/10.2.0/oradata/ora10g/DO_PARTITION_2.dbf' offline drop;
       处理方案: 必须处于mount状态下通过media进行恢复,v$datafile视图里面status为:RECOVER,enabled不变,为:READ WRITE ;第一步后台操作:
            SQL> recover datafile '/home/oracle/oracle/product/10.2.0/oradata/ora10g/DO_PARTITION_2.dbf';
            Media recovery complete.
            SQL> 
              
    此时虽然恢复成功,但v$datafile视图里面所记录的status状态仍然为:offline,执行第二步以后才能真正意义上的数据完成恢复
              SQL> select file#,status,enabled,name from v$datafile;
    第二步:
            还得指定文件进行online操作
            alter database datafile 
            '/home/oracle/oracle/product/10.2.0/oradata/ora10g/DO_PARTITION_2.dbf' online ;便完成恢复
    2.归档模式下数据文件[ 卸载 恢复 ]
            alter database datafile '/home/oracle/oracle/product/10.2.0/oradata/ora10g/DO_PARTITION_3.dbf' offline;
            alter database datafile '/home/oracle/oracle/product/10.2.0/oradata/ora10g/DO_PARTITION_3.dbf' offline drop;
            alter database datafile '/home/oracle/oracle/product/10.2.0/oradata/ora10g/DO_PARTITION_3.dbf' online;
            
            恢复时候多必须在数据库处于mount状态下进行recover操作,
             语法:recover datafile '/home/oracle/oracle/product/10.2.0/oradata/ora10g/DO_PARTITION_3.dbf'        
            总结:
                  1.  非归档模式下进行数据卸载必须在后面加drop,
                  2.  归档和非规定模式下多能直接卸载和恢复表空间;语法为: alter tablespace tablespace_name offline ;    
                    3.   无论是归档模式还是非归档模式下数据文件下载进行恢复时都必须通过介质进行恢复,
                              也就是说必须在数据库处于mount状态下进行recover datafile datafile_name 操作,
                              然后再进行恢复alter database datafile 'datafile_name' online ;才能完全恢复!
      

  6.   

    RMAN> startup已连接到目标数据库 (未启动)
    Oracle 实例已启动
    数据库已装载
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: startup 命令 (在 11/27/2011 14:48:12 上) 失败
    ORA-01157: 无法标识/锁定数据文件 13 - 请参阅 DBWR 跟踪文件
    ORA-01110: 数据文件 13: 'F:\ORABACKUP\DISK1\DB\LIN.DBF'RMAN> sql "alter database datafile 13 offline";sql 语句: alter database datafile 13 offlineRMAN> restore datafile 13;启动 restore 于 27-11月-11
    分配的通道: ORA_DISK_1
    通道 ORA_DISK_1: SID=134 设备类型=DISK
    分配的通道: ORA_DISK_2
    通道 ORA_DISK_2: SID=10 设备类型=DISK
    分配的通道: ORA_DISK_3
    通道 ORA_DISK_3: SID=136 设备类型=DISK通道 ORA_DISK_1: 正在还原数据文件00013
    输入数据文件副本 RECID=60 STAMP=768257298 文件名=F:\ORABACKUP\DISK4\ORCL\DATAFIL
    E\O1_MF_LIN_7F1R06PY_.DBF
    数据文件 00013 的还原目标: F:\ORABACKUP\DISK1\DB\LIN.DBF
    通道 ORA_DISK_1: 已复制数据文件 00013 的数据文件副本
    输出文件名=F:\ORABACKUP\DISK1\DB\LIN.DBF RECID=0 STAMP=0
    完成 restore 于 27-11月-11RMAN> recover datafile 13;启动 recover 于 27-11月-11
    使用通道 ORA_DISK_1
    使用通道 ORA_DISK_2
    使用通道 ORA_DISK_3正在开始介质的恢复
    介质恢复完成, 用时: 00:00:02完成 recover 于 27-11月-11RMAN> sql "alter database datafile 3 online";sql 语句: alter database datafile 3 onlineRMAN> startup数据库已经启动
    数据库已打开RMAN>
    --在RMAN中,改用文件号去恢复丢失了的数据文件可以完成。
    --为何用数据文件名不行呢?
    RMAN> sql "alter database datafile 'F:\OraBackup\disk1\db\lin.dbf' offline";