名站网址导航为大家提供关于数据库教程相关的教程网站知识。
正在看的ORACLE教程是:ORACLE常见错误具体相关代码的分析与解决(一)。 在使用ORACLE的过程过,咱们会经常遇到一些ORACLE产生的错误,对于初学者而言,这些错误可能有点模糊,而且可oracle初始化参数设置
alter rollback segment "RB1" offline; alter rollback segment "RB2" offline; alter rollback segment ",drop rollback segment "RB1"; drop rollback segment "RB2"; drop rollback segment "RB3"; drop rollback,alter rollback segment "RB1" online; alter rollback segment "RB2" online; alter rollback segment "RB,alter database add logfile c:\orant\database\log1.ora size 10m; alter database add logfile c:\orant\,INITORAL.ORA配置: SGA=db_block_buffers*db_block_size share_pool_size log_buffers sort_arer_size 1m =1/,DB_BLOCK_BUFFERS=16000(db_block_size=2k) ShARE_POOL_SIZE=30720000(站点服务器要增大10倍) LOG_BUFFERS=655360 SORT,添加: DML_LOCKS=1000 OPEN_CURSORS=200
能一时不知怎么去处理产生的这些错误,本人就使用中出现比较频繁的错误具体相关代码一一做出分析,希望能够帮助您找到一个
合理解决这些错误的具体相关方法,同时也希望您能够提出您的不同看法。毕竟作为一种交流的手段,个人意见难免过于偏颇,而
且也必定存在着不足,出错之处在所难免。写这篇文章的目的就是想通过相互之间的交流共同促进,共同进步。
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='';
假如如果多余的空间比较多,就可以适当追加一个大的回滚段给表空间使用,从而避免上述的错误。您也可以用以下数据库语句
来检测一下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。
相应的英文如下:
Cause:Failed to allocate extent from the rollback segment in tablespace
Action:Use the ALTER TABLESPACE ADD DATAFILE statement to add one or more files to the specified
tablespace.
ORA-01652:unable to extend temp segment by num in tablespace name
产生原因:ORACLE临时段表空间不足,因为ORACLE总是尽量分配连续空间,一但没有足够的可分配空间或者分配不连
续就会出现上述的现象。
解决具体相关方法:咱们知道由于ORACLE将表空间作为逻辑结构-单元,而表空间的物理结构是数据网站网站文件,数据网站网站文件在磁盘上物
理地创建,表空间的所有对象也存在于磁盘上,为了给表空间增加空间,就必须增加数据网站网站文件。先查看一下指定表空间的
可用空间,使用视图SYS.DBA_FREE_SPACE,视图中每条记录代表可用空间的碎片大小:
SQL>Select file_id,block_id,blocks,bytes from sys.dba_free_space where tablespace_name='';
返回的信息可初步确定可用空间的最大块,看一下它是否小于错误信息中提到的尺寸,再查看一下缺省的表空间参
数:
SQL>SELECT INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,PCT_INCREASE FROM SYS.DBA_TABLESPACES WhERE
TABLESPACE_NAME=name;
通过下面的SQL开始执行命令修改临时段表空间的缺省存储值:
SQL>ALTER TABLESPACE name DEFAULT STORAGE (INITIAL XXX NEXT YYY);
适当增大缺省值的大小有可能解决出现的错误问题,也可以通过修改用户的临时表空间大小来解决这个问题:
SQL>ALTER USER username TEMPORARY TABLESPACE new_tablespace_name;
使用ALTER TABLESPACE开始执行命令,一但完成,所增加的空间就可使用,无需退出网站数据库或使表空间脱机,但要注意,一旦添加
了数据网站网站文件,就不能再删除它,若要删除,就要删除表空间。
一个报错例子如下:
ORA-1652:unable to extend temp segment by 207381 in tablespace TEMPSPACE
相应的英文如下:
Cause: Failed to allocate extent for temp segment in tablespace
Action:Use the ALTER TABLESPACE ADD DATAFILE statement to add one or more files to the specified
tablespace or create the object in another tablespace.