Oracle临时表空间的恢复

SQL> select f.file#,t.ts#,f.name,t.name from v$tempfile f,v$tablespace t where f.ts#=t.ts#;
 
     FILE#        TS# NAME                                                                             NAME
---------- ---------- -------------------------------------------------------------------------------- ------------------------------
         1          3 /opt/oracle/app/oracle/oradata/zydev/temp01.dbf                                  TEMP
 

删除对应的临时表数据文件

SQL> !rm -rf /opt/oracle/app/oracle/oradata/zydev/temp01.dbf

恢复的两种情况:

1.重启数据库,临时表空间将自动建立生成

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  776646656 bytes
Fixed Size            2217384 bytes
Variable Size          574622296 bytes
Database Buffers      192937984 bytes
Redo Buffers            6868992 bytes
数据库装载完毕。
数据库已经打开。

查看日志文件可以看见:

Re-creating tempfile /opt/oracle/app/oracle/oradata/zydev/temp01.dbf

2.数据库开启的状态下恢复

SQL> !rm -rf /opt/oracle/app/oracle/oradata/zydev/temp01.dbf

SQL> alter tablespace temp add tempfile
  2  '/opt/oracle/app/oracle/oradata/zydev/temp02.dbf'
  3  size 30M;

表空间已更改。

SQL> alter tablespace temp drop tempfile
  2  '/opt/oracle/app/oracle/oradata/zydev/temp01.dbf';

表空间已更改。

SQL> select f.file#,t.ts#,f.name,t.name from v$tempfile f,v$tablespace t where f.ts#=t.ts#;
 
     FILE#        TS# NAME                                                                             NAME
---------- ---------- -------------------------------------------------------------------------------- ------------------------------
         2          3 /opt/oracle/app/oracle/oradata/zydev/temp02.dbf                                  TEMP

猜你喜欢

转载自www.linuxidc.com/Linux/2017-01/139644.htm