文档解释
ORA-30018: Create Rollback Segment failed, USN string is out of range
Cause: the system runs out of undo segment number. Too many undo segments exist.
Action: drop some of the unused undo segments and retry operation.
错误说明
ORA-30018:创建回滚段失败,USN字符串超出范围。这是一个Oracle错误,表明在创建新回滚段时发生错误。USN(undo segment num)字符串在数据库中存储和检索回滚段所需要的信息。其中一个原因是USN值超出数据库可接受的值范围,还可能是使用了当前或以前使用过的USN字符串,没有足够的空间来存储新的回滚段信息,或者是数据库未正确配置。
常见案例
ORA-30018的最常见的操作概率就是添加rollback_segments 段。在试图添加新的rollback_segments时,如果提供的USN参数 错误或超出Oracle数据库允许的最大值,就会出现ORA-30018的错误的。使用不合法的USN字符串,此外也可能出现ORA-30018的错误。例如,使用没有足够的空间来存储新的rollback_segments段信息,没有正确配置数据库,甚至是服务器响应时间过长,又或者是有人尝试添加一个已经存在的rollback_segments段。
解决方法
解决ORA-30018错误的最基本方法就是保证在添加rollback_segments段时,提供正确的USN值,且不要重复使用已存在的USN字符串或已使用过的USN。如果把所有可以改变的参数都改对了,仍旧无法解决ORA-30018的问题,可以考虑扩展磁盘及升级数据库,使其能够支持更多的回滚段。要解决ORA-30018的问题,需要确定是什么导致在新建回滚段时出现这个错误。一旦确定是什么原因,就可以按照上述方法来解决。