ARCHIVELOG模式下用户管理恢复临时文件!

比如一些排序的操作,oracle会在PGA里面进,如果PGA容纳不下就会采用临时文件。

 

1、关闭的状态的数据库临时文件丢死了,打开数据库后oracle会自动创建一个。

SQL> conn /as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size              62917928 bytes
Database Buffers          100663296 bytes
Redo Buffers                2924544 bytes
数据库装载完毕。
数据库已经打开。

SQL> select name from v$tempfile;

NAME
------------------------------------------------------------
/u01/app/oracle/oradata/orcl/temp01.dbf

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> ! rm -rf /u01/app/oracle/oradata/orcl/temp01.dbf

SQL> ! ls /u01/app/oracle/oradata/orcl/temp01.dbf
ls: /u01/app/oracle/oradata/orcl/temp01.dbf: 没有那个文件或目录

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  167772160 bytes
Fixed Size                  1266392 bytes
Variable Size              62917928 bytes
Database Buffers          100663296 bytes
Redo Buffers                2924544 bytes
数据库装载完毕。
数据库已经打开。
SQL> ! ls /u01/app/oracle/oradata/orcl/temp01.dbf
/u01/app/oracle/oradata/orcl/temp01.dbf

 

2、打开状态的数据库,临时文件丢失了,重新创建一个就OK拉。

SQL> conn /as sysdba
已连接。
SQL> select name from v$tempfile;

NAME
------------------------------------------------------------
/u01/app/oracle/oradata/orcl/temp01.dbf

SQL> ! rm -rf /u01/app/oracle/oradata/orcl/temp01.dbf

SQL> select * from all_objects order by owner;
select * from all_objects order by owner
*
第 1 行出现错误:
ORA-01116: 打开数据库文件 201 时出错
ORA-01110: 数据文件 201: '/u01/app/oracle/oradata/orcl/temp01.dbf'
ORA-27041: 无法打开文件
Linux Error: 2: No such file or directory
Additional information: 3

SQL> select * from DATABASE_PROPERTIES where PROPERTY_NAME = 'DEFAULT_TEMP_TABLESPACE';

PROPERTY_NAME                  PROPERTY_V DESCRIPTION
------------------------------ ---------- --------------------------------------------------
DEFAULT_TEMP_TABLESPACE        TEMP       Name of default temporary tablespace

SQL> create temporary tablespace tmp tempfile '/u01/app/oracle/oradata/orcl/tmp01.dbf' size 50m;

表空间已创建。

SQL> alter database default temporary tablespace tmp;

数据库已更改。

SQL> select * from DATABASE_PROPERTIES where PROPERTY_NAME = 'DEFAULT_TEMP_TABLESPACE';

PROPERTY_NAME                  PROPERTY_V DESCRIPTION
------------------------------ ---------- --------------------------------------------------
DEFAULT_TEMP_TABLESPACE        TMP        Name of default temporary tablespace


你可能感兴趣的:(oracle,sql,数据库,properties,database,System)