----- SYSTEM PERMANENT SYSAUX PERMANENT UNDOTBS UNDO TEMPTS1 TEMPORARY USERS PERMANENT
确认下临时表空间的数据文件是否存在
SQL> select file#,name from v$tempfile;
FILE# NAME ---------- -------------------------------------------------- 1 /u01/app/oracle/oradata/prod/disk3/temp01.dbf
3.控制文件全部丢失,有控制文件的备份:(实验未成功) 解决: 启动到nomount 状态,copy旧的控制文件,控制文件相应的目录, 启动到mount,执行alter database backup controlfile to trace; 关闭数据库,删除旧的控制文件, 在trace中找到重建控制文件语句,重建控制文件, 启动数据库到open,检查临时表空间的数据文件是否存在(一般临时表空间不存在,重新创建一个临时表空间,设置为默认临时表空间)。
创建临时表空间
SQL> create temporary tablespace tempts2 tempfile '/u01/app/oracle/oradata/prod/disk5/temp01.dbf' size 50m;
Tablespace created.
设置为默认临时表空间
SQL> alter database default temporary tablespace tempts2;
Database altered.
查看
SQL> select file#,name from v$tempfile;
FILE# NAME ---------- -------------------------------------------------- 1 /u01/app/oracle/oradata/prod/disk5/temp01.dbf
4. 如果没有控制文件的备份和backup to trace,只要能找到建库语句,修改(日志文件,数据文件的路径要与数据库的一致)后执行就可。
5.恢复控制文件的各种情况
重建控制文件不一定需要用resetlogs开库。
先尝试 alter database open;
情况1:顺利开库
情况2:需要不完全恢复,恢复后正常开库 recover database; alter database open;
情况3:不完全恢复后,只能resetlogs开库如果刚刚是shutdown abort的,使用recover database until cancel;
如果需要做不完全恢复,系统会提示你用 using backup controlfile;? SQL> recover database using backup controlfile; 执行上面的一句话后,要输入日志文件的。