Chinaunix首页 | 论坛 | 博客
  • 博客访问: 160045
  • 博文数量: 60
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 617
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-24 10:59
文章分类

全部博文(60)

文章存档

2022年(2)

2020年(23)

2019年(1)

2010年(1)

2009年(33)

我的朋友

分类: Oracle

2009-05-30 16:35:30

近日在网上找了一下Oracle冷备的批处理脚本,结合自己的需求制作了一个冷备的批处理。共分为三个文件:backcold.bat、 bkcold1.sql、bkcold2.sql,本脚本仅适用于windows平台。调试环境为:Windows XP SP2、oracle 9.2.0.1.0

工作过程为:
一、正常卸载数据库
二、把需要备份的文件复到一个以当前日期和时间组成的目录中
三、启动数据库到打开状态
四、对复制出来的文件使用RAR压缩,压缩完成后删除这个目录

在编写和调试过程中遇到一个关于获取日期的问题,试了好多次,发现只有把获取日期的变量这句放在批处理文件最前面才会正常工作。

批处理获取系统时间的代码对照:

%date:~0,4% 获取年份
%date:~5,2% 获取月份
%date:~8,2% 获取日期
%date:~10,6% 获取星期几

%time:~0,2% 获取小时
%time:~3,2% 获取分钟


backcold.bat
========================================================
@ECHO OFF
REM Backup oracle database in cold mode

set day=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%

set oracle_base_dir=c:\oracle

set bk_dir_source1=%oracle_base_dir%\admin
set bk_dir_source2=%oracle_base_dir%\ora92\database
set bk_dir_source3=%oracle_base_dir%\oradata\testdb

set bk_dir_dest=%oracle_base_dir%\%day%
set bk_dir_dest1=%bk_dir_dest%\admin
set bk_dir_dest2=%bk_dir_dest%\ora92\database
set bk_dir_dest3=%bk_dir_dest%\oradata\testdb

set bk_sdsql=%oracle_base_dir%\bkcold1.sql
set bk_stsql=%oracle_base_dir%\bkcold2.sql

set bk_arcfile=%oracle_base_dir%\testdb_%day%.rar

set oracle_sid=testdb

set path=%path%;c:\program files\winrar

cd %oracle_base_dir%
md %bk_dir_dest1%
md %bk_dir_dest2%
md %bk_dir_dest3%

sqlplus /nolog @%bk_sdsql%
xcopy %bk_dir_source1% %bk_dir_dest1% /e
xcopy %bk_dir_source2% %bk_dir_dest2% /e
xcopy %bk_dir_source3% %bk_dir_dest3% /e
sqlplus /nolog @%bk_stsql%

rar a -r -df %bk_arcfile% %oracle_base_dir%\%day%
========================================================


bkcold1.sql
========================================================
conn sys/bbb as sysdba;
shutdown immediate;
exit;
========================================================


bkcold2.sql
========================================================
conn sys/bbb as sysdba;
startup;
exit;
========================================================
阅读(580) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~