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

2016-02-19 21:16 5 1 收藏

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享Oracle数据库操作常见错误及解决方案吧。

【 tulaoshi.com - 编程语言 】

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  产生原因:上述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的竞争状况:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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,视图中每条记录代表可用空间的碎片大小:

SQLSelect file_id,block_id,blocks,bytes from sys.dba_free_space where tablespace_name=’users’;

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

SQLSELECT INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,PCT_INCREASE FROM SYS.DBA_TABLESPACES WHERE
TABLESPACE_NAME=name;

  通过下面的SQL命令修改临时段表空间的缺省存储值:

SQLALTER TABLESPACE name DEFAULT STORAGE (INITIAL XXX NEXT YYY);

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

SQLALTER USER username TEMPORARY TABLESPACE new_tablespace_name;

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

来源:http://www.tulaoshi.com/n/20160219/1625757.html

延伸阅读
正在看的ORACLE教程是:ORACLE数据库应用开发常见问题及排除。硬件平台:SUN Ultra Enterprise 3000  操作系统:Solaris 2.5(中文简体)  磁盘:4.2GB  内存:256MB  ORACLE B版本:7.3.2.1  安装目录:/database/oracle(/database下有2GB空间) 安装产...
标签: ASP
  eNet学院 如今,CGI日渐衰落,ASP大行其道,大有取而代之之势。对个人主页制作者而言,CGI也确实太复杂了,尤其是在数据库的操 作上,繁复无比让人望而生畏。相较而言, ASP则简单得多。其面向对象的思想,将复杂的底层操作掩盖,只留下简单的调用接 口。对数据库的操作更是将它的优点体现得淋漓尽致。 本文将简单介绍在个人...
提起数据库,第一个想到的公司,一般都会是Oracle。该公司成立于1977年,最初是一家专门开发数据库的公司。 Oracle在数据库领域一直处于领先地位。1984年,首先将关系数据库转到了桌面计算机上。然后,Oracle的下一个版本, 版本5,率先推出了分布式数据库、客户/服务器结构等崭新的概念。Oracle的版本6首创行锁定模式以及对称多处理计算...
标签: 服务器
phpMyAdmin导入数据库超过限制大小的解决方案 网站建立时间久了,数据库会越来越大,数据库导入导出时经常会有数据库超过限制大小情况,普通的修改上传限制大小已经无法满足你的需求了,接下来就需要修改下config.inc.php 文件来实现导入超大型数据库,在这个配置文件里找到: $cfg['UploadDir'] = ;$cfg['SaveDir'] = ; 将其改成...
Oracle数据库以其强大的功能和稳定性而著称,但同时,在开发和管理方面也存在很多困难,笔者在此总结了一些Oracle数据库开发和管理的常见问题,希望能对大家有所帮助。 问:如果发现表中有坏块,如何检索其它未坏的数据? 答:首先需要找到坏块的ID(可以运行dbverify实现),假设为1234。运行下面的查询查找段名: selec...

经验教程

460

收藏

7
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部