TSM-for-db2备份及恢复
TSM下db2备份及恢复
1.安装TSM客户端软件
2.编辑⽤户环境⽂件(db2⽤户)如果db2是64位,tsmclient要64位
#vi $HOME/.profile加⼊(db2的64位版本,要安in64,相关bin改为bin64) export
DSMI_DIR=/usr/tivoli/tsm/client/api/bin64(标识API 可信代理进程⽂件(dsmtca)所在的⽤户定义⽬录路径)
export DSMI_CONFIG=/usr/tivoli/tsm/client/api/bin64/dsm.opt (标识dsm.opt ⽂件(它包含TSM ⽤户选项)的⽤户定义⽬录路径。与另外两个变量不同,此变量应包含全路径和⽂件名)
export DSMI_LOG=/usr/tivoli/tsm/client/ba/bin/dsmerror.log (标识将在其中创建错误⽇志(dsierror.log)的⽤户定义⽬录路径) 3.配置/usr/tivoli/tsm/client/api/bin/dsm.opt及/usr/tivoli/client/api/bin/dsm.sys
#vi /usr/tivoli/tsm/client/api/bin/dsm.opt
SErvername
#vi /usr/tivoli/client/api/bin/dsm.sys
SErvername (与dsm.opt中的名称相同)COMMMethod TCPip
TCPPort 1500
TCPServeraddress
nodename
passwordaccess generate
errorlogname /tmp/tsmdb2.log (要与DSMI_LOG下的路径⼀致,并且要有相应的读写权限) 这⼀⾏⼀定要⽤到
4.运⾏命令dsmapipw,(位于db2实例⽬录/sqllib/adsm中),tsm api与server连接
的密码. 设置TSM密码
这⾥要⽤root⽤户,并且先运⾏ . /home/db2inst1/.profile。然后再运⾏
/home/db2inst1/sqllib/adsm/dsmapipw
先输⼊旧密码,再输⼊新密码。(不⼀定要改)node 的密码
输完之后,仔细看有没有错误产⽣。完了之后,你可以在/etc/security/adsm下⾯看到⼀个TSM.PWD⽂件,这⾥包含了你新输⼊的密码,当然是加密过后的。
5. 修改db2相关参数:
在使数据库进⼊备份模式之前,需要使⽤归档⽇志.
a)确保没有⽤户使⽤Db2:
#db2 list applications for db dbname
#db2stop force
#db2start
b)db2版本8.2以上,不必再为⽇志⽂件配置⽤户出⼝。不得不分别发送⽇志
⽂件并试图断定应使⽤哪个⽇志⽂件的⽇⼦已⼀去不复返。需要做的只是在备份命令中加上短语include logs。⼀旦有了⼀次原始备份,并且所有⽇志均完好⽆损,即可保证不损失任何数据。
运⾏db2 update db cfg for db using logretain on即可。
c)db2版本低于8.2.需要启⽤⽤户出⼝(需要编译相关⽤户出⼝程序)
# db2 update db cfg for sample using userexit on 启⽤⽤户出⼝
#db2 update db cfg for sample using logretain on 启⽤归档⽇志
6.开启上述参数后,数据库处于backup pending状态,要求做⼀次数据库的离线全备份。
#db2 backup db dbname use tsm
7.在线备份命令
db2>=8.2时#db2 backup db online use tsm include logs
db2<8.2时#db2 backup db online use tsm
8.数据库恢复
a)使⽤db2adutl和db2 list history察看备份纪录.
#db2adutl
#db2 list history backup all for db_name
b)恢复备份历史纪录(每次backup,不论类型,都会备份历史纪录⽂件)。这⾥的时间戳应该是最新的
#db2 restore db history file use tsm taken at buffer 100
c)使⽤db2的恢复帮助⼯具:
#db2ckrst –d –t –r database
命令返回建议的必需的恢复操作命令
d)恢复数据库
#db2 restore db use tsm
e) 这时数据库处于rollforward-pending state的状态,需要做roll forward 操作:#db2 rollforward db to and stop
9.关于是否要设置logarchmeth1(主⽇志归档⽅法)参数问题:
此参数指定已归档⽇志的主要⽬标的介质类型。db2数据库安装
如果更新userexit 或logretain 配置参数,将⾃动更新logarchmeth1,反之亦然。所以上⾯配置db2参数时,已经隐式配置了它.注意,如果您要使⽤userexit 或logretain, 必须将logarchmeth2 设置为OFF。
10.编译⽤户出⼝
复制sqllib\samples\c\db2uext2.cadsm为db2uext2.c
a)windows下
修改下列参数:
#define BUFFER_SIZE 4096 /* transmit or receive the log */ /* file in 4k portions */ #define AUDIT_ACTIVE 1 /* enable audit trail logging */
#define ERROR_ACTIVE 1 /* enable error trail logging */
#define AUDIT_ERROR_PATH "c:\\mylogs\\" /* path must end with a slash */
#define AUDIT_ERROR_ATTR "a" /* append to text file */
运⾏\Bin\vcvars32.bat
cl db2uext2.c –I\include -link \lib\tsmapi.lib
复制到sqllib\adm下.
b)linux下
修改下列参数:
#define BUFFER_SIZE 4096 /* transmit or receive the log */ /* file in 4k portions */ #define AUDIT_ACTIVE 1 /* enable audit trail logging */
#define ERROR_ACTIVE 1 /* enable error trail logging */
#define AUDIT_ERROR_PATH "/export/home/db2inst1/tsm/" /* path must end with a slash */
#define AUDIT_ERROR_ATTR "a" /* append to text file */
运⾏gcc –I< tsm api⽬录>/bin/samples -L/usr/lib -lApiDS -o db2uext2 db2uext2.c 复制到$HOME/sqllib/adm下
c)Aix下(安装了Visual Age C Compiler)
修改下列参数:
#define BUFFER_SIZE 4096 /* transmit or receive the log */ /* file in 4k portions */ #define AUDIT_ACTIVE 1 /* enable audit trail logging */
#define ERROR_ACTIVE 1 /* enable error trail logging */
#define AUDIT_ERROR_PATH "/home/db2inst1/tsm/" /* path must end with a slash */
#define AUDIT_ERROR_ATTR "a" /* append to text file */
运⾏cc –I< tsm api⽬录>/bin/samples -L/usr/lib -lApiDS -o db2uext2 db2uext2.c
复制到$HOME/sqllib/adm下
我这⾥在crontab⾥有个命令,在每天00:00执⾏
/db2adutl delete full keep 30 db $DB password abcd nodename a80 owner db2inst1 without prompting
⽤来删除TSM的磁带上备份时间超过30天的备份⽂件。前⼏天我把磁带库中不能⽤的磁带通过checkout命令给拿出来了。结果从前天开始,定时执⾏的那条命令出现了以下错误:
db2adutl delete logs between S0000000.log and S0000638.log DB ITM without promptin
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论