rem Oracle数据库冷备份脚本文件名coldbak.cmd ORACLE 8.1.7版本
rem 用于Windows NT/2000 平台,已经过严密的测试,大家可以试验!!!
rem 该脚本执行后,在c:\temp目录中产生db_restrict.sql、db_shut.sql、db_start.sql、
rem cold.sql、cold.cmd等5个脚本文件,冷备份的核心命令在cold.cmd中。
rem 设置SID
set oracle_sid=ORA
rem 设置初始化参数文件
set my_pfile=D:\oracle\admin\ORA\pfile\init.ora.10162006232415
set my_ifile=D:\oracle\admin\ORA\pfile\init.ora.10162006232415
rem 设置归档日志目录
set my_archive_dir=D:\oracle\oradata\ORA
rem 设置internal帐户的密码
set my_password=system
rem 建立临时目录
md d:\temp
set my_temp=D:\temp
rem 建立备份目录,该目录必须有足够大的空间用于存放数据库的备份文件
md D:\backup
set my_bakdir=D:\backup
rem ==== (1) create script file db_restrict.sql=====
echo connect system/%my_password% as sysdba; > %my_temp%\db_restrict.sql
echo shutdown immediate; >> %my_temp%\db_restrict.sql
echo startup restrict pfile=%my_pfile%; >>%my_temp%\db_restrict.sql
echo exit >> %my_temp%\db_restrict.sql
rem ==== (2) create script file db_shut.sql =====
echo connect system/%my_password% as sysdba; >%my_temp%\db_shut.sql
echo shutdown immediate; >>%my_temp%\db_shut.sql
echo exit >>%my_temp%\db_shut.sql
rem ==== (3) create script file db_start.sql =====
echo connect system/%my_password% as sysdba; >%my_temp%\db_start.sql
echo startup pfile=%my_pfile%; >>%my_temp%\db_start.sql
echo exit >>%my_temp%\db_start.sql
sqlplus system/%my_password% @%my_temp%\db_restrict.sql
rem ==== (4) create script file cold.sql =====
echo set heading off; >%my_temp%\cold.sql
echo set feedback off; >>%my_temp%\cold.sql
echo spool %my_temp%\cold.cmd; >>%my_temp%\cold.sql
echo 在这里设计冷备份的命令,备份控制文件、数据文件和日志文件
echo select 'copy ' ^|^| name ^|^| ' %my_bakdir%' from v$controlfile; >>%my_temp%\cold.sql
echo select 'copy ' ^|^| member ^|^| ' %my_bakdir%' from v$logfile; >>%my_temp%\cold.sql
echo select 'copy ' ^|^| file_name ^|^| ' %my_bakdir%' from dba_data_files; >>%my_temp%\cold.sql
echo spool off; >>%my_temp%\cold.sql
echo exit >>%my_temp%\cold.sql
rem ===== (5) run cold.sql to genrate cold.cmd ========
sqlplus system/%my_password% @%my_temp%\cold.sql
echo 在这里设计冷备份的命令,备份参数文件、归档日志文件
echo. >> %my_temp%\cold.cmd
echo copy %my_pfile% %my_bakdir% >> %my_temp%\cold.cmd
echo copy %my_ifile% %my_bakdir% >> %my_temp%\cold.cmd
echo. >> %my_temp%\cold.cmd
echo copy %my_archive_dir%\*.* %my_bakdir% >> %my_temp%\cold.cmd
rem ===== shut down database ========
sqlplus system/%my_password% @%my_temp%\db_shut.sql
rem ====== run cold.cmd to perform the cold backup 开始执行冷备份 ======
call %my_temp%\cold.cmd
rem ====== start up the database =======
sqlplus system/%my_password% @%my_temp%\db_start.sql
echo ===== the cold backup is completed!!! ======
rem 用于Windows NT/2000 平台,已经过严密的测试,大家可以试验!!!
rem 该脚本执行后,在c:\temp目录中产生db_restrict.sql、db_shut.sql、db_start.sql、
rem cold.sql、cold.cmd等5个脚本文件,冷备份的核心命令在cold.cmd中。
rem 设置SID
set oracle_sid=ORA
rem 设置初始化参数文件
set my_pfile=D:\oracle\admin\ORA\pfile\init.ora.10162006232415
set my_ifile=D:\oracle\admin\ORA\pfile\init.ora.10162006232415
rem 设置归档日志目录
set my_archive_dir=D:\oracle\oradata\ORA
rem 设置internal帐户的密码
set my_password=system
rem 建立临时目录
md d:\temp
set my_temp=D:\temp
rem 建立备份目录,该目录必须有足够大的空间用于存放数据库的备份文件
md D:\backup
set my_bakdir=D:\backup
rem ==== (1) create script file db_restrict.sql=====
echo connect system/%my_password% as sysdba; > %my_temp%\db_restrict.sql
echo shutdown immediate; >> %my_temp%\db_restrict.sql
echo startup restrict pfile=%my_pfile%; >>%my_temp%\db_restrict.sql
echo exit >> %my_temp%\db_restrict.sql
rem ==== (2) create script file db_shut.sql =====
echo connect system/%my_password% as sysdba; >%my_temp%\db_shut.sql
echo shutdown immediate; >>%my_temp%\db_shut.sql
echo exit >>%my_temp%\db_shut.sql
rem ==== (3) create script file db_start.sql =====
echo connect system/%my_password% as sysdba; >%my_temp%\db_start.sql
echo startup pfile=%my_pfile%; >>%my_temp%\db_start.sql
echo exit >>%my_temp%\db_start.sql
sqlplus system/%my_password% @%my_temp%\db_restrict.sql
rem ==== (4) create script file cold.sql =====
echo set heading off; >%my_temp%\cold.sql
echo set feedback off; >>%my_temp%\cold.sql
echo spool %my_temp%\cold.cmd; >>%my_temp%\cold.sql
echo 在这里设计冷备份的命令,备份控制文件、数据文件和日志文件
echo select 'copy ' ^|^| name ^|^| ' %my_bakdir%' from v$controlfile; >>%my_temp%\cold.sql
echo select 'copy ' ^|^| member ^|^| ' %my_bakdir%' from v$logfile; >>%my_temp%\cold.sql
echo select 'copy ' ^|^| file_name ^|^| ' %my_bakdir%' from dba_data_files; >>%my_temp%\cold.sql
echo spool off; >>%my_temp%\cold.sql
echo exit >>%my_temp%\cold.sql
rem ===== (5) run cold.sql to genrate cold.cmd ========
sqlplus system/%my_password% @%my_temp%\cold.sql
echo 在这里设计冷备份的命令,备份参数文件、归档日志文件
echo. >> %my_temp%\cold.cmd
echo copy %my_pfile% %my_bakdir% >> %my_temp%\cold.cmd
echo copy %my_ifile% %my_bakdir% >> %my_temp%\cold.cmd
echo. >> %my_temp%\cold.cmd
echo copy %my_archive_dir%\*.* %my_bakdir% >> %my_temp%\cold.cmd
rem ===== shut down database ========
sqlplus system/%my_password% @%my_temp%\db_shut.sql
rem ====== run cold.cmd to perform the cold backup 开始执行冷备份 ======
call %my_temp%\cold.cmd
rem ====== start up the database =======
sqlplus system/%my_password% @%my_temp%\db_start.sql
echo ===== the cold backup is completed!!! ======