日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
oracle12c解決plsql登錄CDB和PDB問題
今天閑來無事,在win10上安裝了oracle12c,想著平時可以操作操作,在安裝過程中有一個創(chuàng)建為容器數(shù)據(jù)庫的勾選,雖然不明白是什么意思,我還是勾選了。

oracle12c解決plsql登錄CDB和PDB問題

后來在使用plsql登錄的時候,發(fā)現(xiàn)沒有scott用戶,what?難道是12c取消了scott用戶嗎?網(wǎng)上轉了一圈發(fā)現(xiàn),原來12c引入了CDB和PDB的概念,具體內容可以自行去了解一下,這里就再詳解了?,F(xiàn)在的問題是,我正常連接的數(shù)據(jù)庫是CDB,但是scott用戶又是在PDB下的,我也不想去在CDB 下重新新建scott用戶和相關表,所以試著去了解了下怎么用plsql直接登錄到PDB,網(wǎng)上的方法基本是在sqlplus下切換CDB與PDB,我試了網(wǎng)上的方法:
1.在tns文件里添加
PDBORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdborcl.microdone.cn)
    )
  )

2.去sqlplus 執(zhí)行
alter session set container = PDBORCL;
然后sqlplus登錄就可以查到scott用戶了,但是我們日常使用肯定是plsql用的比較多,plsql登錄會報錯:
ORA-12514: TNS: 監(jiān)聽程序當前無法識別連接描述符中請求的服務
3.又按照網(wǎng)上說的方法謝了一個觸發(fā)器,讓pdb自動開啟:
CREATE OR REPLACE TRIGGER open_all_pdbs
   AFTER STARTUPON DATABASE BEGIN EXECUTE IMMEDIATE 'alter pluggable database all open';END open_all_pdbs;
登錄還是報12514,好吧,先來看看這個報錯能不能解決。
于是cmd窗口查看監(jiān)聽狀態(tài),lsnrctl status
結果是果然沒有pdborcl這個監(jiān)聽,怎么辦?繼續(xù)找答案,最后才發(fā)現(xiàn)原來我在安裝數(shù)據(jù)庫的時候,全局數(shù)據(jù)庫名使用的的是數(shù)據(jù)庫名+域名的形式,比如我的是orcl.microdone.cn, 但是我添加的pdborcl卻使用的是pdborcl,于是也改成pdborcl.microdone.cn,最后用plsql登錄,perfect,完美登錄,查詢scott用戶,查到了?。?/pre>
oracle12c解決plsql登錄CDB和PDB問題 
接著我把觸發(fā)器也刪了,登錄pdb也是沒有問題的,說明直接原因還是tns配置的問題。

總結:我是在 http://www.itpub.net/thread-1847024-1-1.html 這篇文章中得到啟發(fā)的,個人認為最終的原因還是在建實例的時候,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))
    )
  )



文章名稱:oracle12c解決plsql登錄CDB和PDB問題
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/jgjhji.html