1.打开数据库时提示undo表空间不存在

SQL> alter database open;                 
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-30012: undo tablespace 'UNDOTBS01' does not exist or of wrong type

Process ID: 3236
Session ID: 1 Serial number: 5


解决方法:

[oracle@oracle ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Wed Aug 24 10:22:24 2016
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.

Total System Global Area  776646656 bytes
Fixed Size            2217384 bytes
Variable Size          557845080 bytes
Database Buffers      213909504 bytes
Redo Buffers            2674688 bytes
Database mounted.

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/home/oracle/app/oradata/orcl/system01.dbf
/home/oracle/app/oradata/orcl/sysaux01.dbf
/home/oracle/app/oradata/orcl/undotbs01.dbf            --undo表空间的数据文件
/home/oracle/app/oradata/orcl/users01.dbf
/home/oracle/app/oradata/orcl/tong.dbf

SQL> show parameter undo
NAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
undo_management              string     AUTO
undo_retention                 integer     900
undo_tablespace              string     UNDOTBS1      --undo表空间的名字
SQL> select name from v$tablespace;

NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1    --undo表空间的名字
USERS
TEMP
TONG1
6 rows selected.
SQL>


思路:根据启动oracle的错误可以看出,错误信息的undo表空间的名字与数据库里面的名字不一至,此时要在init.orcl.ora文件中修改undo_tablespace的值,用pfile文件启动数据库.


[oracle@oracle ~]$ cd $ORACLE_HOME/dbs
[oracle@oracle dbs]$ vim initorcl.ora
*.undo_tablespace='UNDOTBS1'              --修改这行的值

[oracle@oracle ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Wed Aug 24 10:26:06 2016
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup mount pfile='/home/oracle/app/product/11.2.0/dbhome_1/dbs/initorcl.ora'
ORACLE instance started.

Total System Global Area  776646656 bytes
Fixed Size            2217384 bytes
Variable Size          557845080 bytes
Database Buffers      213909504 bytes
Redo Buffers            2674688 bytes
Database mounted.
SQL> alter database open;

Database altered.
SQL> create spfile='/home/oracle/app/product/11.2.0/dbhome_1/dbs/spfileorcl.ora' from pfile;

File created.                  --pfile文件创建spfile文件
SQL> shutdown immediate           --重启数据库
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  776646656 bytes
Fixed Size            2217384 bytes
Variable Size          557845080 bytes
Database Buffers      213909504 bytes
Redo Buffers            2674688 bytes
Database mounted.
Database opened.
SQL>