当前位置:网站首页>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,

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

Events in August | 51CTO's 17th Anniversary Celebration, post a blog post to get gifts such as tea sets/notebooks/T-shirts!

双向带头循环链表实现

C#/VB.NET:在 Word 中设置文本对齐方式

什么是终端特权管理

sqlilabs less-38~39

mae,mse,rmse分别利用sklearn和numpy实现

Camunda整体架构和相关概念

Jina 实例秀|七夕神器!比你更懂你女友的AI口红推荐

MySQL核心SQL:结构化查询语句SQL、库操作、表操作、CRUD

无线Mesh自组网方案,CV5200无线模组应用,支持高清数据远距离传输
随机推荐
Google Earth Engine APP——实现ui.Select() 的设定和条件判断
MySQL之my.cnf配置文件
航企纠缠A350安全问题 空客主动取消飞机订单
iMeta | Baidu certification is completed, search "iMeta" directly to the publisher's homepage and submission link
CompletableFuture接口核心方法介绍
There are 12 balls, including 11 weight, only one, don't know is light or heavy. Three times in balance scales, find out the ball.
canvas画图时的bug记录
无代码平台数字入门教程
iMeta | 百度认证完成,搜索“iMeta”直达出版社主页和投稿链接
MySQL: Integrity Constraints and Table Design Principles
Business collocations
使用.NET简单实现一个Redis的高性能克隆版(二)
【Inspirational】The importance of review
栈与队列的实现
第二批养老理财试点产品发行 一小时销售20亿元
无线Mesh自组网方案,CV5200无线模组应用,支持高清数据远距离传输
二叉树的基础练习
再次搞定 Ali 云函数计算 FC
用匿名函数定义函数_c语言最先执行的函数是
AWS Lambda related concepts and implementation approach