@echo off :: CMD默认为65001编码,使用db2cmd执行需要设置936 chcp936 SETLOCAL EnableDelayedExpansion for /F "tokens=1,2 delims=#" %%ain ('"prompt #$H#$E# & echo on & for%%bin (1) dorem"') do ( set "DEL=%%a" )
title DB2 database backup cls
REM +-------------------------------------------------------------+ REM + Base info: + REM + -- auhtor: mingliang.gao + REM + -- time: 2021/05/31 + REM + -- version: v1.0.1 + REM + -- system: Windows + REM + -- desc: DB2 Windows all backup script + REM + + REM + Execute method: + REM + -- auto: db2cmd + task + REM + -- manual: all path run the script with db2cmd + REM + + REM + Debug: + REM + -- 自定义位置加入pause + REM + + REM + 打印乱问题: + REM + -- 1.设置编码与db2cmd编码一致,根据服务器db2cmd编码设定, + REM + db2cmd右键->属性->选项中查看编码 + REM + -- 2.文件用文本编辑器打开,另存为ANSI编码格式 + REM + + REM + Useage: + REM + -- 1.修改chcp编码,以运行服务器db2cmd编码为准 + REM + -- 2.修改backup config + REM + -- 3.选择手动或者自动运行方式 + REM + + REM + Others: + REM + -- 1.设置定时任务时,程序选择db2cmd命令,参数选择备份脚本 + REM +-------------------------------------------------------------+
REM +-------------------------------------------------------------+ REM + Backup info: + REM + -- ip: 16.19.209.67 + REM + -- task: 每周六晚上11点备份 + REM +-------------------------------------------------------------+
REM +-------------------------------------------------------------+ REM backup config set db=mzlpas set user=pas set password=pas set backup_dir=E:\BACKUP_MZLPAS set backup_log=%backup_dir%\backup.log REM +-------------------------------------------------------------+
for /f "tokens=1-4 delims=/-\ " %%ain ('date /t') do ( set week=%%a set year=%%b set month=%%c set day=%%d ) set curdate=%year%%month%%day% echo ========================start backup======================== :: print base informations echo 当前时间: %date%%time% call :ColorText 0a "blue" echo 数据库: %db% echo 用户: %user% echo 密码: %password% echo 备份目录: %backup_dir% echo 备份日志: %backup_log%
:: ifnotexistdir or log file, created ifnotexist%backup_dir% ( mkdir%backup_dir% ) ifnotexist%backup_log% ( echo%db% backup log >> %backup_log% )
:: backup command db2 connect to %db% user %user% using %password% db2 force applications all db2 backup db %db% to %backup_dir% PARALLELISM 2 COMPRESS
echo.
:: record the backup result iferrorlevel0 ( echo%curdate%: success echo%curdate%: success >> %backup_log% ) else ( echo%curdate%: failed echo%curdate%: failed >> %backup_log% exit )