TSM恢复时报错ANS1314E

前段时间,在进行泰国的某数据库的容灾测试,大致的步骤是先在容灾机器上恢复操作系统,包括TSM的必要文件和TSM自身的数据库,再用TSM还原相应的文件,如oracle的软件,最后再用rman直接读取带库恢复数据库。在这里把遇到的报错做一记录,以备查验。

我们的环境是数据库服务器和客户端在同一个机器上。在恢复数据库的第一步,从磁带还原控制文件的时候,发生报错了:

这个报错最关键的一句是最后一句:ANS1314E (RC14) File data currently unavailable on server。它是个client message,大意是需要restore的文件在备份服务器端找不到,而引起这个文件在备份服务器端找不到的原因可能是以下:
(1)数据在备份服务器上丢失
(2)备份服务器读错误
(3)对应的文件正在备份服务器上正在做reclaim操作
(4)备份服务器要求的磁带已经被标注成unavaliable了。
我们顺着在rman环境变量的配置的TDPO_OPTFILE一路找下去(注:TDPO全称是Tivoli Data Protection for Oracle)。

ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo_tstas015_d.opt),因此我们先去找/usr/tivoli/tsm/client/oracle/bin64/tdpo_tstas015_d.opt 这个opt文件(这个opt file位于客户端)在我们这个环境中,tdpo_tstas015_d.opt这个文件其实是一个合集,类似的,你在exp的时候,写一个par file是一样的道理。
如果你把tdpo_tstas015_d.opt中的内容放在rman的ENV一样可以:

这样也是一样效果的。

我们来看一下这个文件的内容:

在这个文件中,有几个针对oracle的非常重要的环境变量的配置:
DSMI_ORC_CONFIG:它指向API option file(dsm.opt)的路径,(这个参数如果备份DB2就是DSMI_CONFIG了,ORC代表oracle),这个API option file中会设置相关的Servername。
DSMO_FS:它包括了TSM服务器端filespace的名字,默认的名字是/adsmorc.

在这里,我找了DSMI_ORC_CONFIG 配置文件是/usr/tivoli/tsm/client/oracle/bin64/dsm_tdpo_day.opt,它属于user option file(以opt结尾):

我们看到了SErvername是tsm_oracle_daily。
因此,我们要继续从user option file,去找system option file。而这个file,就是dsm.sys。
大致的途径,如下图:

dsm.sys文件通过在api路径下,在我们的环境中,即/usr/tivoli/tsm/client/api/bin64中,不过我发现他不在这个目录下,但做了个软链:

ok,我们去找/usr/tivoli/tsm/client/ba/bin/dsm.sys,并且,在TSM的dsm.sys配置文件中,我们去找对应Servername为tsm_oracle_daily节点的信息:

我们看关于日备tsm_oracle_daily的那段:
第一行SErvername 表示定义的服务器端的名称tsm_oracle_daily,
第二行 COMMMethod TCPip表示客户端和服务器端的通讯方式
第三行 TCPPort 1500表示客户端和服务器端的通讯端口
第四行 TCPServeraddress 表示服务器的hostname为tstas015.tst.mycompan.com(这个可以配置IP地址,如果配的是hostname,需要在/etc/hosts中做解析)
第五行 TCPClientaddress 表示客户端的hostname为tstas015.tst.mycompan.com(这个可以配置IP地址,如果配的是hostname,需要在/etc/hosts中做解析)
第六行 nodename表示这台客户端的节点名称tstas015_d_oracle。该配置类似于第一行,不过这个是客户端的名称,第一行是服务器端的名称。

因此,这边的第四和第五行就有点问题了,由于进行容灾测试的时候,机器是另外一个台机器(tstas020),已经不再是tstas015这台server,因此,我们要更换成tstas020的IP(因为容灾测试机,没配hosts解析)。

因此,问题已经明确,修改TCPServeraddress和TCPClientaddress为容灾机的地址,再次尝试rmanrestore,成功。

综上所述,对于TSM中从rman脚本到tsm配置的查找路径为:rman环境变量中的tdpo.opt->TSM的bin下的dsm.opt->TSM的api下dsm.sys。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据