Windows下编写批处理脚本来启动和重置Oracle数据库
网络编程 2021-07-05 16:08www.168986.cn编程入门
这篇文章主要介绍了Windows下编写cmd脚本来对Oracle数据库执行启动和重置的方法,只需在bat文件中保存cmd shell之后就可以双击使用,简单粗暴,需要的朋友可以参考下
cmd启动Oracle数据库
新建一个bat文件,复制内容进去,双击即可启动.
@echo off start OracleXETNSListener 2>nul start OracleServiceXE 2>nul @oradim -startup -sid XE -starttype inst > nul 2>&1
Oracle重置数据库命令
新建bat文件,复制以下内容,然后执行。
@echo off REM REM The script assumes that user can connect using "/ as sysdba" REM REM ================= REM Restore procedure REM ================= REM REM If Installed Oracle home is also lost and oracle binaries were REM re-installed or the Oracle is installed to new oracle home location REM pared to backup time, then user will be prompted to enter Flash REM Recovery Area location. REM REM For database in NoArchiveLog mode, database is restored to last offline REM backup time/s; REM For database in Archive log mode, database is restored from last backup REM and a plete recovery is attempted. If plete recovery fails, REM user can open the database with resetlogs option provided the files REM are not recovery fuzzy. REM REM The restore log is saved in ?/DATABASE/OXE_RESTORE.LOG REM setlocal set /p inp="This operation will shut down and restore the database. Are you sure [Y/N]?" :checkinp if /i "%inp%" == "Y" goto :confirmedyes if /i "%inp%" == "n" exit :Askagain set /p inp= goto :checkinp :confirmedyes echo Restore in progress... echo db_name=xe >%temp%\rman_dummy.ora echo sga_target=270M >>%temp%\rman_dummy.ora start oracleserviceXe REM Startup database in nomount mode using RMAN... @( echo set echo on^; echo startup nomount pfile=%temp%\rman_dummy.ora force^; ) > %temp%\restore_rman0.dat rman target / @%temp%\restore_rman0.dat if not %errorlevel% == 0 set Errorstr= RMAN Error - could not startup dummy instance & goto :restorefailederr @( echo connect / as sysdba^; echo set head off echo set echo off echo set linesize 515 echo variable var varchar2^(512^)^; echo execute :var := sys.dbms_backup_restore.normalizefilename^(^'SPFILE2INIT^'^)^; echo spool %temp%\spfile2init.log echo select sys.dbms_backup_restore.normalizefilename^(^'SPFILE2INIT.ORA^'^) spfile2init from dual^; echo exit^; ) > %temp%\spfile2init.sql sqlplus /nolog @%temp%\spfile2init.sql >nul FOR /F %%i in (%temp%\spfile2init.log) do set SPFILE2INIT=%%i @( echo connect / as sysdba; echo set head off echo set echo off echo set linesize 515 echo variable var varchar2^(512^)^; echo execute :var := sys.dbms_backup_restore.normalizefilename^(^'FRA_LOC^'^)^; echo spool %temp%\restore_rmanlog.log echo select sys.dbms_backup_restore.normalizefilename^(^'OXE_RESTORE.LOG^'^) RESTORE_RMANLOG from dual^; echo exit^; ) > %temp%\restore_rmanlog.sql sqlplus /nolog @%temp%\restore_rmanlog.sql >nul FOR /F %%i in (%temp%\restore_rmanlog.log) do set RESTORE_RMANLOG=%%i if not exist ^"%SPFILE2INIT%^" goto get_rcvarea_loc @( echo set echo on^; echo shutdown immediate^; echo startup nomount pfile=^"%SPFILE2INIT%^"^; echo restore ^(spfile from autobackup^) ^(controlfile from autobackup^)^; echo startup mount force^; echo configure controlfile autobackup off^; echo restore database^; ) > %temp%\restore_rman1.dat rman target / @%temp%\restore_rman1.dat trace "%RESTORE_RMANLOG%" if not %errorlevel% == 0 set Errorstr= RMAN Error - See log for error & goto :restorefailederr goto restored_files :get_rcvarea_loc set /p rcvarea_loc="Enter the flash recovery area location:" @( echo set echo on^; echo restore ^(spfile from autobackup db_recovery_file_dest=^'%rcvarea_loc%^'^)^; echo startup nomount force^; echo restore ^(controlfile from autobackup^)^; echo alter database mount^; echo configure controlfile autobackup off^; echo restore database^; ) > %temp%\restore_rman1.dat rman target / @%temp%\restore_rman1.dat trace "%RESTORE_RMANLOG%" if not %errorlevel% == 0 set Errorstr= RMAN Error - See log for error & goto :restorefailederr goto restored_files :restored_files @( echo connect / as sysdba^; echo declare cursor n1 is select name from v$tempfile^; echo begin echo for a in n1 echo loop echo begin echo sys.dbms_backup_restore.deletefile^(a.name^)^; echo exception echo when others then echo null^; echo end^; echo end loop^; echo end^; echo / echo exit^; echo / ) > %temp%\deltfile.sql sqlplus /nolog @%temp%\deltfile.sql >nul @( echo connect / as sysdba^; echo set head off echo set echo off echo spool %temp%\logmode.log echo select log_mode from v$database^; echo exit^; ) > %temp%\logmode.sql sqlplus /nolog @%temp%\logmode.sql >nul FOR /F %%i in (%temp%\logmode.log) do set LOGMODE=%%i if "%LOGMODE%" == "NOARCHIVELOG" goto process_noarchivelog if "%LOGMODE%" == "ARCHIVELOG" goto process_archivelog set Errorstr= Unknown log mode : %LOGMODE% goto :restorefailederr :process_noarchivelog @( echo set echo on^; echo alter database open resetlogs; ) > %temp%\restore_rman2.dat rman target / @%temp%\restore_rman2.dat trace "%RESTORE_RMANLOG%" append if not %errorlevel% == 0 set Errorstr= RMAN Error - See log for details & goto :restorefailederr goto :restoresucess :process_archivelog @( echo set echo on^; echo recover database^; echo alter database open resetlogs; ) > %temp%\restore_rman2.dat rman target / @%temp%\restore_rman2.dat trace "%RESTORE_RMANLOG%" append if not %errorlevel% == 0 set Errorstr= RMAN Error - See log for details & goto :restorefailederr goto :restoresucess :restoresucess echo Restore of the database sueeded. echo Log file is at %RESTORE_RMANLOG%. pause Press any key to exit exit goto :EOF :restorefailederr echo ==================== ERROR ============================= echo Restore of the database failed. echo %Errorstr%. echo Log file is at %RESTORE_RMANLOG%. echo ==================== ERROR ============================= pause Press any key to exit exit goto :EOF
编程语言
- 机械手焊接机器人编程 机械手焊接设备编程
- vb数据库编程实例,vb做数据库
- tiobe世界编程语言排行榜,全球编程语言排行
- 成都java编程培训 成都it编程培训中心
- 编程基础培训,编程基础知识培训
- flash游戏编程基础教程,flash游戏开发教程
- 不会英语能学编程吗 不会英语可以学程序员吗
- 爱心代码编程C语言 爱心代码编程c语言公式
- c语言编程学习入门 c语言编程快速入门
- 西门子plc编程培训 西门子plc编程培训班
- 哪里可以学编程 台州哪里可以学编程
- 少儿编程哪个好 少儿编程哪个品牌好
- 编程是什么意思,图形编程是什么意思
- c语言编程软件下载,c语言编程软件在哪下载
- java编程软件下载,java编程下载手机版
- ug编程培训学校,ug编程培训教程