欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

UNDO表空间失败的处理方法

程序员文章站 2024-01-31 16:34:58
...

表空间文件,如果被我们自己无意中删除,或者被其他程序破坏的话,Oracle将无法正常启动,也无法正常退出。

本文档中,测试环境是AIX6.1,日文系统。
一、UNDO表空间异常的现象
1、表空间文件,如果被我们自己无意中删除,,或者被其他程序破坏的话,Oracle将无法正常启动,也无法正常退出。
SQL> shutdown immediate
ORA-00376: ファイル12を読み込むことはできません。
ORA-01110: データファイル12: '/opt/oradata/DTCDB/undotbs_01.dbf'
2、通过Oracle命令删除UNDO表空间,同样也会出现错误。
$ sqlplus /nolog
con
SQL*Plus: Release 11.1.0.6.0 - Production on 水 3月 14 17:52:46 2012

Copyright (c) 1982, 2007, Oracle. All rights reserved.


SQL> conn /as sysdba
Connected to an idle instance.

SQL> startup
ORACLE instance started.
Total System Global Area 3874926592 bytes
Fixed Size 2144080 bytes
Variable Size 1761609904 bytes
Database Buffers 2097152000 bytes
Redo Buffers 14020608 bytes
Database mounted.
Database opened.

SQL> drop tablespace undotbs;
drop tablespace undotbs
*
ERROR at line 1:
ORA-01548:
アクティブなロールバックセグメント'_SYSSMU11_1331712400$'があります。表領域の
削除を終了しました
3、通过创建UNDO表空间,由于表空间名称已经存在,同样也不可能成功的。
SQL> create undo tablespace undotbs1 datafile '/opt/oradata/DTCDB/undotbs_01.dbf' size 10m autoextend on next 1m maxsize 1024m;
create undo tablespace undotbs1 datafile '/opt/oradata/DTCDB/undotbs_01.dbf' size 10m autoextend on next 1m maxsize 1024m
*
ERROR at line 1:
ORA-01537: ファイル'/opt/oradata/DTCDB/undotbs_01.dbf'を追加できません -
すでにデータベースの一部として存在します
4、如果创建一个新的UNDO表空间,即UNDO表空间名换一个新的,不在使用默认的表空间名称;然后删除原来默认表空间,同样出错。
SQL> create undo tablespace undotbs1 datafile '/opt/oradata/DTCDB/undotbs_02.dbf' size 10m autoextend on next 1m maxsize 1024m;
Tablespace created.

SQL> drop tablespace undotbs;
drop tablespace undotbs
*
ERROR at line 1:
ORA-01548:
アクティブなロールバックセグメント'_SYSSMU11_1331712400$'があります。表領域の
削除を終了しました
5、直接向UNDO表空间中添加数据库文件,还是出错。
SQL> alter tablespace undotbs add datafile '/opt/oradata/DTCDB/undotbs_01.dbf' size 10m autoextend on next 1m maxsize 1024m;
alter tablespace undotbs add datafile '/opt/oradata/DTCDB/undotbs_01.dbf' size 10m autoextend on next 1m maxsize 1024m
*
ERROR at line 1:
ORA-01537: ファイル'/opt/oradata/DTCDB/undotbs_01.dbf'を追加できません -
すでにデータベースの一部として存在します

SQL> alter tablespace undotbs mv datafile '/opt/oradata/DTCDB/undotbs_01.dbf';
alter tablespace undotbs mv datafile '/opt/oradata/DTCDB/undotbs_01.dbf'
*
ERROR at line 1:
ORA-02142: ALTER TABLESPACEオプションがないか、または無効です。

UNDO表空间失败的处理方法