Rman Can T Open Target

今天有人问我一个问题,“rman: can't open target”,不可能啊,oracle安装得好好地,跑半年了都没有问题。
http://www.eygle.com/archives/2008/01/rman_cant_open_target.html

在Linux上,安装完成之后,在测试RMAN时可能会遇到如下错误:
[oracle@smsdbrac1 oracle]$ rman target /
rman: can't open target

这是由于调用的是非Oracle的RMAN的缘故:
[oracle@smsdbrac1 oracle]$ which rman
/usr/X11R6/bin/rman

在X11R6下存在一个名为rman的命令:
[oracle@smsdbrac1 bin]$ ./rman -help
rman
[-f <ASCII|roff|TkMan|Tk|Sections|HTML|XML|MIME|LaTeX|LaTeX2e|RTF|pod>]
[-S(ource of man page passed in)] [-F(ormatted man page passed in)]
[-r <man reference printf string>] [-l <title printf string>]
[-V(olume) <colon-separated list>] [-U(RLs as hyperlinks)]
[-b (show subsections)] [-k(eep head/foot)]
[-n(ame of man page) <string>] [-s(ection) <string>]
[-p(aragraph mode toggle)] [-t(abstops spacing) <number>]
[-N(ormalize spacing, changebars)] [-y (zap hyphens toggle)]
[-K (declare that page has no breaks)]
[-d(iff) <file> (diff of old page source to incorporate)]
[-M(essage) <text> (included verbatim at end of Name section)]
[-R(ebus words for TkMan)] [-C (enable Tcl/Tk formatting)]
[-o (no op)] [-O <arg> (no op with arg)]
[-q(uiet—don't report warnings)] [-h(elp)] [-v(ersion)]
[<filename>]
修正这个问题,我们只需要在Oracle用户的环境变量下,将$ORACLE_HOME/bin放在PATH变量前就可以了:
export PATH=$ORACLE_HOME/bin:${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

重新登录使环境变量生效,现在Oracle能找到正确的rman了:
[oracle@smsdbrac1 oracle]$ su - oracle
Password:
[oracle@smsdbrac1 oracle]$ which rman
~/product/10.2.0/db/bin/rman