网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle10g废弃log_archive_start.
.数据库开发者常犯的十大错误,你.
.Mandrake 的中文环境 (1).
.Oracle收购TimesTen 提高数据库软.
.oracle trunc()函数的用法.
.AIX下字符界面安装oracle 10g过程.
.自定义函数:f_henry_GetStringLe.
.UNIX oracle 10g能用utl_file包读.
.statspack报告数据结果解释.
.Oracle网格计算中文资料—射频识.
.Weblogic中访问oracle数据库的连.
.Oracle9i进程的内存占用问题的说.
.100个ORACLE相关的网址大全.
.DBA应当如何查看Oracle数据库连接.
.Oracle数据库的安全策略分析(三.
.优化Oracle停机时间及数据库恢复.
.将PENDING OFFLINE状态的回滚段O.
.在Flashback数据库上获得较高可用.
.ORACLE SQL性能优化系列(三).
.对Oracle学习者的一些建议:兴趣.

ORA-01650

发表日期:2008-2-9



  
数据库很多表频繁报错 ora-01688 ORA-01650 等错误
ORA-01650: unable to extend rollback segment %s by %s in tablespace %s     
Cause: Failed to allocate extent for the rollback segment in tablespace.    
Action: Use the ALTER TABLESPACE ADD DATAFILE statement to add one or more files to the specified tablespace.
从原因上看 unable to extend 是因为没有邻近的空间可以去扩展
报错的是motorola表空间

首先!我的所有表的next 都是1m pctincrease 0


所以我就先去查motorola 所在表空间最大的邻近空间
SQL>SELECT  max(bytes)       
FROM    dba_free_space       
WHERE   tablespace_name = 'MOTOROLA';

MAX(BYTES)
----------
2126503936

这个结果明显比表的设置 next extent= 1024k 要大
那我们看看RPT_MOT_CELL_PER的参数

SELECT next_extent, pct_increase, tablespace_name   
FROM   dba_tab_partitions      
WHERE  partition_name='P9' AND table_owner = 'MOT_NMC' AND TABLE_NAME='RPT_MOT_CELL_PER';

NEXT_EXTENT PCT_INCREASE
----------- ------------
TABLESPACE_NAME
------------------------------------------------------------
     1048576            0
MOTOROLA


metalink上提供了解决方法:
1.ALTER TABLESPACE motorola COALESCE;

The extents must be adjacent to each other for this to work
 我用了!没有用
2 add datafile 或者 resize
  这个明显是有效果的!后来我加了数据文件以后也是有效果的!

3.修改next
  这个也是有效的

后来我发现我的思路有问题了

早最大的extent 并没有用!

SELECT count(*)    
FROM    dba_free_space       
WHERE   tablespace_name = 'MOTOROLA';
————————

47212

SELECT count(*)    
FROM    dba_free_space       
WHERE   tablespace_name = 'MOTOROLA'
and bytes<1048576;
————————

47208

大部分extent都是小与1m的所以不能分配 Oracle不会去找最大!

 

 

 

 

 

 


 
上一篇:Oracle新手最经常碰到的6个错误及解决方案(原创) 人气:618
下一篇:Oracle初学点滴-(1) 人气:774
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