oracle自动冷备份脚本

在网上看了几个冷备份的脚本,运行起来多少有些问题。本人在自己的机器(WINDOWS2000+ORA92)上面经过修改测试以后,代码如下。希望对大家有所帮助。
共有两个文件back_cold.bat和back_cold.sql,通过定时任务来调用back_cold.bat
back_cold.bat这个批处理文件的位置你可以随便放。
back_cold.sql这个脚本的位置我是放在F:/ORACLE目录下面的。
备份成功以后文件放在一个日期文件夹下面,每天一个。时间长了以后可能会很占用磁盘空间。你也可以经过简单的修改以后只保留昨天的数据。由于DOS下面获取昨天的时间比较困难,代码也比较长,需要的话请注明,我可以传上来。

1、back_cold.bat
set day=%date:~4,20%
cd F:/oracle
md %day%&
sqlplus /nolog @f:/oracle/back_cold.sql %day%
需要说明一下的是我在网上看到的脚本的第一行代码是这样的:set day=%date:~0,10%,这样的话可能会出现汉字目录。所以我改成上面的代码了。

2、back_cold.sql
Rem db cold backup;
conn sys/change_on_install@ora92 as sysdba;
shutdown immediate;
host xcopy /i D:/oracle/oradata/oil/oilscore*.ora  f:/oracle/&1;
host xcopy /i D:/oracle/oradata/oil/redo*.log       f:/oracle/&1;
host xcopy /i D:/oracle/oradata/oil/control*.ctl    f:/oracle/&1;
startup;
exit;
需要说明一下的是在拷贝的时候要加上参数/i ,这样在CMD命令提示下面才不会提示你是文件名还是目录名。

本文转自:https://blog.csdn.net/eknight139/article/details/4554692

猜你喜欢

转载自www.cnblogs.com/lee24789229/p/9197033.html