1-- 查看当前默认临时表空间(如果有临时表空间组,需要针对组进行删除)
2SQL> select * from dba_tablespace_groups;
3
4SQL> col PROPERTY_NAME for a30
5col PROPERTY_VALUE for a20
6SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';
7
8PROPERTY_NAME PROPERTY_VALUE
9------------------------------ --------------------
10DEFAULT_TEMP_TABLESPACE MESTEMP
11
12-- 记录原始表空间文件
13SQL> col file_name for a100
14select file_name from dba_temp_files where tablespace_name in ('MESTEMP');
15
16FILE_NAME
17----------------------------------------------------------------------------------------------------
18+DATA/mesdb/tempfile/mestemp.4603.959594665
19+DATA/mesdb/tempfile/mestemp.2634.941818439
20+DATA/mesdb/tempfile/mestemp.4606.960055783
21
22SQL> select name from v$tempfile;
23
24NAME
25------------------------------------------------------------
26+DATA/mesdb/tempfile/temp.271.879188975
27+DATA/mesdb/tempfile/mestemp.4603.959594665
28+DATA/mesdb/tempfile/temp.2328.941550433
29+DATA/mesdb/tempfile/mestemp.2634.941818439
30+DATA/mesdb/tempfile/mestemp.4606.960055783
31+DATA/mesdb/tempfile/temp.4320.1040983415
32+DATA/mesdb/tempfile/temp.4433.1040983647
33
34-- 创建临时的临时表空间 tempdata
35create temporary tablespace tempdata tempfile '+DATA1' size 1G autoextend on;
36alter tablespace tempdata add tempfile '+DATA1' size 1g autoextend on;
37
38-- 切换默认临时表空间为临时的临时表空间
39alter database default temporary tablespace tempdata;
40
41-- 删除原始临时表空间 MESTEMP
42drop tablespace MESTEMP including contents and datafiles cascade constraints;
43
44-- kill 掉占用原始临时表空间的会话
45select 'alter system kill session ''' || a.sid || ',' || a.serial# || ''' immediate;'
46 from v$session a, v$sort_usage srt
47 where a.saddr = srt.session_addr
48 and srt.tablespace = 'MESTEMP'
49 order by srt.tablespace, srt.segfile#, srt.segblk#, srt.blocks;
50
51-- 重建原始临时表空间 MESTEMP
52create temporary tablespace MESTEMP tempfile '+DATA1' size 1G autoextend on;
53
54-- 新增临时表空间 MESTEMP 数据文件(根据原始临时表空间文件数量来新增)
55alter tablespace MESTEMP add tempfile '+DATA1' size 1g autoextend on;
56alter tablespace MESTEMP add tempfile '+DATA1' size 1g autoextend on;
57alter tablespace MESTEMP add tempfile '+DATA1' size 1g autoextend on;
58
59-- 切换默认临时表空间为原始临时表空间 MESTEMP
60alter database default temporary tablespace MESTEMP;
61
62--删除临时表空间
63drop tablespace tempdata including contents and datafiles cascade constraints;
64
65-- 检查默认临时表空间以及文件路径
66SQL> col PROPERTY_NAME for a30
67col PROPERTY_VALUE for a20
68SELECT PROPERTY_NAME, PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';
69
70PROPERTY_NAME PROPERTY_VALUE
71------------------------------ --------------------
72DEFAULT_TEMP_TABLESPACE MESTEMP
73
74-- 再次查看临时表空间文件是否成功切换到 DATA1 磁盘组下
75SQL> col file_name for a100
76select file_name from dba_temp_files where tablespace_name in ('MESTEMP');
77
78FILE_NAME
79----------------------------------------------------------------------------------------------------
80+DATA1/mesdb/tempfile/mestemp.2678.1195646647
81+DATA1/mesdb/tempfile/mestemp.2622.1195646703
82+DATA1/mesdb/tempfile/mestemp.2576.1195646705
83+DATA1/mesdb/tempfile/mestemp.2717.1195646707