小编给大家分享一下rman备份密码报错的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

同事备份遇到了一个报错,提示用户密码拒绝。经过确认用户和密码都没有问题,那可能是什么问题呢!

1、现象

<roidb01:orcl:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin>$<roidb01:orcl:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin>$shrman.shRecoveryManager:Release11.2.0.4.0-ProductiononTueFeb1322:12:562018Copyright(c)1982,2011,Oracleand/oritsaffiliates.Allrightsreserved.connectedtotargetdatabase:ORCL(DBID=1483481154)RMAN>2>3>usingtargetdatabasecontrolfileinsteadofrecoverycatalogRMAN-00571:===========================================================RMAN-00569:===============ERRORMESSAGESTACKFOLLOWS===============RMAN-00571:===========================================================RMAN-12001:couldnotopenchannelt1RMAN-10008:couldnotcreatechannelcontextRMAN-10003:unabletoconnecttotargetdatabaseORA-01017:invalidusername/password;logondeniedRMAN>

2、部分脚本内容

<roidb01:orcl:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin>$virman.sh$ORACLE_HOME/bin/rmantarget/<<EOFrun{allocatechannelt1devicetypediskconnect'sys/xxxx$2017_sys@orcl';#发现这个密码里有特殊符号$}exitEOF

3、解决方法

<roidb01:orcl:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin>$<roidb01:orcl:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin>$catrman.sh$ORACLE_HOME/bin/rmantarget/<<EOFrun{allocatechannelt1devicetypediskconnect'sys/xxxx\$2017_sys@orcl';}exitEOF

shell 脚本中特殊符号需要使用\转义处理一下。

再次执行

<roidb01:orcl:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin>$shrman.shRecoveryManager:Release11.2.0.4.0-ProductiononTueFeb1322:13:202018Copyright(c)1982,2011,Oracleand/oritsaffiliates.Allrightsreserved.connectedtotargetdatabase:ORCL(DBID=1483481154)RMAN>2>3>usingtargetdatabasecontrolfileinsteadofrecoverycatalogallocatedchannel:t1channelt1:SID=46devicetype=DISKreleasedchannel:t1RMAN>

当我们在shell脚本里执行相关命令,一定要关注特殊符号的转义问题。

以上是“rman备份密码报错的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!