搭建DG過程由於沒有口令檔案而導致rman連不上主庫

賀子_DBA時代發表於2015-07-22
發現問題:今天給開發庫搭建一個standby資料庫,發現主庫$ORACLE_HOME/dbs目錄下沒有口令檔案,然後就跳過把主庫口令檔案傳到standby庫這一步,直到執行下面這步驟,才報錯,如下所示:
[oracle@standby104 ~]$ rman target sys/manager@NEWZQ auxiliary sys/manager@151standby
Recovery Manager: Release 11.2.0.1.0 - Production on Wed Jul 22 16:51:03 2015

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04005: error from target database: 
ORA-01031: insufficient privileges
判斷問題:於是認真查了查oracle口令檔案的作用:簡言概之,就是遠端以sysdba身份登陸時,才必須要透過口令檔案校驗,這時候如果沒有口令檔案,或者空靈檔案失效,就無法以sysdba身份遠端登陸。在資料庫未啟動之前登陸從而啟動資料庫,如果沒有口令檔案,在資料庫未啟動之前就只能透過作業系統認證.使用Rman,很多時候需要在nomount,mount等狀態對資料庫進行處理。所以通常要求sysdba許可權如果屬於本地DBA組,可以透過作業系統認證登陸,如果是遠端sysdba登陸,需要透過passwordfile認證。
這裡的語句 rman target sys/manager@NEWZQ       這裡就是要必須透過口令檔案校驗的(一般有@基本上就是可以理解為遠端登入)。區別於 rman target /   (透過os驗證的),   所以可以判斷出這個錯誤是由於沒有口令檔案導致。
解決問題:透過重建口令檔案。
[oracle@standby104 ~]$orapwd file='$ORACLE_HOME/dbs/orapw151standby'  password=manager  entries=5  force=y

●FILE引數指定口令檔案存放的全路徑及檔名。口令檔案的命名也應該遵循Oracle公司指定的規範:orapw+在例子中例項名是151standby。
●PASSWORD指定超級使用者SYS的密碼
●ENTRIES為整數,指定最多有多少使用者稱為超級使用者(SYSDBA)
●FORCE取值為“Y”或者“N”,指定是否強行覆蓋已經存在的口令檔案

重建之後,把口令檔案scp給standby庫,並且修改名字成對應的例項名。
重新執行命令:
[oracle@standby104 ~]$ rman target sys/manager@NEWZQ auxiliary sys/manager@151standby

Recovery Manager: Release 11.2.0.1.0 - Production on Wed Jul 22 17:58:32 2015

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: NEWZQDB (DBID=2315167463)
connected to auxiliary database: NEWZQDB (DBID=2315167463, not open)
成功!! 問題解決

總結:到現在 還是不明白,她為什麼沒有口令檔案(這個庫不是我搭建的),或許就是為了防止sysdba遠端登陸吧,其實還可以用引數:
remote_login_passwordfile = NONE ,此時停用口令檔案驗證,Oracle資料庫不允許遠端SYSDBA/SYSOPER身份登入,所以就無法遠端登陸資料庫,啟停庫了。sysdba和sysoper屬於system privilege,也稱為administrative privilege,擁有例如資料庫開啟關閉之類,system只是有dba許可權,所以她不能啟停庫。
 









來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-1745024/,如需轉載,請註明出處,否則將追究法律責任。

相關文章