案例: 解决ORACLE ORA-27211的错误。
在一个AIX 6.1, Oracle 10.2.0.4的环境,连接带库。需要备份到带库上。 TSM for Oracle Driver是IBM工程师安装的,DBA负责调试TSM,RMAN 备份。开始执行RMAN时,系统报错:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ==========
RMAN-00571: ===========================================================
RMAN-03009: failure of allocate command on t1 channel at 12/02/2009 13:45:33
ORA-19554: error allocating device, device type: SBT_TAPE, device name:
ORA-27211: Failed to load Media Management Library |
查看: /usr/tivoli/tsm/client/oracle/bin64/tdpoerror.log 文件,有如下信息:
11/25/09 16:18:59 TID<2211946> ==> ANU2512E Could not open license file: /usr/tivoli/tsm/client/oracle/bin64/agent.lic
11/25/09 16:18:59 ANS1025E Session rejected: Authentication failure
11/25/09 16:18:59 ANS1025E Session rejected: Authentication failure
11/25/09 16:18:59 TID<2211946> ==> ANS1025E (RC137) Session rejected: Authentication failure
|
认证失败,估计是无法通过TSM的认证。查看/usr/tivoli/tsm/client/oracle/bin64/ 目录下的文件:
-rw-rw-rw- 1 root system 742 Nov 25 16:19 dsm.opt
-rw-r--r-- 1 root system 0 Nov 25 16:34 dsmerror.log
drwxr-xr-x 2 root system 256 Nov 25 15:11 en_US
-rwxr-xr-x 1 bin bin 914416 Jun 3 2009 libobk64.a
-rw-rw-rw- 1 bin bin 690 Dec 3 12:30 tdpo.opt
-rwxr-xr-x 1 bin bin 691 Jun 3 2009 tdpo.opt.smp64
-rwxr-xr-x 1 bin bin 802518 Jun 3 2009 tdpoconf
-rw-r--r-- 1 root system 525 Nov 25 16:18 tdpoerror.log
|
缺失agent.lic, tdposync 两个文件。通过IBM 安装上缺失的文件。安装完毕,再次执行RMAN 来验证:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ==========
RMAN-00571: ===========================================================
RMAN-03009: failure of allocate command on t1 channel at 12/02/2009 13:45:33
ORA-19554: error allocating device, device type: SBT_TAPE, device name:
ORA-27211: Failed to load Media Management Library
错误依然,但是具体的错误信息已经变化了:
12/07/09 12:00:24 ANS1834S Unable to write to '/etc/security/adsm' for storing password
12/07/09 12:00:24 ANS1834S Unable to write to '/etc/security/adsm' for storing password
12/07/09 12:00:24 ANS0282E Password file is not available.
12/07/09 12:00:24 TID<671750> ==> ANS0282E (RC168) Password file is not available.
12/07/09 12:01:08 ANS1834S Unable to write to '/etc/security/adsm' for storing password
12/07/09 12:01:08 ANS1834S Unable to write to '/etc/security/adsm' for storing password
12/07/09 12:01:08 ANS0282E Password file is not available.
12/07/09 12:01:08 TID<1278070> ==> ANS0282E (RC168) Password file is not available.
12/07/09 12:10:43 ANS1834S Unable to write to '/etc/security/adsm' for storing password
12/07/09 12:10:44 ANS1834S Unable to write to '/etc/security/adsm' for storing password
12/07/09 12:10:44 ANS0282E Password file is not available.
12/07/09 12:10:44 TID<1069070> ==> ANS0282E (RC168) Password file is not available.
12/07/09 12:17:35 ANS1025E Session rejected: Authentication failure
12/07/09 12:21:02 TID<848014> ==> ANU2512E Could not open license file: /usr/tivoli/tsm/client/oracle/bin64/agent.lic
|
这次是缺失了agent.loc 文件,还是要IBM去安装缺失的文件。要好好检查IBM同志的工作!!
===> ls -l /usr/tivoli/tsm/client/oracle/bin64/
total 3400
-rw-rw-rw- 1 oracle system 47 Dec 7 14:38 agent.lic
lrwxrwxrwx 1 root system 37 Dec 7 12:00 dsm.opt -> /usr/tivoli/tsm/client/ba/bin/dsm.opt
lrwxrwxrwx 1 root system 37 Dec 7 11:57 dsm.sys -> /usr/tivoli/tsm/client/ba/bin/dsm.sys
-rwxrwxrwx 1 root system 0 Nov 25 16:34 dsmerror.log
drwxr-xr-x 2 root system 256 Nov 25 15:11 en_US
-rwxr-xr-x 1 bin bin 914416 Jun 3 2009 libobk64.a
-rwxrwxrwx 1 bin bin 690 Dec 3 12:30 tdpo.opt
-rwxr-xr-x 1 bin bin 691 Jun 3 2009 tdpo.opt.smp64
-rwxr-xr-x 1 bin bin 802518 Jun 3 2009 tdpoconf
-rwxrwxrwx 1 root system 2254 Dec 7 17:58 tdpoerror.log
|
和其他相同的服务器上比对,不再缺少文件的情况下,去验证RMAN 和TSM,ORA-27211的错误再次出现。文件已经齐全,但是错误依旧,是怎么回事呢?查看了ORA-27211的错误帮助,感觉是RMAN 无法加载到SBT_LIBRARY的驱动。可能是环境变量设置的不对导致的这个问题。 ORA-27211的错误帮助
===> oerr ora 27211
27211, 00000, "Failed to load Media Management Library"
// *Cause: User-supplied SBT_LIBRARY or libobk.so could not be loaded. Call
// to dlopen for media library returned error. See Additional
// information for error code.
// *Action: Retry the command with proper media library. Or re-install
// Media management module for Oracle.
|
经过一番摸索,找到了解决问题的办法,问题解决:
1) 建立软连接: cd $ORACLE_HOME/lib/ ln -s /usr/tivoli/tsm/client/oracle/bin64/libobk64.a libobk.a
2)检查LIBPATH 和LD_LIBRARY_PATH 环境变量,$ORACLE_HOME/lib 排在/usr/lib 前;
3) 确定 没有设置环境变量SBT_LIBRARY ;
4) 如果还是无效,可能需要重启INSTANCE以释放加载到内存中的环境变量 LIBPATH
-THE END-