Oacle数据库启动不起来了,一启动就死机,经过多次测试差错发现是磁盘损坏,导致UNDOTBS01.DBF数据文件无法访问,访问就死机。无奈用冷备份的办法,将数据库迁移到另一台主机上。
Oracle 11g, 安装在windows XP上,只是作为平时开发用的数据库,没有多少维护,也没有开启归档日志模式。(注:由于操作时没有保存操作信息,也没有可用的测试环境了,所以都是凭记忆还原步骤,不排除有不正确的操作和命令,仅作参考。)
Step 1. 首先在目标主机上安装Oracle 11g(和源数据库相同),创建和源数据库相同SID的数据库。
Step 2. 查找源数据库里的数据文件、REDO日志文件、控制文件、启动参数文件。
EXPRD是SID
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 770019328 bytes
Fixed Size 1374780 bytes
Variable Size 293602756 bytes
Database Buffers 469762048 bytes
Redo Buffers 5279744 bytes
数据库装载完毕。
SQL> select name from v$datafile;
NAME
------------------------------------------------------
D:APPADMINISTRATORORADATAEXPRDSYSTEM01.DBF
D:APPADMINISTRATORORADATAEXPRDSYSAUX01.DBF
D:APPADMINISTRATORORADATAEXPRDUNDOTBS01.DBF
D:APPADMINISTRATORORADATAEXPRDUSERS01.DBF
D:APPADMINISTRATORORADATAEXPRDEXAMPLE01.DBF
D:APPADMINISTRATORADMINEXPRDTS_YTCLT01.DBF
D:APPADMINISTRATORADMINEXPRDTS_YTEXP01.DBF
SQL> select member from v$logfile;
MEMBER
---------------------------------------------------------------
D:APPADMINISTRATORORADATAEXPRDREDO03.LOG
D:APPADMINISTRATORORADATAEXPRDREDO02.LOG
D:APPADMINISTRATORORADATAEXPRDREDO01.LOG
SQL> select name from v$controlfile;
NAME
---------------------------------------------------------------
D:APPADMINISTRATORORADATAEXPRDCONTROL01.CTL
D:APPADMINISTRATORFLASH_RECOVERY_AREAEXPRDCONTROL02.CTL