2008年的春节马上就要到来,深圳的冬天,日光依旧,一颗漂浮的心,在美丽浪漫的 烟雨 里,终于开始安静下来。前途是光明的,爱情是甜蜜的,秋香的出现,让每一天都充满激情,乐趣,突然发现,世界是多么的美好,这是一个美丽的 冬天。
下面,是我做的Oracle 10G 里面控制文件恢复后,临时表空间为空的处理方法,这是Oracle 10G 的一个bug,在11G里面已经没有这个问题。
问题: ORA-25153: Temporary Tablespace is Empty
我们先查看表空间
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
RECOVERY_TBS ONLINE
都temp online 在线。
SQL> select tablespace_name,file_name from dba_temp_files;
no rows selected
就会发现,dba_temp_files 原来如此。
SQL> alter tablespace temp add tempfile '/oradata/elife02/temp01.dbf' SQL> select FILE_NAME,TABLESPACE_NAME,STATUS from dba_temp_files;
FILE_NAME TABLESPACE_NAME STATUS
----------------------------------- ------------------------------ ---------
/oradata/elife02/temp01.dbf TEMP AVAILABLE
还可以指定默认的临时表空间
SQL>alter database default temporary tablespace temp;
下面,我们来了解一下临时表的用途:
disk sort:
自己的理解是排序始终是在内存里完成的,如果要排序的数据量很大,在内存里不能完成,oracle会分阶段来排序,每次先排一部分,并且把排好序的数据临时存放在用户default temporary tablespace中的temp segment上,而临时表空间对应的tempfile属于disk文件,这就是disk sort的由来。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/701141/viewspace-135994/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/701141/viewspace-135994/