Oracle 12c 新特性之临时Undo--temp_undo_enabled

0    120    1

Tags:

👉 本文共约5988个字,系统预计阅读时间或需23分钟。


https://docs.oracle.com/en/database/oracle/oracle-database/12.2/admin/managing-undo.html#GUID-B159A41D-C28C-4E6E-BAAF-FE5ACE2C18B7

每个 Oracle 数据库包含一组与系统相关的表空间,例如 SYSTEM , SYSAUX , UNDO&TEMP ,并且它们在 Oracle 数据库中每个都用于不同的目的。 在 Oracle 12c 之前,临时表生成的 Undo 记录是存储在 Undo 表空间 和 Redo 日志文件中 的,通用表和持久表的 undo 记录也是 存储在 Undo 表空间中的,从 Oracle 12c 开始 ,临时 Undo 记录可以存储在 临时表空间中,且不再记录到 Redo 日志文件中, 这样做的主要好处在于: 减少 Undo 表空间 的使用 , 且 减少了 Redo 数据的生成 。可以在会话级别或者数据库级别来启用临时 Undo 选项。

Temporary undo records are stored in the database's temporary tablespaces and thus are not logged in the redo log. When temporary undo is enabled, some of the segments used by the temporary tablespaces store the temporary undo, and these segments are called temporary undo segments .You can enable or disable temporary undo for a session or for the system. To do so, set the TEMP_UNDO_ENABLED initialization parameter.

Oracle 12c 新特性之临时Undo--temp_undo_enabled

系统会广泛使用临时表作为暂存区来存放中间结果。这是因为更改这些表的速度远远超过更改非临时表的速度。性能之所以会改进,主要是因为不会为临时表中的更改直接生成重做条目。但是,对临时表(和索引)的操作的还原数据仍会记录在重做日志中。

临时表的还原数据对于在临时对象生存期中实现读取一致性和事务处理回退非常有用。除此之外,不需要该还原数据。因此,它无需保存在重做流中。例如,事务处理恢复将放弃临时对象的还原数据。

从 Oracle Database 12c 开始,可以将由临时表的事务处理生成的还原数据直接存储在临时表空间的一个单独还原流中,以避免将该还原数据记录在重做流中。这种新模式称为临时还原。

注:临时还原段是会话专用的。它将存储对属于相应会话的临时表(一般为临时对象)所做的更改的还原数据。

临时 Undo :优点和设置

• 临时 Undo 可减少 Undo 表空间中存储的 Undo 数据量。

• 临时 Undo 可减小重做日志的大小。

• 临时 Undo 支持在具有 Oracle Active Data Guard 选件的物理备用数据库中对临时表执行 DML 操作。

SQL> ALTER SESSION SET TEMP_UNDO_ENABLED = TRUE;

SQL> ALTER SYSTEM SET TEMP_UNDO_ENABLED = TRUE;

• 会话首次使用临时对象时会选择临时还原模式。

启用临时还原具有以下优点:

• 临时还原可减少还原表空间中存储的还原数据量。还原表空间中的还原数据越少,还原记录所需要的还原保留期越实际。

• 临时还原可减小重做日志的大小。由于写入重做日志的数据较少,因此性能会有所提高,并且由于要进行语法分析的重做数据较少,因此,用于对重做日志记录进行语法分析的组件(如 LogMiner )性能也会有所提高。

• 临时还原支持在具有 Oracle Active Data Guard 选件的物理备用数据库中对临时表执行数据操纵语言 (DML) 操作。但是,必须在主数据库上发出创建临时表的数据操纵语言 (DDL) 操作。

可以为特定会话或整个系统启用临时还原。为某个会话启用临时还原时,该会话将创建临时还原,而不影响其他会话。当会话首次使用临时对象时,系统将为该会话的其余部分设置 TEMP_UNDO_ENABLED 初始化参数的当前值。因此,如果为某个会话启用了临时还原,并且该会话使用临时对象,则无法为该会话禁用临时还原。同样,如果为某个会话禁用了临时还原,并且该会话使用临时对象,则无法为该会话启用临时还原。为系统启用临时还原时,所有现有会话和新会话都将创建临时还原。

(一) 启用临时 undo 功能

要使用这一新功能,需要做以下设置:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
Oracle 12c 新特性之临时Undo--temp_undo_enabled后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部