Oracle-12c

無法連接到 Oracle 12c 中的可插拔數據庫

  • November 9, 2017

我有 oracle 數據庫 Oracle Database 12c 企業版 12.2.0.1.0,我創建了一個名為 DEVDB 的可插拔數據庫以在 Web 應用程序開發中使用它,我使用數據庫配置助手創建它,在創建過程中我創建了一個使用者/密碼連接到該數據庫,然後我修改了文件tnsnames.ora添加以下內容:

DEVDB =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = devdb)
   )
 )

使用 DBeaver 或 SQL 開發人員,我可以成功連接到 PDB,如圖所示:

在此處輸入圖像描述

但是當我嘗試從 sqlplus 命令行嘗試連接到數據庫時:

sql> conn user/password@DEVDB

我收到以下錯誤消息:

ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified


Warning: You are no longer connected to ORACLE.

這是show pdbs命令結果:

  CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
        2 PDB$SEED                       READ ONLY  NO
        3 ORCLPDB                        READ WRITE NO
        4 DEVDB                          READ WRITE NO

我重新載入lsnrctl了很多次並再次嘗試,但我得到了同樣的錯誤。

我希望能夠從 sqlplus 命令行連接 PDB 並了解該錯誤的原因

請問有什麼幫助嗎??

可插拔數據庫 (PDB) 是否線上?

連接到附加 PDB 的容器數據庫。發出此 SQL 命令:show pdbs;這應該列出所有可插入數據庫(包括種子 PDB)以及它們所處的狀態。

您可以通過以下命令啟動 DevDB 數據庫:alter pluggable database DEVDB open;

如果可行並且數據庫打開並聯機,您可以通過以下方式告訴 Oracle “記住”此狀態: alter pluggable database DEVDB save state;

但是,如果數據庫沒有通過 alter…open 命令聯機,請檢查select * from PDB_PLUG_IN_VIOLATIONS;可能存在的問題。

從您的編輯中,我看到 PDB 已啟動且可用。嘗試從另一台電腦連接到 DEVDB?

當您連接到容器時,您可以通過以下方式將上下文切換到 PDBalter session set container = DEVDB;

在我的 Oracle 12 環境中,我沒有在伺服器的 TNSNames 文件(只是容器 DB)中明確列出 PDB。然後,在客戶端 PC 上,我在 TNSNAMES 文件中列出 PDB。

在伺服器上,我使用 ORACLE_SID 環境變數並且不使用@service,所以:Set ORACLE_SID=DEVDB然後sqlplus user/pwd (但那是在 Windows 環境中。)

引用自:https://dba.stackexchange.com/questions/190451