rman備份密碼報錯-轉義
阿新 • • 發佈:2018-02-14
message could code 關註 recover iat dbid 備份 執行 同事備份遇到了一個報錯,提示用戶密碼拒絕。經過確認用戶和密碼都沒有問題,那可能是什麽問題呢!
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>$sh rman.sh Recovery Manager: Release 11.2.0.4.0 - Production on Tue Feb 13 22:12:56 2018 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1483481154) RMAN> 2> 3> using target database control file instead of recovery catalog RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-12001: could not open channel t1 RMAN-10008: could not create channel context RMAN-10003: unable to connect to target database ORA-01017: invalid username/password; logon denied RMAN>
2、部分腳本內容
<roidb01:orcl:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin>$vi rman.sh
$ORACLE_HOME/bin/rman target / <<EOF
run{
allocate channel t1 device type disk connect ‘sys/xxxx$2017_sys@orcl‘;
#發現這個密碼裏有特殊符號$
}
exit
EOF
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>$cat rman.sh $ORACLE_HOME/bin/rman target / <<EOF run{ allocate channel t1 device type disk connect ‘sys/xxxx\$2017_sys@orcl‘; } exit EOF
shell 腳本中特殊符號需要使用\轉義處理一下。
再次執行
<roidb01:orcl:/u01/app/oracle/product/11.2.0/dbhome_1/network/admin>$sh rman.sh Recovery Manager: Release 11.2.0.4.0 - Production on Tue Feb 13 22:13:20 2018 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1483481154) RMAN> 2> 3> using target database control file instead of recovery catalog allocated channel: t1 channel t1: SID=46 device type=DISK released channel: t1 RMAN>
小結:
當我們在shell腳本裏執行相關命令,一定要關註特殊符號的轉義問題。
rman備份密碼報錯-轉義