您好,登錄后才能下訂單哦!
alter session set container = PDBORCL;
然后sqlplus登錄就可以查到scott用戶了,但是我們日常使用肯定是plsql用的比較多,plsql登錄會報錯:
ORA-12514: TNS: 監聽程序當前無法識別連接描述符中請求的服務
3.又按照網上說的方法謝了一個觸發器,讓pdb自動開啟:
CREATE OR REPLACE TRIGGER open_all_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'alter pluggable database all open'; END open_all_pdbs;登錄還是報12514,好吧,先來看看這個報錯能不能解決。
于是cmd窗口查看監聽狀態,lsnrctl status
結果是果然沒有pdborcl這個監聽,怎么辦?繼續找答案,最后才發現原來我在安裝數據庫的時候,全局數據庫名使用的的是數據庫名+域名的形式,比如我的是orcl.microdone.cn, 但是我添加的pdborcl卻使用的是pdborcl,于是也改成pdborcl.microdone.cn,最后用plsql登錄,perfect,完美登錄,查詢scott用戶,查到了!!
接著我把觸發器也刪了,登錄pdb也是沒有問題的,說明直接原因還是tns配置的問題。
總結:我是在 http://www.itpub.net/thread-1847024-1-1.html 這篇文章中得到啟發的,個人認為最終的原因還是在建實例的時候,CDB的global db name使用的是db name+domain的形式,而PDB使用的global db name是db name,導致在添加tns配置的時候也是只使用了db name,應該要加上domain。
但是文章中說的要配置listener.ora文件,我沒有配置,還是原有的配置,這里到底需不需要配置,不是太明白,往后再研究。
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\app\oracle12c\product\12.1.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle12c\product\12.1.0\dbhome_1\bin\oraclr12.dll") ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。