当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle数据库常见错误操作及解决方案

Oracle
理解SCN与TimeStamp的相互转换
用OMS来实现Oracle数据备份的方法
详细介绍Oracle数据库的启动和关闭
Oracle数据库重做日志文件丢失后的恢复
检测Oracle的可用性和表空间容量
oracle的long类型字段的应用
把数据从MySQL迁到Oracle的几点注意事项
没有Oracle客户端系统移植的三种方法
Oracle监听器服务不能启动的7步解决法
Oracle 10g的自动段空间管理(ASSM)
Oracle运行速度与效率高的秘密
Oracle实现自增型ID和删除重复记录
Oracle数据库存储过程的6个问题
Oracle 10G里手工建库的全过程
Oracle 10g手工创建数据库个人经验
redhat linux 下安装oracle 10g 的方法
Oracle静态注册和动态注册
Oracle数据更改后出错
JSP+Oracle简便通用的表单数据存储处理方法
Oracle 10g实用程序trcsess:跟踪sql语句

Oracle数据库常见错误操作及解决方案


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-31   浏览: 61 ::
收藏到网摘: n/a

        ORA-01650:unable to extend rollback segment NAME by NUM intablespace NAME

        产生原因:上述ORACLE错误为回滚段表空间不足引起的,这也是ORACLE数据管理员最常见的ORACLE错误信息。当用户在做一个非常庞大的数据操作导致现有回滚段的不足,使可分配用的回滚段表空间已满,无法再进行分配,就会出现上述的错误。

解决方式:使用“ALTER TABLESPACE tablespace_name ADD DATAFILE filename SIZE size_of_file”命令向指定的数据增加表空间,根据具体的情况可以增加一个或多个表空间。当然这与还与你主机上的裸盘设备有关,如果你主机的裸盘设备已经没有多余的使用空间,建议你不要轻意的增加回滚段表空间的大小,可使用下列的语句先查询一下剩余的tablespace空间有多少:

Select user_name,sql_text from V$open_cursor where user_name=<user_name>’;



        如果多余的空间比较多,就可以适当追加一个大的回滚段给表空间使用,从而避免上述的错误。你也可以用以下语句来检测
一下rollback segment的竞争状况:  

Select class,count from V$waitstat where calss in(‘system undo header’,’system undo block’,’undo header’,’undo block’);

和  

Select sum(value) from V$sysstat where name in (‘db_block_gets’,’consistents gets’);

如果任何一个class in count/sum(value)大于1%,就应该考虑增加rollback segment。 

        ORA-01652:unable to extend temp segment by num in tablespace name

产生原因:ORACLE临时段表空间不足,因为ORACLE总是尽量分配连续空间,一但没有足够的可分配空间或者分配不连续就会出现上述的现象。

解决方法:我们知道由于ORACLE将表空间作为逻辑结构-单元,而表空间的物理结构是数据文件,数据文件在磁盘上物理地创建,表空间的所有对象也存在于磁盘上,为了给表空间增加空间,就必须增加数据文件。先查看一下指定表空间的可用空间,使用视图SYS.DBA_FREE_SPACE,视图中每条记录代表可用空间的碎片大小: