只有数据文件恢复数据库

时间:2022-01-30 02:36:44

数据库盘阵挂了,数据库软件、数据库日志文件、控制文件以及备份都放在挂的这个磁盘,到最后什么文件都没有,只剩下数据文件!!

恢复步骤:这是oracle10G
linux5 的环境,其他版本步骤一样,区别就在参数文件相关参数而已! 1、安装数据库软件:这个就不说了。。。安装的时候最好保持所在的目录、ORACLE_SID,
以及数据库名和原来数据库一样!这样避免很多麻烦
2
、创建一个pfile,建一个空实例
参数文件如下:注意创建参数文件中的相关目录 [[email protected] dbs]$ cat initabc.ora
*.audit_file_dest=/u01/oracle/admin/abc/adump *.background_dump_dest=/u01/oracle/admin/abc/bdump *.user_dump_dest=/u01/oracle/admin/abc/udump *.core_dump_dest=/u01/oracle/admin/abc/cdump *.compatible=10.2.0.1.0 *.db_name=abc *.sga_target=300M 指定参数文件启动数据库到nomount SQL> startup nomount pfile=$ORACLE_HOME/dba/initabc.ora; ORACLE 例程已经启动。 Total System Global Area 535662592 bytes Fixed Size 1375792 bytes Variable Size 272630224 bytes Database Buffers 255852544 bytes Redo Buffers 5804032 bytes SQL>
3、创建控制文件,现在只有数据文件,可以从其他正常的数据库生成控制文件的创建脚本进行修改,且以RESETLOGS open数据库 SQL> alter database backup controlfile to trace as /home/oracle/control.sql;
cat
/home/oracle/control.sql CREATE CONTROLFILE REUSE DATABASE "abc" RESETLOGS ARCHIVELOG -- SET STANDBY TO MAXIMIZE PERFORMANCE MAXLOGFILES 5 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 1 MAXLOGHISTORY 453 LOGFILE-------------------日志文件可以没有 GROUP 1 /data/oradata/redo01.log SIZE 100M, GROUP 2 /data/oradata/redo02.log SIZE 100M, GROUP 3 /data/oradata/redo03.log SIZE 100M -- STANDBY LOGFILE DATAFILE /data/oradata/system01.dbf, /data/oradata/undotbs01.dbf, . . .(数据文件太多了,就不写了,这里就是存放的数据文件的位置) CHARACTER SET ZHS16GBK ----------------字符集的设置,这个看实际情况 不要也可以的! ; 创建完成后数据库自动启动到mount open数据库: alter database open resetlogs; 这样基本就完成恢复了,可能需要重建一下临时表空间,因为控制文件里面是不记录临时表的信息的,
如果临时表数据文件还在,reuser一下就OK alter tablespace temp add tempfile
‘/data/oradata/temp1.dbf‘ reuse;