本模块介绍了 Oracle 数据库 10g 如何自动管理撤消。
本模块讨论如下主题:
| 概述 | ||
| 前提条件 | ||
| 创建一个撤消表空间 | ||
| 将表空间用于撤消保留 | ||
| 生成一些活动 | ||
| 查看 Undo Advisor 建议 | ||
将光标置于该图标上将显示所有屏幕截图。您也可以将光标置于每个图标上,只查看与之关联的屏幕截图。
为简化回滚段的管理,Oracle9i 数据库引入了自动撤消管理 (AUM),在 AUM 中,数据库自动管理撤消(回滚)空间在各个活动会话之间的分配和管理。在使用 AUM 的数据库中,所有事务均共享一个撤消表空间。任何正在执行的事务都可以使用此表空间中的空闲空间。当撤消表空间中的空间不足时,将撤消空间从已提交的事务动态转移给正在执行的事务。通过 AUM 特性,管理员还可以对撤消保留进行控制。可以时钟时间(秒数)为单位指定要保留的撤消数量。使用保留控制,可以对系统进行配置,以使长时间运行的查询成功执行而不会遇到 ORA-1555(快照太旧)错误。可以使用一个新的可持续初始化参数 UNDO_RETENTION 指定撤消保留。此参数是动态的,因此可以在数据库操作期间使用 ALTER SYSTEM 命令随时更改它。
由于提供了自动撤消保留调整功能,AUM 特性在 Oracle 数据库 10g 中得到了进一步的增强。此特性在缺省情况下使用,它根据撤消表空间的大小自动确定最佳的撤消保留。在您不进行干预的情况下,Oracle 数据库 10g 根据系统活动适应撤消要求中的更改。这最大限度地提高了撤消表空间中的可用空间的使用率,并使长时间运行的查询可以成功完成,而不会遇到任何“Snapshot Too Old”(快照太旧)错误,只要您的撤消表空间足够大。
在本课程中,您将故意切换到一个小的撤消 tbs,尽管您使用自动撤消保留调整,但由于此撤消 tbs 太小,因此您将遇到 1555 错误。这种情况下,您需要撤消顾问程序来计算正确的大小(取决于负载)。
在开始本模块的学习之前,您应该已经:
| 1. | ||
| 2. | ||
| 3. |
下载 undoadv.zip 并将其解压缩到工作目录(例如,/home/oracle/wkdir) |
|
要在企业管理器中创建撤消表空间,请执行以下操作:
现在,您可以使用刚刚创建的表空间。执行以下操作:
| 1. |
单击 Undo Management。
|
| 4. |
单击 Change Tablespace。
|
| 5. |
选择 UT1 旁边的单选按钮并单击 OK。
|
| 6. |
撤消表空间已经更改为您刚刚创建的撤消表空间。现在,您可以查看它的工作情况。
|
要查看如何处理撤消管理,您需要生成一些活动。执行以下操作:
| 1. |
首先需要确定数据库的日期和时间。打开一个终端窗口,然后输入以下命令: cd wkdir sqlplus /nolog connect / as sysdba; @datetime datetime.sql 脚本如下所示: select to_char(sysdate,'DD-MON-YYYY HH24:MI:SS') from dual;
|
| 2. |
从同一会话中,执行以下命令: @newtable newtable.sql 脚本如下所示: create table newtable(b int, s varchar2(100));
|
| 3. |
从第一个会话中,执行以下命令: @uscript1 uscript1.sql 脚本如下所示: declare
|
| 4. |
打开其他终端窗口,并执行以下命令: cd wkdir sqlplus /nolog connect / as sysdba @uscript2 uscript2.sql 脚本如下所示: begin
|
| 5. |
切换回第一个 SQL*Plus 会话。很快,您将收到“Snapshot too old”错误。尽管您正在使用自动撤消保留调整,但您的撤消表空间太小,无法容纳更新脚本。
|
要查看撤消顾问程序提供的建议,请执行以下操作:
| 1. | 切换回企业管理器,并查看撤消管理页面。注意,由于缺省分析针对过去的七天,因此当前的建议大小为 61MB。由于您需要分析特殊负载,因此无论以前发生了什么情况,您都需要定制时间段。对 Analysis Time Period 选择 Customized Time Period,然后单击 Update Analysis。
|
| 2. |
对 Period Starts 域使用前面确定的日期和时间。对于 Period Ends 域,请使用同一值加上两个小时。完成后,按 OK 按钮。
|
| 3. |
您需要执行建议并增加撤消表空间的大小。单击 Edit Undo Tablespace。
|
| 4. |
单击 Add 添加一个元文件。
|
| 5. |
输入 ut2.dbf 作为文件名,并指定相应的任何建议。然后单击 OK。
|
| 6. |
单击 Apply。
|
| 7. |
选择 Database 路径式导航栏。
|
| 8. |
选择 Undo Management。
|
| 9. |
您需要再次更改时间段。Analysis Time Period 选择 Customized Time Period 并单击 Update Analysis。
|
| 10. |
将日期和时间更改为您在步骤 2 中创建的同一日期和时间。然后,单击 OK。
|
| 11. |
注意,问题或建议已不再存在。您可以尝试再次运行 uscript1 和 uscript2,以确保表空间的大小正确。 |