ORA-30036: 无法按 8 扩展段 (在还原表空间 'UNDOTBS1' 中)
(2013-11-15 15:46:13)
标签:
oracleora-30036undotbs1it |
分类: Oracle |
原因:undotbs1表空间不够
用plsql工具(好像toad里面不起作用),在命令窗口执行如下命令:
1、直接更改现在的UNDOTBS1大小
alter database datafile
'E:\Oracle_12c_Database\oradata\rmdb2\UNDOTBS01.DBF' resize
65536M;
其中引号中的文件路径为你自己安装的数据库对应文件路径。
2、创建一个新的undotbs,并使用新的undotbs
CREATE BIGFILE UNDO TABLESPACE undotbs2 DATAFILE
'E:\Oracle_12c_Database\oradata\rmdb2\UNDOTBS02.DBF' SIZE
65536M;
更改系统undotbs:
ALTER SYSTEM SET undo_tablespace=undotbs2;
此时可以删除原来的UNDOTBS1:
DROP TABLESPACE undotbs1;
利用SELECT tablespace_name FROM dba_tablespaces WHERE
contents='UNDO';可以查看现在的undotbs有哪些。
但是你会发现文件路径中E:\Oracle_12c_Database\oradata\rmdb2\UNDOTBS01.DBF还是无法删除的。
这是因为数据库启动时使用的该文件。
到数据库安装目录E:\Oracle_12c_Database\product\12.1.0\dbhome_1\dbs下init.ora文件中可以找到有一句
undo_tablespace='UNDOTBS1'
将它改成undo_tablespace='UNDOTBS2'
重启数据库或重启服务器后,可删掉UNDOTBS01.DBF。
建议用第一种方法简单快捷,除非UNDOTBS01.DBF损坏可以用第二种方法。
可以参考如下文章:
http://blog.sina.com.cn/s/blog_676255e101018d5s.html
http://blog.sina.com.cn/s/blog_6170af260100f7in.html