文档解释
ORA-02828: Segment free list is empty
Cause: No segments are available to allocated.
Action: Free some segments or shut down the package and re-initialize it with a higher number of segments.
ORA-02828: Segment free list is empty是一个Oracle数据库警告,表明在使用表空间或磁盘组中的段时,没有段的free list。
官方解释
常见案例
正常处理方法及步骤
1. 重新执行INSERT或UPDATE语句,应当解决此问题。
2. 如果业务允许,可以将应用程序重新启动。在重新启动时,Oracle将尝试从表空间中重新恢复段的free list。
3. 如果重新启动不起作用,可以重新创建对该对象的锁,以便他们等待对象可以访问:
sql> ALTER TABLE table_name ADD SUPPLEMENTAL LOG DATA;
4. 如果以上步骤仍然没有解决问题,则可以重建free list,当更新表空间字典时,段的free list将被正确创建:
sql> ALTER TABLESPACE 更新表空间字典;
5.最后,Sleep数据库,然后重新启动他们:
sql> SHUTDOWN IMMEDIATE;
sql> STARTUP;