批处理备份数据库.txt

2009-11-11 14:05 批处理-取年月日、时分秒毫秒 批处理比较运算符 批处理-取年月日、时分秒毫秒 

echo 取年份: %date:~0,4% 

ECHO 取月份 %date:~5,2% 

ECHO 取日期:%date:~8,2% 

echo 取星期:%date:~10,6% 

echo 取小时:%time:~0,2% 

echo 取分:%time:~3,2% 

echo 取秒:%time:~6,2% 

echo 毫秒:%time:~9,2%



批处理比较运算符


EQU - 等于   

   NEQ - 不等于   

LSS - 小于   

   LEQ - 小于或等于   

   GTR - 大于   

   GEQ - 大于或等于 

 




步骤:

  

1.

批处理文件

backup.bat  

exp system/manager file=d:\backup\oracle\oracle%date:~4,10%.dmp 

owner=system log=d:\backup\oracle\oracle%date:~0,10%.log 

将生成

oracle

日期






.dmp

文件

  

exp system/manager file=d:\backup\oracle\oracle%date:~11,3%.dmp 

owner=system log=d:\backup\oracle\oracle%date:~11,3%.log  

将生成

oracle

星期

*.dmp

文件,则每周循环保留一个备份文件,共

7

个备份文

件循环

  

2

,添加一个任务计划

  

利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零

时),执行

d:\oracle\backup.bat  

3

、以后每天将在目录中生成形如“oracle2005

-08-31.dmp

oracle2005-08-

31.log”的备份和日志文件。

  

---------------------------------------------------------------------

----------------------------------------------  

说明:

  

1



%date%

的值在不同的系统、语言版本下可能是不一样的,控制面板里面区域

选项的设定也会改变

%date%

的值。

  

请先在命令行中测试

 echo %date% 

的返回值。

 

%date:~4,10% 

是返回日期函数,

  

~

后的第一个参数是要截取的起始位置(从

0

开始),第二个参数是要截取的长

度,如没有则是截取到最后,参数可酌情修改。

  

2

、如需要准确的时间做为文件名,请用

%time%

函数,参数同上。

 

  

backup.bat

文件内容

  

【注:

FULL 

导出整个数据库

 (N)

INDEXES 

导出索引

 (Y)

GRANTS 

导出权限

 (Y) 

CONSTRAINTS 

导出约束

 (Y)

COMPRESS 

导入一个

extent (Y)

  

@echo off  

set filename="f:\back\%date:~8,2%

"  

exp 

userid=system/orcl@orcl

 file=%filename%.dmp full=y INDEXES=y 

grants=y constraints=y compress=y log=%filename%.log 

rar  a  %filename%.rar  %filename%.*  

del  %filename%.dmp  

del  %filename%.log  

放计划任务里面定时执行,

 

文件名以日期的

day

部分来命名

 

备份后调用

rar

进行压缩

  

这样可以保存一个月的历史数据

 

    

注意:

需要把

program 

files/winrar

目录下的

rar.exe

拷贝到系统

system32

目录下。

如果是以星期命名,

则需要将

set 

filename=e:\data_bak\%date:~8,2%

日修改为

set filename=e:\data_bak\%date:~0,3% 

写个简单的批处理文件备份恢复:

 

备份:

  

@echo off 

 

 

 

 

 

 

 

 

 

 

 //

不显示命令行

  

echo 

开始备份表

..... 

 

 

 

 

 

 //

打印信息

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D: DOS

切换到

D: 

  

cd oracle\ora92\bin 

 

 

 

 

 

 //

切换到

cd oracle\ora92\bin

目录

 

exp 

用户名

/

密码

@

数据库

 file=d:\config_bak.dmp tables=(table1,table2) 

备份表一表二到

d:\config_bak.dmp 

echo 

备份完毕!

  

  

恢复:

  

@echo off 

 

 

 

 

 

 

 

 

 

 

  

echo 

开始恢复表

..... 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D: cd oracle\ora92\bin  

imp 

用户名

/

密码

@

数据库

 file=d:\config_bak.dmp tables=(table1,table2) 

ignore=y  

sqlplus /nolog @oraStartup.sql>>oraStartup.log 

调用

sql

文件

 

pause 

执行完

sql

文件以后暂停,看信息

 

echo 

恢复完毕!

  

执行环境:可以在

SQLPLUS.EXE

或者

DOS

(命令行)中执行,

  

DOS

中可以执行时由于

 

oracle 8i 

 

安装目录

\ora81\BIN

被设置为全

局路径,该目录下有

EXP.EXE

IMP.EXE

文件被用来执行导入导出。

  

    SQLPLUS.EXE

调用

EXP.EXE

IMP.EXE

他们所包裹的类,完成导入导出功能。


你可能感兴趣的:(oracle)