当前位置:网站首页>Oracle中对临时表空间执行shrink操作
Oracle中对临时表空间执行shrink操作
2022-08-04 10:43:00 【bisal(Chen Liu)】
《Oracle一个诡异的临时表空间不足的问题》中提到对临时表空间执行shrink space的操作,以前一直理解只有对表能做shrink space的操作,但从官方文档看,11g开始,就可以对临时表空间执行相同的操作。
可以简单测测,当前的临时表空间数据文件大小是512MB,
SQL> !ls -rlht /opt/oracle/oradata/BISALCDB/BISALPDB1/
total 1.2G
-rw-r----- 1 oracle oinstall 211M Jul 29 06:05 users01.dbf
-rw-r----- 1 oracle oinstall 5.1M Jul 29 06:05 tbs_32.dbf
-rw-r----- 1 oracle oinstall 201M Jul 29 06:05 tbs_32_01.dbf
-rw-r----- 1 oracle oinstall 321M Jul 29 15:57 sysaux01.dbf
-rw-r----- 1 oracle oinstall 311M Jul 29 16:27 system01.dbf
-rw-r----- 1 oracle oinstall 101M Jul 29 16:27 undotbs01.dbf
-rw-r----- 1 oracle oinstall 513M Jul 29 16:39 temp01.dbf通过v$tempfile以及11g新引进的dba_temp_free_space视图,可以看到临时表空间的使用情况,
SQL> select file#,name,bytes/1024/1024 MB from v$tempfile;
FILE# NAME MB
---------- ------------------------------------------------------- ----------
3 /opt/oracle/oradata/BISALCDB/BISALPDB1/temp01.dbf 512
SQL> select * from dba_temp_free_space;
TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE SHARED INST_ID
------------------------------ --------------- --------------- ---------- ------------- ----------
TEMP 1610612736 3145728 1607467008 SHARED执行收缩指令,
SQL> alter tablespace temp shrink space;
Tablespace altered.可以看到临时表空间已经收缩至了2MB,
SQL> select file#,name,bytes/1024/1024 MB from v$tempfile;
FILE# NAME MB
---------- ------------------------------------------------------- ----------
3 /opt/oracle/oradata/BISALCDB/BISALPDB1/temp01.dbf 1.9921875
SQL> select * from dba_temp_free_space;
TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE SHARED INST_ID
------------------------------ --------------- --------------- ---------- ------------- ----------
TEMP 6266880 3121152 3145728 SHARED物理的数据文件同样收缩到2MB,
SQL> !ls -rlht /opt/oracle/oradata/BISALCDB/BISALPDB1/
total 1.2G
-rw-r----- 1 oracle oinstall 211M Jul 29 06:05 users01.dbf
-rw-r----- 1 oracle oinstall 5.1M Jul 29 06:05 tbs_32.dbf
-rw-r----- 1 oracle oinstall 201M Jul 29 06:05 tbs_32_01.dbf
-rw-r----- 1 oracle oinstall 321M Jul 29 15:57 sysaux01.dbf
-rw-r----- 1 oracle oinstall 311M Jul 29 16:27 system01.dbf
-rw-r----- 1 oracle oinstall 101M Jul 29 16:27 undotbs01.dbf
-rw-r----- 1 oracle oinstall 2.0M Jul 29 16:39 temp01.dbf同样支持对临时数据文件的收缩,先增加个临时表空间数据文件,
SQL> alter tablespace temp add tempfile '/opt/oracle/oradata/BISALCDB/BISALPDB1/temp02.dbf' size 512m reuse autoextend on next 1m maxsize unlimited;
Tablespace altered.初始大小是512MB,
SQL> !ls -rlht /opt/oracle/oradata/BISALCDB/BISALPDB1/
total 1.2G
-rw-r----- 1 oracle oinstall 211M Jul 29 06:05 users01.dbf
-rw-r----- 1 oracle oinstall 5.1M Jul 29 06:05 tbs_32.dbf
-rw-r----- 1 oracle oinstall 201M Jul 29 06:05 tbs_32_01.dbf
-rw-r----- 1 oracle oinstall 321M Jul 29 15:57 sysaux01.dbf
-rw-r----- 1 oracle oinstall 2.0M Jul 29 16:39 temp01.dbf
-rw-r----- 1 oracle oinstall 311M Jul 29 16:40 system01.dbf
-rw-r----- 1 oracle oinstall 101M Jul 29 16:40 undotbs01.dbf
-rw-r----- 1 oracle oinstall 513M Jul 29 16:40 temp02.dbf从数据库端,可以看到其容量,
SQL> select file#,name,bytes/1024/1024 MB from v$tempfile;
FILE# NAME MB
---------- ------------------------------------------------------- ----------
3 /opt/oracle/oradata/BISALCDB/BISALPDB1/temp01.dbf 1.9921875
5 /opt/oracle/oradata/BISALCDB/BISALPDB1/temp02.dbf 512
SQL> select * from dba_temp_free_space;
TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE SHARED INST_ID
------------------------------ --------------- --------------- ---------- ------------- ----------
TEMP 1616879616 6266880 1610612736 SHARED对临时数据文件进行收缩,
SQL> alter tablespace temp shrink tempfile '/opt/oracle/oradata/BISALCDB/BISALPDB1/temp02.dbf';
Tablespace altered.临时表空间已经进行了收缩,
SQL> select file#,name,bytes/1024/1024 MB from v$tempfile;
FILE# NAME MB
---------- ------------------------------------------------------- ----------
3 /opt/oracle/oradata/BISALCDB/BISALPDB1/temp01.dbf 1.9921875
5 /opt/oracle/oradata/BISALCDB/BISALPDB1/temp02.dbf 1.9921875
SQL> select * from dba_temp_free_space;
TABLESPACE_NAME TABLESPACE_SIZE ALLOCATED_SPACE FREE_SPACE SHARED INST_ID
------------------------------ --------------- --------------- ---------- ------------- ----------
TEMP 12533760 6242304 6291456 SHARED临时数据文件,同样进行了收缩,
SQL> !ls -rlht /opt/oracle/oradata/BISALCDB/BISALPDB1/
total 1.2G
-rw-r----- 1 oracle oinstall 211M Jul 29 06:05 users01.dbf
-rw-r----- 1 oracle oinstall 5.1M Jul 29 06:05 tbs_32.dbf
-rw-r----- 1 oracle oinstall 201M Jul 29 06:05 tbs_32_01.dbf
-rw-r----- 1 oracle oinstall 2.0M Jul 29 16:39 temp01.dbf
-rw-r----- 1 oracle oinstall 101M Jul 29 16:42 undotbs01.dbf
-rw-r----- 1 oracle oinstall 321M Jul 29 16:43 sysaux01.dbf
-rw-r----- 1 oracle oinstall 311M Jul 29 16:43 system01.dbf
-rw-r----- 1 oracle oinstall 2.0M Jul 29 16:46 temp02.dbfalter tablespace ... shrink还支持KEEP子句,可以指定收缩到的最小容量(MB),如果未指定,则会尽可能收缩至最小的容量,就像上面的操作。
具体操作信息,还可以参考官方文档《SQL Language Reference》的说明。
如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,

