过程回退 oracle,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参数重新创建回滚段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值