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

时间:2023-03-09 19:04:18
windows 系统下,小数据量Oracle用户物理备份

环境: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 Characterset
Rem SQL> select * from v$nls_parameters;
Rem
Rem PARAMETER VALUE
Rem ---------------------------------------------------------------- ---------------------------------
Rem NLS_LANGUAGE SIMPLIFIED CHINESE
Rem NLS_TERRITORY CHINA
Rem NLS_CURRENCY ¥
Rem NLS_ISO_CURRENCY CHINA
Rem NLS_NUMERIC_CHARACTERS .,
Rem NLS_CALENDAR GREGORIAN
Rem NLS_DATE_FORMAT DD-MON-RR
Rem NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
Rem NLS_CHARACTERSET ZHS16GBK
Rem NLS_SORT BINARY
Rem NLS_TIME_FORMAT HH.MI.SSXFF AM
Rem NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
Rem NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
Rem NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
Rem NLS_DUAL_CURRENCY ¥
Rem NLS_NCHAR_CHARACTERSET AL16UTF16
Rem NLS_COMP BINARY
Rem NLS_LENGTH_SEMANTICS BYTE
Rem NLS_NCHAR_CONV_EXCP FALSE
Rem
Rem 19 rows selected
Rem
Rem tablespace
Rem SQL> select username,default_tablespace from dba_users t where t.username='THUNIITSMUSER';
Rem
Rem USERNAME DEFAULT_TABLESPACE
Rem ------------------------------------------------------------ -------------------------------
Rem THUNIITSMUSER TBS_ITSM
Rem
Rem ************************************************************************************************ 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=THUNIITSMUSER%Today%.log echo expdp end : %date%%time%
Rem ****************************************************************** Rem 挂载远程目录
if exist Z: net use Z: /delete
Rem (net use Z: \\192.168.1.47\itms_databak /user:"Administrator" "esenSHZ2014A")该目录被修改
net use Z: \\192.168.1.47\shouhuo47-L盘\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 删除七天前的备份 rem 计算指定天数之前的日期
set DaysAgo=7
rem 假设系统日期的格式为yyyy-mm-dd
call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays
set /a PassDays-=%DaysAgo%
call :DaysToDate %PassDays% DstYear DstMonth DstDay
set DstDate=%DstYear%%DstMonth%%DstDay%
echo %DaysAgo%天之前的日期是%DstDate% REM set /a PassDays=%Today%-7
set dumpf=%backup_dir%THUNIITSMUSER%DstDate% 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% goto :eof :DateToDays %yy% %mm% %dd% days
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF :DaysToDate %days% yy mm dd
setlocal ENABLEEXTENSIONS
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF