TSM恢复时报错ANS1314E
来源:互联网 发布:一搜同志个人网络东北 编辑:程序博客网 时间:2024/05/16 23:39
前段时间,在进行泰国的某数据库的容灾测试,大致的步骤是先在容灾机器上恢复操作系统,包括TSM的必要文件和TSM自身的数据库,再用TSM还原相应的文件,如oracle的软件,最后再用rman直接读取带库恢复数据库。在这里把遇到的报错做一记录,以备查验。
我们的环境是数据库服务器和客户端在同一个机器上。在恢复数据库的第一步,从磁带还原控制文件的时候,发生报错了:
2> allocate channel c1 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo_tstas015_d.opt)';
3> restore controlfile FROM 'ctrl_3897_1_747929350';
4> alter database mount;
5> release channel c1;
6> }
allocated channel: c1
channel c1: sid=12 devtype=SBT_TAPE
channel c1: Data Protection for Oracle: version 5.4.1.0
Starting restore at 11-APR-11
channel c1: restoring controlfile
released channel: c1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 04/11/2011 17:30:46
ORA-19501: read error on file "ctrl_3897_1_747929350", blockno 1 (blocksize=512)
ORA-27190: skgfrd: sbtread2 returned error
ORA-19511: Error received from media manager layer, error text:
ANS1314E (RC14) File data currently unavailable on server
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一样可以:
2> allocate channel c1 type 'sbt_tape' parms
'ENV=(
DSMI_ORC_CONFIG=/usr/tivoli/tsm/client/oracle/bin64/dsm_tdpo_day.opt,
TDPO_FS=ORACLEDB_TSTAS015,
TDPO_NODE=tstas015_d_oracle
)';
这样也是一样效果的。
我们来看一下这个文件的内容:
***************************************************************************
* IBM Tivoli Storage Manager for Databases
* Data Protection for Oracle
*
* Sample tdpo.opt for the AIX Data Protection for Oracle 64bit
*********************************************************************
*DSMI_ORC_CONFIG /usr/tivoli/tsm/client/oracle/bin64/dsm.opt
*DSMI_LOG /home/<oracle>
*TDPO_FS adsmorc
*TDPO_NODE <hostname>
*TDPO_OWNER <username>
*TDPO_PSWDPATH /usr/tivoli/tsm/client/oracle/bin64
*TDPO_DATE_FMT 1
*TDPO_NUM_FMT 1
*TDPO_TIME_FMT 1
*TDPO_MGMT_CLASS_2 mgmtclass2
*TDPO_MGMT_CLASS_3 mgmtclass3
*TDPO_MGMT_CLASS_4 mgmtclass4
DSMI_ORC_CONFIG /usr/tivoli/tsm/client/oracle/bin64/dsm_tdpo_day.opt
TDPO_FS ORACLEDB_TSTAS015
TDPO_NODE tstas015_d_oracle
[oracle@tstas020:/bustools/oracle/xxx]#
在这个文件中,有几个针对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
我们看到了SErvername是tsm_oracle_daily。
因此,我们要继续从user option file,去找system option file。而这个file,就是dsm.sys。
大致的途径,如下图:
dsm.sys文件通过在api路径下,在我们的环境中,即/usr/tivoli/tsm/client/api/bin64中,不过我发现他不在这个目录下,但做了个软链:
total 21240
-rw-r--r-- 1 root system 29 Dec 22 2008 dsm.opt
-rw-r--r-- 1 root system 782 Mar 29 2009 dsm.opt.smp
lrwxrwxrwx 1 root system 20 Aug 07 2008 dsm.sys -> ../../ba/bin/dsm.sys
-rw-r--r-- 1 root system 971 Mar 29 2009 dsm.sys.smp
-rwsr-xr-x 1 root system 5085448 Apr 22 2009 dsmtca
lrwxrwxrwx 1 root system 33 Jul 15 2009 en_US -> /usr/tivoli/tsm/client/lang/en_US
-rw-r--r-- 1 root system 5769233 Apr 22 2009 libApiTSM64.a
drwxr-xr-x 2 root system 4096 Apr 22 2009 sample
ok,我们去找/usr/tivoli/tsm/client/ba/bin/dsm.sys,并且,在TSM的dsm.sys配置文件中,我们去找对应Servername为tsm_oracle_daily节点的信息:
************************************************************************
* Tivoli Storage Manager *
* *
* Sample Client System Options file for AIX and SunOS (dsm.sys.smp) *
************************************************************************
* This file contains the minimum options required to get started
* using TSM. Copy dsm.sys.smp to dsm.sys. In the dsm.sys file,
* enter the appropriate values for each option listed below and
* remove the leading asterisk (*) for each one.
* If your client node communicates with multiple TSM servers, be
* sure to add a stanza, beginning with the SERVERNAME option, for
* each additional server.
************************************************************************
SErvername tsm_daily
COMMMethod TCPip
TCPPort 1500
TCPServeraddress 10.76.48.140
TCPClientaddress 10.76.48.140
Nodename tstas015_d
Passwordaccess Generate
Schedmode prompt
TCPClientport 1501
Schedlogname /tsm/logs/dsmsched_daily.log
ERRORLOGNAME /tsm/logs/dsmerror_daily.log
Passworddir /usr/tivoli/tsm/client/ba/bin/pwd/daily
SCHEDLOGRETENTION 7 D
ERRORLOGRETENTION 7 D
HTTPPORT 1581
exclude "/busdata/rfyt/tst0/_lgi/oracle/vol1/.../*"
exclude "/busdata/rfyt/tst0/_lgi/oracle/vol2/.../*"
SErvername tsm_monthly
COMMMethod TCPip
TCPPort 1500
TCPServeraddress tstas015.tst.mycompan.com
TCPClientaddress tstas015.tst.mycompan.com
Nodename tstas015_m
Passwordaccess Generate
Schedmode prompt
TCPClientport 1502
Schedlogname /tsm/logs/dsmsched_monthly.log
ERRORLOGNAME /tsm/logs/dsmerror_monthly.log
Passworddir /usr/tivoli/tsm/client/ba/bin/pwd/monthly
SCHEDLOGRETENTION 12 D
ERRORLOGRETENTION 12 D
HTTPPORT 1582
exclude "/busdata/rfyt/tst0/_lgi/oracle/vol1/.../*"
exclude "/busdata/rfyt/tst0/_lgi/oracle/vol2/.../*"
SErvername tsm_yearly
COMMMethod TCPip
TCPPort 1500
TCPServeraddress tstas015.tst.mycompan.com
TCPClientaddress tstas015.tst.mycompan.com
Nodename tstas015_y
Passwordaccess Generate
Schedmode prompt
TCPClientport 1503
Schedlogname /tsm/logs/dsmsched_yearly.log
ERRORLOGNAME /tsm/logs/dsmerror_yearly.log
Passworddir /usr/tivoli/tsm/client/ba/bin/pwd/yearly
SCHEDLOGRETENTION 10 D
ERRORLOGRETENTION 10 D
HTTPPORT 1583
SErvername tsm_oracle_daily
COMMMethod TCPip
TCPPort 1500
TCPServeraddress tstas015.tst.mycompan.com
TCPClientaddress tstas015.tst.mycompan.com
Nodename tstas015_d_oracle
Passwordaccess Prompt
Schedmode prompted
SCHEDLOGRETENTION 7 D
ERRORLOGRETENTION 7 D
Schedlogname /tsm/logs/dsmsched_oracle_daily.log
ERRORLOGNAME /tsm/logs/dsmerror_oracle_daily.log
Passworddir /usr/tivoli/tsm/client/oracle/bin64/pwd/daily
SErvername tsm_oracle_monthly
COMMMethod TCPip
TCPPort 1500
TCPServeraddress tstas015.tst.mycompan.com
TCPClientaddress tstas015.tst.mycompan.com
Nodename tstas015_m_oracle
Passwordaccess Prompt
Schedmode prompt
TCPClientport 1502
Schedlogname /tsm/logs/dsmsched_oracle_monthly.log
ERRORLOGNAME /tsm/logs/dsmerror_oracle_monthly.log
Passworddir /usr/tivoli/tsm/client/oracle/bin64/pwd/monthly
SCHEDLOGRETENTION 12 D
ERRORLOGRETENTION 12 D
SErvername tsm_oracle_yearly
COMMMethod TCPip
TCPPort 1500
TCPServeraddress tstas015.tst.mycompan.com
TCPClientaddress tstas015.tst.mycompan.com
Nodename tstas015_y_oracle
Passwordaccess Prompt
Schedmode prompt
TCPClientport 1503
Schedlogname /tsm/logs/dsmsched_oracle_yearly.log
ERRORLOGNAME /tsm/logs/dsmerror_oracle_yearly.log
Passworddir /usr/tivoli/tsm/client/oracle/bin64/pwd/yearly
SCHEDLOGRETENTION 12 D
ERRORLOGRETENTION 12 D
[root@tstas020:/usr/tivoli/tsm/client/ba/bin]#
我们看关于日备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。
原文地址:http://www.oracleblog.org/its-my-life/deal-with-tsm-error-ans1314e/
- TSM恢复时报错ANS1314E
- TSM 备份 归档和 恢复
- tsm 恢复某特定的时间,文件
- 用TSM在异机恢复Oracle
- TSM+RMAN异机恢复实验
- IBM TSM 5.5下跨机恢复Oracle数据库
- db2 备份 tsm 报错
- 关于 tsm 数据 备份和恢复的 测试
- TSM恢复ORACLE数据库速度极慢的问题。
- tsm 数据恢复 失败 (原来archive 的恢复和backup 的不一样)
- 虚拟机安装时报出不可恢复错误
- TSM备份Oracle报错(rman-06012,ANR1401W)
- TSM简介
- 关闭程序时报错
- enterpriseliberary2005运行时报错
- delete 对象时报错
- repo init时报错
- 新增数据时报错
- windows程序设计 例题解析 DEVCAPS1.C
- 重识JavaScript
- 传说中的WCF(9):流与文件传输
- HTML使用CSS的三种方式
- 最全的 Twitter Bootstrap 开发资源清单(转)
- TSM恢复时报错ANS1314E
- 好看html样式
- 波士顿闷热
- android左右滑动加载分页以及动态加载数据
- matlab在64位的机子上不能运行notebook解决方法
- 发现struts2中一种比较奇怪的现象,求解释(加#与不加)
- Android HAL原理实现& GPS HAL实现
- python实现邮件的发送
- C算法-------指针操作