ORACLE:ORA-01552错误是因为没有Oracle某些操作没有足够的回滚表空间导致
先来看看报错: java.sql.SQLException: ORACLE:ORA-01552: cannot use system rollback segment for non-system tablespace 'Hibernate'
解决办法:
修改数据库参数1、设置默认undo表空间2、undo表空间为自动管理
使用sqlplus以sysdba连接到Oracle
查看当前Oracle服务器的回滚表空间
命令: show parameter undo;
select name from v$tablespace; 分析下执行结果 从命令show parameter undo;的执行结果上看, 发现Oracle服务器没有抒写默认回滚表空间, 并且undo_management为MANUAL
这两个参数设置的不合适,需要更改
命令:
alter system set undo_tablespace=UNDOTBS1 scope=spfile;
报错了。 ORA-32001:write to SPFILE requested but no SPFILE specified at startup
没有spfile文件?
看看spfile文件的信息
命令:
show parameter spfile
果然没有
从当前pfile中创建一个spfile 如果要让Oracle使用新创建的spfile,需要重启Oracle服务器
命令:
create spfile from pfile;
shutdown immediate;
startup;
再来更改undo_tablespace和undo_management这两个参数的值
命令:
alter system set undo_tablespace=UNDOTBS1 scope=spfile;
alter system set undo_management=auto scope=spfile;
show parameter undo;
怎么没有生效呢?
是的, 这两个参数需要重启Oracle服务器后生效
命令:
shutdown immediate;
startup;
show parameter undo; 重新执行下代码,可以正常运行
|