近期更新的文章:
近期的热文:
文章分类和索引:
边栏推荐
猜你喜欢

C language * Xiaobai's adventure

黑马瑞吉外卖之员工账号的禁用和启用以及编辑修改

Multimedia and Internet of Things technology make the version "live" 129 vinyl records "Centennial Voice"

学会使用set和map的基本接口

Digital management insight into retail and e-commerce operations - retail password

二叉树与堆

MySQL:完整性约束和 表的设计原则

线程必备内容

Maple 2022 software installation package download and installation tutorial

LVS+Keepalived群集部署
随机推荐
The difference between Mysql application log time and system time is eight hours
广东对小鹏/广汽丰田开展网络安全检查
昨夜梦佳人,七夕试伊妆丨基于ModelArts实现AI妆容迁移丨【玩转华为云】
使用.NET简单实现一个Redis的高性能克隆版(二)
为企业数字化转型提供服务_数字赋能企业转型
超宽带UWB实时精准定位,短距离无缝交互应用,物联网厘米级精度方案
无代码平台单项选择入门教程
Servlet基础详细版
在测试集上训练,还能中CVPR?这篇IEEE批判论文是否合理?
黑马瑞吉外卖之员工账号的禁用和启用以及编辑修改
微信小程序自定义组件-城市选择「建议收藏」
开源一夏|ArkUI如何自定义弹窗(eTS)
【cookie 临时存储数据,WebStorage ,sessionStorage】
Jina 实例秀|基于神经搜索的网络安全威胁检测(一)
[easyUI]修改datagrid表格中的值
第二批养老理财试点产品发行 一小时销售20亿元
线程必备内容
什么是终端特权管理
MySQL:完整性约束和 表的设计原则
[论文阅读] Unpaired Image-to-Image Translation Using Adversarial Consistency Loss