oracle undo表空间该如何估算,设计多大合适?

oracle undo表空间该如何估算,设计多大合适?,第1张

搜集推荐信息如下:

UNDO表空间用于存放UNDO数据,当执行DML *** 作时,oracle会将这些 *** 作的旧数据写入到UNDO段,以保证可以

回滚或者一致读等.

oracle undo表空间

undo表空间用于存放undo数据,当执行DML *** 作(insert、update、delete)时,oracle会将这些 *** 作的

旧数据写入到undo段。

undo数据的作用

1.回退事务

当执行DML *** 作修改数据后,旧数据被存放在undo段中。只要数据为提交、回滚段未写满或者回滚段为超

时的情况下,旧数据都能被回滚回来。

2.读一致性

通过DML *** 作后的数据没有提交之前,其他用户读取的数据都是回滚段里面的旧数据。

使用undo参数

1.undo_management

该初始化参数用于指定undo数据的管理方式。如果要使用自动管理模式,必须设置为auto,如果使用手工

管理模式必须设置该参数为manual,使用自动管理模式时,oracle会使用undo表空间管理,使用手工管理

模式时,oracle会使用回滚段管理undo数据。需要注意,使用自动管理模式时,如果没有配置初始化参数

UNDO_TABLESPACE,oracle会自动选择第一个可用的UNDO表空间存放UNDO数据,如果没有可用的UNDO表空

间,oracle会使用SYSTEM回滚段存放UNDO记录,并在ALTER文件中记载警告。

2,UNDO_TABLESPACE

该初始化参数用于指定例程所要使用的UNDO表空间,使用自动UNDO管理模式时,通过配置该参数可以指定例

程所要使用的UNDO表空间.

在RAC(Real Application Cluster)结构中,因为一个UNDO表空间不能由多个例程同时使用,所有必须为每

个例程配置一个独立的UNDO表空间.

3,UNDO_RETENTION

该初始化参数用于控制UNDO数据的最大保留时间,其默认值为900秒,从9i开始,通过配置该初始化参数,可

以指定undo数据的保留时间,从而确定倒叙查询特征(Flashback Query)可以查看到的最早时间点.

手工管理回滚段的规划:

SQL>show parameter undo

NAME TYPEVALUE

------------------------------------ ----------- ------------------------------

undo_managementstring AUTO

undo_retention integer900

undo_tablespacestring UNDOTBS1

SQL>show parameter transactions

NAME TYPEVALUE

------------------------------------ ----------- ------------------------------

transactions integer 187 ----------系统准备支持的事

务连接数量。

transactions_per_rollback_segmentinteger 5 --------------每个回滚段支持的事务

连接数量。回滚段数=187/5

SQL>show parameter rollback

NAME TYPEVALUE

------------------------------------ ----------- ----------

fast_start_parallel_rollback string LOW

rollback_segments string ----------------------设置回滚段的数量

transactions_per_rollback_segmentinteger 5

设置多个undo表空间放在不同磁盘上可以均衡i/o,减少文件争用,提高性能。

一. 查出数据库当前的undo表空间和数据文件SELECT a.name, b.name FROM v$tablespace a, v$datafile b WHERE a.name = (SELECT VALUE FROM v$parameter WHERE name = 'undo_tablespace') AND a.ts# = b.ts#二.用查询结果替代下面的<>部分,然后执行脚本Create UNDO TABLESPACE UNDOTBS2 DATAFILE <'/opt/oracle/oradata/orcl/undotbs02.dbf'>SIZE 100M REUSE AUTOEXTEND ONAlter SYSTEM SET UNDO_TABLESPACE=UNDOTBS2Drop TABLESPACE <UNDOTBS1>INCLUDING CONTENTS AND DATAFILESSelect * FROM DBA_TABLESPACESCreate UNDO TABLESPACE <UNDOTBS1>DATAFILE <'/opt/oracle/oradata/orcl/undotbs01.dbf'>SIZE <100M>REUSE AUTOEXTEND ONAlter SYSTEM SET UNDO_TABLESPACE=UNDOTBS1Drop TABLESPACE UNDOTBS2 INCLUDING CONTENTS AND DATAFILESSelect * FROM DBA_TABLESPACES

UNDO表空间用于存放UNDO数据,当执行DML *** 作时,oracle会将这些 *** 作的旧数据写入到UNDO段,以保证可以回滚或者一致读等,而临时表空间主要用来做查询和存放一些缓冲区数据。你听说UNDO也是临时表可能是因为这两个表空间都不会永久保存数据的原因。

-------------------------------------------------------------------------

oracle undo表空间

undo表空间用于存放undo数据,当执行DML *** 作(insert、update、delete)时,oracle会将这些 *** 作的旧数据写入到undo段。

undo数据的作用

1.回退事务

当执行DML *** 作修改数据后,旧数据被存放在undo段中。只要数据为提交、回滚段未写满或者回滚段为超时的情况下,旧数据都能被回滚回来。

2.读一致性

通过DML *** 作后的数据没有提交之前,其他用户读取的数据都是回滚段里面的旧数据。

使用undo参数

1.undo_management

该初始化参数用于指定undo数据的管理方式。如果要使用自动管理模式,必须设置为auto,如果使用手工管理模式必须设置该参数为manual,使用自动管理模式时,oracle会使用undo表空间管理,使用手工管理模式时,oracle会使用回滚段管理undo数据。需要注意,使用自动管理模式时,如果没有配置初始化参数UNDO_TABLESPACE,oracle会自动选择第一个可用的UNDO表空间存放UNDO数据,如果没有可用的UNDO表空间,oracle会使用SYSTEM回滚段存放UNDO记录,并在ALTER文件中记载警告。

2,UNDO_TABLESPACE

该初始化参数用于指定例程所要使用的UNDO表空间,使用自动UNDO管理模式时,通过配置该参数可以指定例程所要使用的UNDO表空间.

在RAC(Real Application Cluster)结构中,因为一个UNDO表空间不能由多个例程同时使用,所有必须为每个例程配置一个独立的UNDO表空间.

3,UNDO_RETENTION

该初始化参数用于控制UNDO数据的最大保留时间,其默认值为900秒,从9i开始,通过配置该初始化参数,可以指定undo数据的保留时间,从而确定倒叙查询特征(Flashback Query)可以查看到的最早时间点.

手工管理回滚段的规划:

SQL>show parameter undo

NAME TYPEVALUE

------------------------------------ ----------- ------------------------------

undo_managementstring AUTO

undo_retention integer900

undo_tablespacestring UNDOTBS1

SQL>show parameter transactions

NAME TYPEVALUE

------------------------------------ ----------- ------------------------------

transactions integer 187 ----------系统准备支持的事务连接数量。

transactions_per_rollback_segmentinteger 5 --------------每个回滚段支持的事务连接数量。回滚段数=187/5

SQL>show parameter rollback

NAME TYPEVALUE

------------------------------------ ----------- ----------

fast_start_parallel_rollback string LOW

rollback_segments string ----------------------设置回滚段的数量

transactions_per_rollback_segmentinteger 5

SQL>

当数据库启动的时候会判断私有回滚段是否满足我们事务的要求,如果满足则打开数据库;否则数据库会去找公有回滚段。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10013912.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存