您的位置:首页 > 博客中心 > 数据库 >

windows 系统下,小数据量Oracle用户物理备份

时间:2022-03-14 01:24

环境:windows Server 2003 oracle 10g,系统间备份

目标系统创建共享文件,原系统挂载共享目录

写批处理脚本,用任务计划定时调用

Rem * 由于系统实时性要求不是很高,数据量不大,且只有一块磁盘,考虑异地备份     *
Rem * 异地备份的时候使用expdp 出schema THUNIITSMUSER                           * 
Rem * 使用windows命令的共享文件模式,将dump出来的文件copy到192.168.1.47上      * 
Rem * create or replace directory dump_dir as ‘E:\itsm_backup\dump_dir‘;       * 
Rem * ‘copy /y E:\itsm_backup\dump_dir*.* \\Shouhou47\itms_databak\‘;          *
Rem * 此脚本通过windows计划任务每个工作日23:05调用,                            *
Rem * 保留7天的备份,七天之前的备份删除掉                                      *
Rem * 如果系统密码改变记得更改计划任务的密码,                                 *
Rem * 如果47的密码改变记得修改脚本中访问47的密码                               *
Rem * created by zen at 2014/10/21 周二10:55:31.86                             *

echo begin time : %date%%time%
E:
cd E:\itsm_backup\dump_dir

set ORACLE_HOME=D:\oracle\product\10.2.0\db_1

set ORACLE_SID=itsmdb

set Today=%date:~0,4%%date:~5,2%%date:~8,2%

Rem 设置dump目录
set dumpdir=E:\itsm_backup\dump_dir
Rem 设置具体文件
set dumpf=THUNIITSMUSER%Today%

Rem 如果文件已经存在删除
if exist %dumpdir%%dumpf%.log del %dumpdir%%dumpf%.log

if exist %dumpdir%%dumpf%.dmp del %dumpdir%%dumpf%.dmp

echo expdp begin : %date%%time%
Rem 导出schema
expdp \"/ as sysdba\" DUMPFILE=%dumpf%.dmp DIRECTORY=dump_dir SCHEMAS=THUNIITSMUSER logfile=%dumpf%.log

echo expdp end : %date%%time%
Rem ******************************************************************

Rem 挂载远程目录
if exist Z: net use Z: /delete
net use Z: \\192.168.1.47\itms_databak /user:"Administrator" "esenSHZ2014A"

Rem 设置备份目录
set backup_dir=Z:set dumpf=THUNIITSMUSER%Today%

Rem 判断文件在目标目录是否存在
if exist %backup_dir%%dumpf%.log del %backup_dir%%dumpf%.log
if exist %backup_dir%%dumpf%.dmp del %backup_dir%%dumpf%.dmp

Rem 转移到备份的地方
copy /y %dumpdir%%dumpf%.log %backup_dir%%dumpf%.log
copy /y %dumpdir%%dumpf%.dmp %backup_dir%%dumpf%.dmp

Rem 删除导出的数据文件及其日志
del %dumpdir%%dumpf%.dmp

del %dumpdir%%dumpf%.log

Rem ******************************************************************
Rem 删除七天前的备份
set /a PassDays=%Today%-7
set dumpf=%backup_dir%THUNIITSMUSER%PassDays%

Rem IF [NOT] EXIST filename command
IF exist %dumpf%.log del %dumpf%.log

Rem del %dumpf%.log
IF exist %dumpf%.dmp del %dumpf%.dmp

Rem 删除远程目录
if exist Z: net use Z: /delete 

echo bat end : %date%%time%

 

热门排行

今日推荐

热门手游