我们知道在Oracle10gr2以前的版本中,如果使用rman恢复数据库,临时表空间的临时文件是不会自动恢复的。
这曾经引发了一系列的麻烦,很多dba在恢复完成之后忘记添加临时文件,经常到应用出错时才能发现。
从oracle10gr2开始,使用rman恢复数据库之后,oracle会自动重新创建临时文件,由于临时文件是sparse file,所以创建会非常迅速,通常你不会感觉得到。
以下是我曾经恢复的一段日志,其中记录了oracle的恢复处理过程:
thu sep 14 22:52:06 2006
successfully onlined undo tablespace 1.
dictionary check beginning
thu sep 14 22:52:06 2006
errors in file /opt/oracle/admin/order/bdump/order_dbw0_31025.trc:
ora-01157: cannot identify/lock data file 201 - see dbwr trace file
ora-01110: data file 201: '/data1/oradata/order/datafile/o1_mf_temp_28spyr8h_.tmp'
ora-27037: unable to obtain file status
LINUX error: 2: no such file or directory
additional information: 3
thu sep 14 22:52:06 2006
errors in file /opt/oracle/admin/order/bdump/order_dbw0_31025.trc:
ora-01186: file 201 failed verification tests
ora-01157: cannot identify/lock data file 201 - see dbwr trace file
ora-01110: data file 201: '/data1/oradata/order/datafile/o1_mf_temp_28spyr8h_.tmp'
thu sep 14 22:52:06 2006
file 201 not verified due to error ora-01157
thu sep 14 22:52:06 2006
dictionary check complete
thu sep 14 22:52:06 2006
smon: enabling tx recovery
thu sep 14 22:52:06 2006
re-creating tempfile /data1/oradata/order/datafile/o1_mf_temp_28spyr8h_.tmp as
/data1/oradata/order/datafile/o1_mf_temp_2jlv4p90_.tmp
database characterset is zhs16gbk
replication_dependency_tracking turned off (no async multimaster replication found)
starting background process qmnc
qmnc started with pid=22, os id=13671
thu sep 14 22:52:10 2006
logstdby: validating controlfile with logical metadata
thu sep 14 22:52:10 2006
logstdby: validation complete
starting control autobackup
control autobackup written to disk device
handle '/opt/oracle/product/db10g/dbs/c-1341966532-20060914-03'
completed: alter database open resetlogs |
这也是oracle10gr2的一个细致改进。