oracle 恢复批处理

[ 1775 查看 / 0 回复 ]

oracle recover.bat

rem 设置恢复的SID名称
set rsid=xiele

rem 设置已备份的数据备份路径
set pfilepath=D:\oracle\ora92\database\initpfile.ora
set spfilepath=D:\oracle\ora92\database\spfile%rsid%.ora
rem set recoverpath=D:\db_backup\xiele20080911_1345

rem 设置数据库实例的密码
set pwd=xxx

rem 创建恢复的目录结构(这里默认oracle安装在d:\oracle)
mkdir D:\oracle\admin\%rsid%\bdump
mkdir D:\oracle\admin\%rsid%\cdump
mkdir D:\oracle\admin\%rsid%\create
mkdir D:\oracle\admin\%rsid%\pfile
mkdir D:\oracle\admin\%rsid%\udump
mkdir D:\oracle\ora92\database
mkdir D:\oracle\oradata\%rsid%

rem 拷贝备份文件到恢复目录
rem 这一步手工来做
@echo off
choice /c yn /M "恢复数据是否拷贝完成? (y/n)"
if "%errorlevel%"=="2" goto exit
if "%errorlevel%"=="1" goto ok
k
@echo on
rem 设置恢复脚本的位置
set sql=E:\work\oraclerecover.sql

rem 设置当前环境的SID
set ORACLE_SID=%rsid%

rem 创建数据库实例服务
D:\oracle\ora92\bin\oradim.exe -new  -sid %rsid% -startmode m
D:\oracle\ora92\bin\oradim.exe -edit  -sid %rsid% -startmode a

rem 创建数据库的密码文件
if exist D:\oracle\ora92\database\PWD%rsid%.ora del /f /q D:\oracle\ora92\database\PWD%rsid%.ora
D:\oracle\ora92\bin\orapwd.exe file=D:\oracle\ora92\database\PWD%rsid%.ora password=%pwd%

rem 如果存在spfile删除之
if exist %spfilepath% del /f /q %spfilepath%

rem 执行回复脚本
D:\oracle\ora92\bin\sqlplus /nolog @%sql% %pfilepath% %spfilepath% %pwd%

rem 推出
:exit
pause

oraclerecover.sql

connect SYS/&3 as SYSDBA;
startup nomount pfile="&1";
create spfile='&2' FROM pfile='&1';
shutdown immediate;
startup mount;
recover database using backup controlfile until cancel;
--cancel
--alter database open resetlogs;
--shutdown immediate;
--startup;
分享 转发
TOP