原文地址:https://oracle-base.com/articles/21c/space-management-enhancements-21c 原文作者:Tim Hall
本文介绍 Oracle 数据库 21c 空间管理增强功能。
目录
- SecureFiles 收缩
- 自动收缩临时表空间
- 自动收缩取消表空间
SecureFiles 收缩
在之前的版本中,我们只能通过移动 lob 来释放 lob 对于大型空间 lob 可能需要很长时间。
alter table tab1 move lob(lob_column_name) store as (tablespace new_ts); 在 Oracle 21c 在中间,我们可以在不影响访问的情况下整理日志段。这将释放未使用的空间,而不会产生完全移动 LOB 段的开销。
收缩可以针对特定列 lob 段落执行也可作为表级联操作的一部分:
alter table t1 modify lob (colb_column1) (shrink space); alter table t1 shrink space cascade; 在之前的版本中,级联操作是有效的,但是 LOB 段不包含在级联中。
V$SECUREFILE_SHRINK 视图包含用于段收缩操作的行。如果要求同一段的另一个收缩操作,则在操作过程中更新。
自动收缩临时表空间
顾名思义,Automatic Temporary Tablespace Shrink 该特性将缩小临时表空间的大小,以释放空间。如果需要更多,数据库可以首先增加临时表空间。该文件称为临时表空间的自动调整。这允许我们扩展和收缩临时表空间,而不会永久丢失磁盘空间。
文档仅限于新功能手册 这里只说明了功能,没有使用手册或日志记录的详细信息。
感谢 Roger MacNicol 指出 V$SYSSTAT 视图中的相关统计数据:
column name format a40 select con_id, name, value from v$sysstat where name like '%TBS%'; CON_ID NAME VALUE ---------- ---------------------------------------- ---------- 0 TBS Extension: tasks created 0 0 TBS Extension: tasks executed 0 0 TBS Extension: files extended 0 0 TBS Extension: bytes extended 0 0 TBS Shrink: tasks created 0 0 TBS Shrink: tasks executed 0 SQL> 这个功能是第一次 Oracle 19c 引入自治数据库,但从 Oracle 21c 一开始,可用于企业版安装。 此处 许可手册。
自动收缩取消表空间
顾名思义,Automatic Undo Tablespace Shrink 功能将缩小 undo 表空间的大小可以释放空间。如果可能的话,数据文件将被删除。这允许我们根据需要扩展和收缩取消表空间,而不是永久丢失磁盘空间。
文档仅限于新功能手册 在这里,它只是说它存在,没有使用控制或日志记录的详细信息。
感谢 Roger MacNicol 指出 V$SYSSTAT 视图中的相关统计数据:
column name format a40 select con_id, name, value from v$sysstat where name like '%TBS%'; CON_ID NAME VALUE
---------- ---------------------------------------- ----------
0 TBS Extension: tasks created 0
0 TBS Extension: tasks executed 0
0 TBS Extension: files extended 0
0 TBS Extension: bytes extended 0
0 TBS Shrink: tasks created 0
0 TBS Shrink: tasks executed 0
SQL>
根据许可手册 此处,此功能在企业版中可用。
此功能首次在 Oracle 19c 自治数据库中引入,但从 Oracle 21c 开始,它可用于企业版安装。请参阅 此处 的许可手册。