Oracle扩展undo和temp空间
开发用的服务器,安装时从网上拖了个11g的docker直接装了。参数都是用了默认的。
平时都是小数据量的测试,倒也没什么问题,近期要做亿级别的测试时,报undo和temp空间不足。
在扩展了磁盘空间后,开始着手扩充上述配置。版本Oracle11g r2,sys权限.
1、扩展undo空间
有两种方法,一是直接调整undo空间大小,另一种是重建undo空间文件。
本次使用了第一种方法。
目前是8G,扩展到20G,注意修改undo日志文件路径为上述路径
2、扩展temp空间
先查询temp空间的信息
,file_name
,bytes / 1024 / 1024 size_mb
,used_space / 1024 / 1024 used_mb
,free_space / 1024 / 1024 free_mb
,round((used_space / bytes) * 100
,2) "% USED"
,round((free_space / bytes) * 100
,2) "% FREE"
FROM (SELECT t1.tablespace_name
,t1.file_name
,t1.bytes
,nvl(t2.used_space
,0) used_space
,t1.bytes - nvl(t2.used_space
,0) free_space
FROM (SELECT tablespace_name
,file_name
,SUM(bytes) bytes
,file_id
FROM dba_temp_files
GROUP BY tablespace_name
,file_name
,file_id) t1
,(SELECT tablespace_name
,file_id
,SUM(bytes) used_space
FROM v$temp_extent_map
GROUP BY tablespace_name
,file_id) t2
WHERE t1.tablespace_name = t2.tablespace_name(+)
AND t1.file_id = t2.file_id(+))
ORDER BY tablespace_name
,file_name;
目前分配5G,已经占满了。扩展到20G。
扩展temp也可以使用resize方法和新建temp文件方法。这里使用方法2.
方法1(未验证):
方法2(本文方法):
1)创建新的temp文件 temp02.dbf ,命名表空间名称为 new_temp_ts
2)把默认temp表空间指向新的new_temp_ts
3)删除之前的TEMP
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE new_temp_ts;
DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;
Tablespace dropped