网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 备份与恢复 > Oracle数据库常见错误操作及解决方案  

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

2007-05-18  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

        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空间有多少:

网管bitscn_com

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


中国网管论坛bbs.bitsCN.com


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

Select class,count from V$waitstat where calss in(‘system undo header’,’ system undo block’,’undo header’,’undo block’);
网管u家u.bitscn@com

和  

网管网www_bitscn_com

Select sum(value) from V$sysstat where name in (‘db_block_gets’,’consistents gets’);
网管联盟bitsCN@com

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

        ORA-01652:unable to extend temp segment by num in tablespace name 网管u家u.bitscn@com

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

中国网管联盟bitsCN.com

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

SQL>Select file_id,block_id,blocks,bytes from sys.dba_free_space where tablespace_name=
<users>’;
网管u家u.bitsCN.com

返回的信息可初步确定可用空间的最大块,看一下它是否小于错误信息中提到的尺寸,再查看一下缺省的表空间参数:

网管联盟bitsCN@com

SQL>SELECT INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,PCT_INCREASE FROM SYS.DBA_TABLESPACES
WHERE TABLESPACE_NAME=name;

中国网管论坛bbs.bitsCN.com


通过下面的SQL命令修改临时段表空间的缺省存储值:
           SQL>ALTER TABLESPACE name DEFAULT STORAGE (INITIAL XXX NEXT YYY);

适当增大缺省值的大小有可能解决出现的错误问题,也可以通过修改用户的临时表空间大小来解决这个问题:
         SQL>ALTER USER username TEMPORARY TABLESPACE new_tablespace_name; 

    使用ALTER TABLESPACE命令,一但完成,所增加的空间就可使用,无需退出数据库或使表空间脱机,但要注意,一旦添加了数据文件,就不能再删除它,若要删除,就要删除表空间。

网管网www.bitscn.com

一个报错例子如下:  

网管网www_bitscn_com

ORA-1652:unable to extend temp segment by 207381 in tablespace TEMPSPACE
网管bitscn_com
ORA-01628:max # of extents num reached for rollback segment num

网管网www.bitscn.com


TAGs   操作   解决方案   错误   常见   数据库   空间   解决   一个   使用      
 上一篇:如何使用Oracle 10gR2's RMAN进行加密备份   下一篇:在操作系统损坏时恢复Oracle10g全过程
Oracle数据库常见错误操作及解决方案 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: