無法連接到 Oracle 12c 中的可插拔數據庫
我有 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?
當您連接到容器時,您可以通過以下方式將上下文切換到 PDB
alter session set container = DEVDB;
在我的 Oracle 12 環境中,我沒有在伺服器的 TNSNames 文件(只是容器 DB)中明確列出 PDB。然後,在客戶端 PC 上,我在 TNSNAMES 文件中列出 PDB。
在伺服器上,我使用 ORACLE_SID 環境變數並且不使用@service,所以:
Set ORACLE_SID=DEVDB
然後sqlplus user/pwd
(但那是在 Windows 環境中。)