当前位置:网站首页>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.dbf
alter tablespace ... shrink还支持KEEP子句,可以指定收缩到的最小容量(MB),如果未指定,则会尽可能收缩至最小的容量,就像上面的操作。
具体操作信息,还可以参考官方文档《SQL Language Reference》的说明。
如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,
近期更新的文章:
近期的热文:
文章分类和索引:
边栏推荐
- [代码阅读] CycleGAN: Unpaired Image-To-Image Translation Using Cycle-Consistent Adversarial Networks
- AWS Lambda related concepts and implementation approach
- 在 .NET MAUI 中如何更好地自定义控件
- Super Learning Method
- cubemx stm32 afm3000 module gas flow sensor driver code
- MySQL: Integrity Constraints and Table Design Principles
- 开源一夏|ArkUI如何自定义弹窗(eTS)
- Jina 实例秀|基于神经搜索的网络安全威胁检测(一)
- 栈与队列的实现
- 二叉树的基础练习
猜你喜欢
随机推荐
sqlilabs less-38~39
Servlet基础详细版
datax oracle to oracle增量同步
物体颜色的来源
RAID介绍及RAID5配置实例
cubemx stm32 afm3000 module gas flow sensor driver code
【cookie 临时存储数据,WebStorage ,sessionStorage】
C语言*小白的探险历程
gom登录器配置教程_谷歌浏览器如何使用谷歌搜索引擎
华为开源:聚焦开源基础软件,共建健康繁荣生态
[论文阅读] Unpaired Image-to-Image Translation Using Adversarial Consistency Loss
Multimedia and Internet of Things technology make the version "live" 129 vinyl records "Centennial Voice"
【励志】复盘的重要性
二叉树的基础练习
超宽带UWB实时精准定位,短距离无缝交互应用,物联网厘米级精度方案
数据化管理洞悉零售及电子商务运营——零售密码
Maple 2022 software installation package download and installation tutorial
无代码平台描述文字入门教程
STM32前言知识总结
WPF 截图控件之画笔(八)「仿微信」