我数据库里有两个撤销表空间UNDOTBS01和MYUNDO
我现在把数据库的撤销的空间从UNDOTBS01更该为了MYUNDO,并且将UNDOTBS01设置为了offline
现在我运行DDL语句的时候老是报下面的错误,请大鸟赐教
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-00376: 此时无法读取文件 2
ORA-01110: 数据文件 2: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF'

解决方案 »

  1.   

    显式归档,然后执行DDL试试,或者重启
      

  2.   

    1、楼上的显示归档可能是将在归档模式下,将某个表空间置于归档模式如:
    sql>alter tablespace tablespace_name begin backup;
    2、在切换UNDO表空间时,如果还来的事务还没有完成,则仍然使用原来的UNDO表空间,你是否是原来的事务并未完成。
    SQL> show parameter undo
     
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    undo_management                      string      AUTO
    undo_retention                       integer     900
    undo_tablespace                      string      UNDOTBS1
     
    SQL> create undo tablespace myundotbs datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\MYUNDOTBS01.DBF' size 50M;
     
    Tablespace created
     
    SQL> alter system set undo_tablespace=myundotbs;
     
    System alteredSQL> show parameter undo
     
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    undo_management                      string      AUTO
    undo_retention                       integer     900
    undo_tablespace                      string      MYUNDOTBSSQL> alter tablespace undotbs1 offline;
     
    Tablespace alteredSQL> SELECT t.tablespace_name, t.status FROM dba_tablespaces t;
     
    TABLESPACE_NAME                STATUS
    ------------------------------ ---------
    SYSTEM                         ONLINE
    UNDOTBS1                       OFFLINE
    SYSAUX                         ONLINE
    TEMP                           ONLINE
    USERS                          ONLINE
    EXAMPLE                        ONLINE
    MYUNDOTBS                      ONLINE
     
    7 rows selected
     
    SQL> insert into t values(20);
     
    1 row inserted
     
    SQL> commit;
     
    Commit complete
     
    SQL> 
      

  3.   

    可以把不要的删掉
    shutdown immediate
    startup mount
    alter database datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF' offline drop
    startup
      

  4.   

    我操作的,没点问题
    SQL> conn /as sysdba
    已连接。
    SQL> show parameter undoNAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    undo_management                      string      AUTO
    undo_retention                       integer     900
    undo_tablespace                      string      UNDOTBS1
    SQL> select name from v$tablespace
      2  /NAME
    ------------------------------
    SYSTEM
    UNDOTBS1
    SYSAUX
    USERS
    TEMPSQL> create undo tablespace UNDOTBS2
      2  datafile 'F:\oracle\product\10.2.0\oradata\orcl\UNDOTBS2.01.dbf' size 25M
      3  /表空间已创建。SQL> alter system set undo_tablespace=UNDOTBS2
      2  /系统已更改。
    SQL> alter system set undo_tablespace=UNDOTBS2 scope=both
      2  /系统已更改。
    SQL> drop tablespace UNDOTBS1 including contents and datafiles
      2  /表空间已删除。SQL> shutdown immediate
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup
    ORACLE 例程已经启动。Total System Global Area  612368384 bytes
    Fixed Size                  1250428 bytes
    Variable Size             213912452 bytes
    Database Buffers          390070272 bytes
    Redo Buffers                7135232 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL> show parameter undoNAME                                 TYPE        VALUE
    ------------------------------------ ----------- --------------------------
    undo_management                      string      AUTO
    undo_retention                       integer     900
    undo_tablespace                      string      UNDOTBS2
    SQL> select tablespace_name,status from dba_tablespaces
      2  /TABLESPACE_NAME                STATUS
    ------------------------------ ---------
    SYSTEM                         ONLINE
    SYSAUX                         ONLINE
    TEMP                           ONLINE
    USERS                          ONLINE
    UNDOTBS2                       ONLINESQL> conn scott/sys
    已连接。
    SQL> insert into emp select * from emp_test
      2  /已创建14行。SQL> commit
      2  /提交完成。