oracle 回退段 ORA
回滚段用于对数据库修改时, 保存原有的数据, 以便稍后可以通过使用ROLLBACK来恢复到修改前的数据; 另外, 回滚段可以为数据库中的所有进程提供读一致性. 因此, 回滚段设置的合理与否, 直接影响到数据库的性能.
回滚段的维护及查询
(1) 创建回滚段
__CREATE ROLLBACK SEGMENT RB01
__TABLESPACE RBS1
__STORAGE (
____INITIAL 100K
____NEXT 100K
____MINEXTENTS 20
____MAXEXTENTS 100
____OPTIMAL 2000K );
2) 更改ONLINE/OFFLINE状态
__ALTER ROLLBACK SEGMENT RB01 ONLINE;
__ALTER ROLLBACK SEGMENT RB01 OFFLINE;
(3) 更改OPTIMAL参数
__ALTER ROLLBACK SEGMENT RB01
__STORAGE ( MAXEXTENTS 200
____OPTIMAL 2048K );
(4) 缩小回滚段
__ALTER ROLLBACK SEGMENT RB01 SHRINK;
(有OPTIMAL参数时, 缩小到OPTIMAL值; 没有OPTIMAL参数时, 缩小到MINEXTENTS所对应的尺寸)
__ALTER ROLLBACK SEGMENT RB01 SHRINK TO 2048K;
(5) 修改INITIAL/NEXT参数
*** 建议5: 根据原则3, 修改NEXT时, 总应该同时修改INITIAL.
INITIAL参数无法直接修改, 只能先DROP, 然后再CREATE.
__DROP ROLLBACK SEGMENT RB01;
__CREATE ROLLBACK SEGMENT RB01
__TABLESPACE RBS1
__STORAGE ( INITIAL 100K
____NEXT 100K
____MINEXTENTS 20
____MAXEXTENTS 121
____OPTIMAL 2000K )
(6) 在事务中使用特定的回滚段
__SET TRANSACTION USE ROLLBACK SEGMENT RB_LARGE1;
(7) 常用的有关回滚段的系统数据字典
DBA_ROLLBACK_SEGS (相关表:DBA_SEGMENTS)
V$ROLLNAME
V$ROLLSTAT
V$TRANSACTION (相关表: V$SESSION)
有关回滚段的常见错误及解决方法
(1) 回滚段空间不够
ORA-01562 - failed to extend rollback segment number string
回滚段空间不够的原因一般有以下几种情况:
A. 回滚段所在表空间剩余的空闲空间太小, 无法分配下一个EXTENT.
B. 回滚段扩展次数已经达到MAXEXTENTS限制
解决方法:
A. 扩大回滚段所在表空间
B. 设置较大的MAXEXTENTS参数
C. 为回滚段设置OPTIMAL参数
D. 用较大的EXTENT参数重新创建回滚段
相关文档:
装了个Oracle 10g,却发现找不到企业管理器了。原来10g又升级了管理工具,不再采用8i, 9i的那些Java工具了,而是与时俱进地改用了Web方式。按照网上的方法:http://机器的IP地址:5500/em,还是没有连上。难道端口号不对吗?
查看Oracle 10g安装目录install下的readme文件:
显示:
数据 ......
星期一 发现一个表有很多重复数据 随机使用删除重复数据的语句。
星期二 发现 这语句跑了很久都没跑完,13个小时了!只不过删除10个月的数据而已
依然断了它,可它回滚花了4个小时,上午影响了数据库的服务速度了。
然后一个月一个月检查重复数据的范围,最后定位到9月到10月。删除它,用那条语句很慢,一个小时后 ......
一.物理读(physical read)
当数据块第一次读取到,就会缓存到buffer cache 中,而第二次读取和修改该数据块时就在内存buffer cache 了 以下是例子:
1.1 第一次读取:
C:"Documents and Settings"Paul Yi>sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on Thu Feb 28 09:32:04 2008
Copyright (c) 19 ......
http://www.cnblogs.com/sleepywang/archive/2009/10/13/1582654.html
1. 下载oracle的客户端程序包(30M)
只需要在
Oracle
下载一个叫
Instant Client Package
的软件就可以了,这个软件不需要安装,只要解压就可以用了,很方便,就算重装了系统还是可以用的。
......
oracle的nvl函数的用法 通过查询获得某个字段的合计值,如果这个值位null将给出一个预设的默认值
select nvl(sum(t.dwxhl),1) from tb_jhde t where zydm=-1这里关心的nvl的用法,nvl(arg,value)代表如果前面的arg的值为null那么返回的值为后面的value
如: NVL(a,b)就是判断a是否是NULL,如果不是返回a的值,如� ......