扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
首先查看temp是不是某些用户的默认表空间\x0d\x0aSELECT USERNAME,TEMPORARY_TABLESPACE FROM DBA_USERS;\x0d\x0a如果有用户的默认临时表空间是temp的话,建议进行更改\x0d\x0aalter user xxx temporary tablespace tempdefault;\x0d\x0a设置tempdefault为默认临时表空间\x0d\x0aalter database default temporary tablespace tempdefault;\x0d\x0a然后用你列出来的语句删除即可\x0d\x0adrop tablespace temp including contents and datafile; \x0d\x0a\x0d\x0a即便丢失了所有的临时表空间,只要不是数据库当中用到了order by、子查询、group by、distinct等需要消耗临时表空间的语句(而且要比较大才行,小的话就直接用pga的SORT_AREA区了),那么也不会对业务造成错误导致中断,发现问题之后只需要新建一个临时表空间就可以了。你要是了解备份恢复的话,实际上在进行备份的时候临时表空间都不会进行备份,而只是有一个创建临时表空间的语句而已。
创新互联是一家专业的成都网站建设公司,我们专注网站设计、成都网站制作、网络营销、企业网站建设,买链接,1元广告为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。
说明:必须在脱机状态下才能删除表空间。\x0d\x0a第一步:用sys权限登录oracle\x0d\x0aSQL connect sys/wellhope as sysdba\x0d\x0a第二步:找到表空间的存储位置后,执行脱机命令。datafile 后面的就是绝对路径。\x0d\x0aSQL alter database datafile '/home/oracle/ora/products/9.2.0/oradata/ora9i/tablespace_ecms.dbfoffline drop;\x0d\x0a第三步:打开数据库连接\x0d\x0aSQL alter database open; \x0d\x0a第四步:删除表空间“ tablespace_ecms”。\x0d\x0aSQL drop tablespace tablespace_ecms INCLUDing contents;
--删除空的表空间,但是不包含物理文件\x0d\x0adroptablespacetablespace_name;\x0d\x0a--删除非空表空间,但是不包含物理文件\x0d\x0adroptablespacetablespace_nameincludingcontents;\x0d\x0a--删除空表空间,包含物理文件\x0d\x0adroptablespacetablespace_nameincludingdatafiles;\x0d\x0a--删除非空表空间,包含物理文件\x0d\x0adroptablespacetablespace_nameincludingcontentsanddatafiles;\x0d\x0a--如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADECONSTRAINTS\x0d\x0adroptablespacetablespace_nameincludingcontentsanddatafilesCASCADECONSTRAINTS;
oracle删除表,释放表空间,需要通过truncate table xx,然后drop table xxx 来释放,或者直接通过 drop table xxx purge;
示例如下:
1、创建测试表,
create table test_space(id number, name varchar2(20));
2、插入样例数据,
insert into test_space
select level, 'test_space_'||level
from dual
connect by level100000
3、查看该表存储,占用3145728B大小,
select * from user_segments t where segment_name = upper('test_space');
4、truncate清空表数据,truncate table test_space,然后再次查询表存储,存储变为65536B,已释放;
truncate table test_space;
select * from user_segments t
where segment_name = upper('test_space');
5、把表再次删除后,存储已释放;
drop table test_space;
select bytes from user_segments t
where segment_name = upper('test_space');
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流