我单位一台SUN 450服务器,安装了Oracle8数据库的磁盘损坏,需要更换新盘,重新安装Oracle数据库和备份软件,并从备份服务器上进行恢复。查看原来的数据存放环境,检查字典视图RC_DATAFILE,数据文件的存放位置知道了如果这个目录不存在,系统会要求用户创建该目录,否则数据文件无法恢复。
我单位一台SUN 450服务器,安装了Oracle8数据库的磁盘损坏,需要更换新盘,重新安装Oracle数据库和备份软件,并从备份服务器上进行恢复。查看原来的数据存放环境,检查字典视图RC_DATAFILE,数据文件的存放位置知道了如果这个目录不存在,系统会要求用户创建该目录,否则数据文件无法恢复。
全库恢复
目录建完后,开始进行数据库的全库恢复:
a) 恢复控制文件
$sqlplus internal $sql>startup nomount |
然后手工执行如下脚本以恢复控制文件:
run
{ allocate channel c1 type 'sbt_tape';
allocate channel c2 type 'sbt_tape';
restore controlfile;
alter database mount;
release channel c1;
release channel c2;
}
控制文件恢复成功。
b) 还原数据库
把启动数据库在mount状态,执行脚本如下:
run{ allocate channel d1 type 'SBT_TAPE'; allocate channel d2 type 'SBT_TAPE'; restore database; sql "alter database open"; release channel d1; release channel d2; } |
数据库数据文件恢复成功。
c) 恢复归档日志
恢复归档日志,执行如下脚本
run{ allocate channel d1 type 'SBT_TAPE'; allocate channel d2 type disk; restore (archivelog all); release channel d1; release channel d2; } |