研究了一下,试着修改UNDO表空间及大小,以下的步骤是在数据库版本11.2.0.4 Solaris平台上试验的,当前没有活跃的事务。
1. 查看当前UNDO表空间“UNDOTBS1”的大小和实例是否正在使用spfile
SQL> select bytes/1024/1024 "Size(M)",name from v$datafile where name like '%undo%';
Size(M) NAME
---------- --------------------------------------------------------------------------------
165 /u01/app/oracle/oradata/OSTEGC/undotbs01.dbf
SQL> show parameter pfile;
NAME TYPE VALUE
------------------ ----------- ------------------------------
spfile string /u01/app/oracle/oradb/dbs/spfileOSTEGC.ora
2. 根据数据库的要求,创建一个新的表空间。
SQL> create undo tablespace UNDOTBS2 datafile '/u01/app/oracle/oradata/OSTEGC/undotbs02.dbf' size 400M;
Tablespace created.
3. 创建pfile
SQL> create pfile from spfile;
File created.
创建的pfile在$ORACLE_HOME/dbs目录下,文件名为init$ORACLE_SID.ora,修改以下参数。
undo_tablespace=UNDOTBS2
4. shutdown immediate关闭数据库
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
5. 用创建的pfile文件启动数据库
SQL> startup pfile='/u01/app/oracle/oradb/dbs/initOSTEGC.ora'
ORACLE instance started.
6. 确认新的表空间已经启用
SQL> show parameter undo_tablespace
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_tablespace string UNDOTBS2
7. 删除旧的UNDO表空间
SQL> drop tablespace UNDOTBS1 including contents and datafiles;
Tablespace dropped.
8. 可重新创建SPFILE,然后使用SPFILE重新启动实例
SQL> create spfile='/u01/app/oracle/oradb/dbs/spfileOSTEGC.ora' from pfile='/u01/app/oracle/oradb/dbs/initOSTEGC.ora';
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29960937/viewspace-1316741/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29960937/viewspace-1316741/