Enjoy the good life everyday!
关闭
欢迎来PyGo个人空间 ^_^
DB2自动化全量备份 | PyGo²

DB2自动化全量备份

项目上使用的是DB2数据库,全库备份一直是手动备份,自动化的东西没有代码解决不了的问题,初识bat自动化脚本,写的也很简单,分享一下。

DB2 backup 自动化

实现流程

  • 设置执行命令的编码,这个与运行服务器db2cmd的编码保持一致,设置936,如果是windows8、10等设置65001
  • 备份信息的配置,包含数据库名称、用户、密码、存储目录、日志文件
  • 存储目录不存在新建、日志文件不存在新建
  • db2全库备份
  • 记录执行结果

目前实现了基础的备份功能,后续加上彩色打印、自动化删除指定日期前备份文件功能,持续更新中。。。。。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
@echo off
:: CMD默认为65001编码,使用db2cmd执行需要设置936
chcp 936
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') 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=/-\ " %%a in ('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%

:: if not exist dir or log file, created
if not exist %backup_dir% (
mkdir %backup_dir%
)
if not exist %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
if errorlevel 0 (
echo %curdate%: success
echo %curdate%: success >> %backup_log%
) else (
echo %curdate%: failed
echo %curdate%: failed >> %backup_log%
exit
)

echo =========================end backup=========================
pause
exit
  • 本文作者:mingliang.gao【一个爱老婆Python程序猿。。。。。。】
  • 本文链接: http://pygo2.top/articles/16336/
  • 版权声明: 本博客所有文章欢迎转载,转载请注明出处!
觉得有帮助 请偶坐个公交车
0%