【IT168 专稿】NBU(Netbackup)是目前常用复杂系统环境下备份软件之一,最早由Veritas软件公司开发推出,后Veritas软件公司被赛门铁克公司收购后,被并入赛门铁克软件产品家族旗下。NBU功能强大,但使用过程中往往涉及到多个系统运行层面的问题,因此具体使用常常会碰到一些问题。本文总结了,通过NBU6.5版本进行DB2数据库备份恢复的几种常用方式。
以DB2 V9.1 for windows+NBU Server V6.5 for Windows 为例:
查看DB2参数配置
1.进入命令中心,查看现有数据库,使用命令db2ilist列出现有实例名:
2.查询数据目录和数据库名:db2 list db directory
3.联接到数据库NBU: db2 connect to NBU
4.查看数据库当前的参数:db2 get db cfg
注:如果要做在线的备份,要对两个参数作修改: USEREXIT和LOGRETAIN,将其修改为on,他们默认是off的,默认使用循环日志模式,修改完参数后,可以变为归档日志模式,启用了userexit做数据库日志的归档。
离线全备份后查询数据库状态
5.设置参数据userexit参数为ON: db2 update db cfg for db_name using userexit on
6.设置参数logretain为on: db2 update db cfg for db_name using logretain on
7.停掉应用使参数生效:db2 force application all
8.此时需要做一次离线的全备。否则数据是backup pending状态的,无法联结
9.使数据库能够做到增量备份。必须要修改trackmod为 on 状态,并有一次完全备份
10.修改日成文件存放路径: db2 update db cfg for NBU using NEWLOGPATH D:\DB2LOG
11.再次查看当前的数据库状态: db2 get db cfg
12.将用户标识添加至 DB2ADMNS 和 DB2USERS 用户组(Windows)
备份配置方法一
配置备份:使用LOGARCHMETH1 = "VENDOR.." 参数,versions 8.2 and above
1.将LOGARCHMETH1设为VENDOR:
Sqllib\bin\>db2 update db cfg for NBU uing LOGARCHMETH1 VENDOR:C:\progra~1\veritas\netbackup\bin\nbdb2.dll
Attributes
Policy type: DB2
Schedules
Name: DBFULL
Type of Backup:Automatic Full Backup
Schedule:
Name: Default-Appplication-Backup-DB
Type of Backup: Application Backup
Backup Selections:db2_backup_nbu_online.cmd
创建DB2日志备份策略DB2_LOG
3.创建DB2日志备份策略DB2_LOG
Attributes:
Policy type: DB2
Schedules:
Name: Default-Application-Backup-LOG
Type of backup: Application Backup
Schedule:
Name: LOGFuLL
Type of backup:Automatic Full Backup
Clients: DB2数据库主机
Backup Selections:
注此处为空
配置db2.conf参数文件
4.配置db2.conf参数文件
将示例 db2.conf 文件从其所在的示例文件夹位置复制到活动位置。
从install_path\NetBackup\dbext\db2\samples\db2.conf复制到
Install_path\NetBackup\dbext\db2\db2.conf
修改如下项:
DATABASE SAMPLE
OBJECTTYPE DATABASE
POLICY DB2_DB_Policy
SCHEDULE Default-Application-Backup
ENDOPER
DATABASE SAMPLE
OBJECTTYPE ARCHIVE
POLICY DB2_Log_Policy
SCHEDULE User
ARCFUNC SAVE
#ARCFUNC COPY
#ARCDIR /home/db2inst1/arcdir
#RETDIR /home/db2inst1/arcdir
ENDOPER
DATABASE SAMPLE
OBJECTTYPE ARCHIVE
POLICY DB2_ARCH_Policy
SCHEDULE Default-Application-Backup
ENDOPER
为下面的配置:
DATABASE NBU
OBJECTTYPE DATABASE
POLICY DB2_DB
SCHEDULE Default-Application-Backup-DB
ENDOPER
#DATABASE SAMPLE
#OBJECTTYPE ARCHIVE
#POLICY DB2_Log_Policy
#SCHEDULE User
#ARCFUNC SAVE
#ARCFUNC COPY
#ARCDIR /home/db2inst1/arcdir
#RETDIR /home/db2inst1/arcdir
#ENDOPER
DATABASE NBU
OBJECTTYPE ARCHIVE
POLICY DB2_LOG
SCHEDULE Default-Application-Backup-LOG
ENDOPER
注意:配置中红色部份与策略中对应
5.创建备份脚本文件
将备份示例脚本从install_path\NetBackup\ DbExt\sample\ db2_backup_db_online.cmd复制到D盘
D:\db2_backup_nbu_online.cmd
并修改以下项:
@REM Example: @set db2_nblib=C:\progra~1\veritas\netbackup\bin\nbdb2.dll
@set db2_nblib=C:\progra~1\veritas\netbackup\bin\nbdb2.dll
@echo db2_nblib = %db2_nblib%
@REM Example: @set db2_home=D:\sqllib
@set db2_home=D:\sqllib
@echo db2_home = %db2_home%
@REM Example: @set db2_name=SAMPLE
@set db2_name=NBU
@echo db2_name = %db2_name%
6.确认db2uext2.exe
确认DB2安装目径的bin下有db2uext2.exe,如果没有
将C:\Program Files\Veritas\NetBackup\DbExt\DB2\db2uext2.exe复制到D:\SQLLIB\BIN
此情况一般出现在先安装了NBU后安装DB2
备份配置方法二
配置备份:使用用户出口程序和 ARCFUNC SAVE(日志产生自动备份)
1.将启用的日志记录的用户出口参数USEREXIT设为ON
2.创建DB2数据库备份策略DB2_LOG 类型: DB2
3.创建DB2日志备份策略DB2_LOG 类型:MS-Windows-NT
Attributes
Backup Selections:此处为空
4. 配置db2.conf参数文件
将示例 db2.conf 文件从其所在的示例文件夹位置复制到活动位置。
从install_path\NetBackup\dbext\db2\samples\db2.conf复制到
Install_path\NetBackup\dbext\db2\db2.conf
修改如下项:
DATABASE SAMPLE
OBJECTTYPE DATABASE
POLICY DB2_DB_Policy
SCHEDULE Default-Application-Backup
ENDOPER
DATABASE SAMPLE
OBJECTTYPE ARCHIVE
POLICY DB2_Log_Policy
SCHEDULE User
ARCFUNC SAVE
#ARCFUNC COPY
#ARCDIR /home/db2inst1/arcdir
#RETDIR /home/db2inst1/arcdir
ENDOPER
DATABASE SAMPLE
OBJECTTYPE ARCHIVE
POLICY DB2_ARCH_Policy
SCHEDULE Default-Application-Backup
ENDOPER
为下面的配置:
DATABASE NBU
OBJECTTYPE DATABASE
POLICY DB2_DB
SCHEDULE Default-Application-Backup-DB
ENDOPER
DATABASE NBU
OBJECTTYPE ARCHIVE
POLICY DB2_LOG
SCHEDULE User
ARCFUNC SAVE
#ARCFUNC COPY
#ARCDIR /home/db2inst1/arcdir
#RETDIR /home/db2inst1/arcdir
ENDOPER
#DATABASE NBU
#OBJECTTYPE ARCHIVE
#POLICY DB2_LOG
#SCHEDULE Default-Application-Backup
#ENDOPER
注意:配置中红色部份与策略中对应
配置备份方法三
配置备份:使用用户出口程序和 ARCFUNC COPY(日志采用文件备份)
1.将启用的日志记录的用户出口参数USEREXIT设为 ON, 已更改的至日志文件的路径
NEWLOGPATH参数设为你的日志文件存放路径例如 :\DB2LOG\NBU\
2.创建DB2数据库备分策略DB2_DB 类型: DB2
Attributes:
Policy type: DB2
Schedules:
DBFULL
Schedule:
Default-Application-Backup-DB
3.创建日志归档策略DB2_LOG 类型:MS-Windows-NT
Attributes:
Policy type:MS-Windows-NT
Schedules:
Name:USER_ARCHIVE
Type of backup:User Archive
Backup Selections:此处为空
4.创建DB2日志备份策略DB2_LOG_ARCHIVE类型: MS-Windows-NT
Schedules:Full
Backup Selections:此处为db2.conf中定义的目录ARCDIR目录
5.配置db2.conf参数文件
将示例 db2.conf 文件从其所在的示例文件夹位置复制到活动位置。
从install_path\NetBackup\dbext\db2\samples\db2.conf复制到
Install_path\NetBackup\dbext\db2\db2.conf
修改如下项:
DATABASE SAMPLE
OBJECTTYPE DATABASE
POLICY DB2_DB_Policy
SCHEDULE Default-Application-Backup
ENDOPER
DATABASE SAMPLE
OBJECTTYPE ARCHIVE
POLICY DB2_Log_Policy
SCHEDULE User
ARCFUNC SAVE
#ARCFUNC COPY
#ARCDIR /home/db2inst1/arcdir
#RETDIR /home/db2inst1/arcdir
ENDOPER
DATABASE SAMPLE
OBJECTTYPE ARCHIVE
POLICY DB2_ARCH_Policy
SCHEDULE Default-Application-Backup
ENDOPER
为下面的配置:
DATABASE NBU
OBJECTTYPE DATABASE
POLICY DB2_DB
SCHEDULE Default-Application-Backup-DB
ENDOPER
DATABASE NBU
OBJECTTYPE ARCHIVE
POLICY DB2_LOG
SCHEDULE USER_ARCHIVE
#SCHEDULE User
#ARCFUNC SAVE
ARCFUNC COPY
ARCDIR D:\DB2LOGARC
RETDIR D:\DB2LOG\NBU\ \NODE0000
ENDOPER
#DATABASE NBU
#OBJECTTYPE ARCHIVE
#POLICY DB2_LOG
#SCHEDULE Default-Application-Backup-LOG
#ENDOPER
注意:配置中红色部份与策略中对应
# Use ARCDIR 指日志备份目标路径
# Use RETDIR 指DB2归档日志源路径,即db2 cfg指定的目径
6.创建备份脚本文件
将备份示例脚本从install_path\NetBackup\ DbExt\sample\ db2_backup_db_online.cmd复制到D盘
D:\db2_backup_nbu_online.cmd
并修改以下项:
@REM Example: @set db2_nblib=C:\progra~1\veritas\netbackup\bin\nbdb2.dll
@set db2_nblib=C:\progra~1\veritas\netbackup\bin\nbdb2.dll
@echo db2_nblib = %db2_nblib%
@REM Example: @set db2_home=D:\sqllib
@set db2_home=D:\sqllib
@echo db2_home = %db2_home%
@REM Example: @set db2_name=SAMPLE
@set db2_name=NBU
@echo db2_name = %db2_name%
7.确认db2uext2.exe
确认DB2安装目径的bin下有db2uext2.exe,如果没有
将C:\Program Files\Veritas\NetBackup\DbExt\DB2\db2uext2.exe复制到D:\SQLLIB\BIN
此情况一般出现在先安装了NBU后安装DB2
备份配置过程四
配置备份:使用用户出口程序,并且日志驻留在原始分区(raw)
如果使用的是用户出口程序,并且日志驻留在原始分区(PARTITIONTYPE RAW) 上,则可使用以下形式:
DATABASE SAMPLE
OBJECTTYPE ARCHIVE
POLICY DB2_TYPE_POL_LOGPOL (DB2 类型的策略)
SCHEDULE DEFAULT-APPLICATION-BACKUP
在 POLICY 行中,指定 DB2 策略的名称。该策略可以与用来备份数据库的策略相同。
在 SCHEDULE 行中,指定一个 Default-Application-Backup 日程表。
注:与前面备份其他配置基本相同
DB2数据完全恢复
D:\SQLIB\BIN>db2 restore db NBU load:\progra~!\veritas\netbackup\bin\nbdb2.dll
D:\SQLIB\BIN>db2 rollforward db NBU to end of logs and stop
以上NBU备份DB2方法之比较
备份配置过程一:使用LOGARCHMETH1 = "VENDOR.." 参数,versions 8.2 and above
对于日志的备份类似于informix必须保证有空闲磁带机,当日志产生时直接写入磁带,但由于在NBU中DB2全备份与日志备份策略是关联的,当日志备份起动时也会发起DB的备份所以对于DB的备份最好采用增量方式,恢复时可以直接作rollforward无须将日志导入磁盘
备份配置过程二:使用用户出口程序和 ARCFUNC SAVE(日志产生自动备份)
对于日志备份是先生成存于DB2主机目录上,所以必须有相应的空间,当下一日志产生时日志自动备份到磁带,恢复时可以直接作rollforward无须将日志导入磁盘
备份配置过程三:使用用户出口程序和 ARCFUNC COPY(日志以文件方式备份)
对于日志备份当日志产生时自动COPY到指定目录,所以必须有空间存放.再以文件方式备份。日志备份之后不可以自动清除,需要手工或通过脚本方式清除以释放磁盘这间。恢复时得先将日志导入主机磁盘再作rollforward
备份配置过程四:对于UNIX平台的备份恢复方法基本一样,只是一些相关参数lib、db2.conf.db2_backup_nbu_online.cmd存放路径不一样.详情参考手册。