上周一数据库盘阵挂了,数据库软件、数据库日志文件、控制文件以及备份都放在挂的这个磁盘,到最后什么文件都没有,只剩下数据文件!!
恢复步骤:这是10G+linux5 的环境,其他版本步骤一样,区别就在参数文件相关参数而已!
1、安装数据库软件:这个就不说了。。。安装的时候最好保持所在的目录、ORACLE_SID,以及数据库名和原来数据库一样!这样避免很多麻烦
2、创建一个pfile,建一个空实例
参数文件如下:注意创建参数文件中的相关目录
[oracle@dba 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;
阅读(633) | 评论(0) | 转发(0) |