oracle 12c如何配置sql developer?
我正在嘗試將 sql developer 連接到全新安裝的 oracle:
我可以通過 sqlplus 連接到 sys 使用者 當我選擇連接類型“Local\Bequeath”時,我可以通過 sql developer 連接到 sys 使用者。但我猜它沒有連接到 PDB,只是連接到容器。
我使用以下命令創建了名為 demo 的使用者:
alter session set container=pdborcl; create user demo identified by password QUOTA unlimited on users account unlock;
我正在嘗試使用使用者名和密碼連接到數據庫,就像我在 oracle 11g 中所做的那樣。To user:
sys as sysdba
, 和新創建的使用者demo
。我不關心 pdb,但據我所知,oracle 12c 中沒有其他選項……
我嘗試在 tnsnames.ora 中設置名為 PDBORCL 的條目,我也嘗試使用服務名稱 PDBORCL。正如我在網際網路上的一些手冊中看到的那樣,但它對我不起作用。
我收到以下錯誤:
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
同樣,我使用了預設安裝的 oracle 12c,除了設置密碼和選擇伺服器類型之外,我並沒有太大變化。
我正在尋找的是一個簡單的“待辦事項列表”,用於在 sql 開發人員中配置連接,甚至從遠端機器連接到 oracle 12c DB。
順便說一句:(如果有的話)
- 我有 2 個版本的 sql developer:4.1.2.20,以及來自安裝的原始版本:3.2.20.10。
- 我目前正在使用 Windows Server 2008 作業系統。
謝謝,
編輯:
詢問:
SQL> select name, open_mode from v$pdbs where name='PDBORCL';
結果:
NAME OPEN_MODE -------- ---------- PDBORCL READ WRITE
命令行:
lsnrctl service
結果:
LSNRCTL for 64-bit Windows: Version 12.1.0.2.0 - Production on 30-MAY-2016 13:26:20 Copyright (c) 1991, 2014, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=PROTOCOL=TCP)(HOST=192.168.19.58)(PORT=1521))) Services Summary... Service "CLRExtProc" has 1 instance(s). Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service... Handler(s): "DEDICATED" established:0 refused:0 LOCAL SERVER The command completed successfully
我嘗試使用服務名稱 CLRExtProc。現在我有以下錯誤:
Status: Failure -Test failed: The Network Adapter could not established the connection
listener.ora 文件:
# listener.ora Network Configuration File: C:\app\Administrator\product\12.1.0\dbhome_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\app\Administrator\product\12.1.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\12.1.0\dbhome_1\bin\oraclr12.dll") ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.19.58)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
tnsnames.ora
# tnsnames.ora Network Configuration File: C:\app\Administrator\product\12.1.0\dbhome_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.19.58)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) #this is my addition I guess it not written properly PDBORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.19.58)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdborcl) ) )
編輯:
命令:lsnrctl 狀態監聽器
LSNRCTL for 64-bit Windows: Version 12.1.0.2.0 - Production on 30-MAY-2016 14:22 :08 Copyright (c) 1991, 2014, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.19.58)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for 64-bit Windows: Version 12.1.0.2.0 - Produ ction Start Date 29-MAY-2016 17:33:36 Uptime 0 days 20 hr. 48 min. 36 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File C:\app\Administrator\product\12.1.0\dbhome_1\network\admin\listener.ora Listener Log File C:\app\Administrator\diag\tnslsnr\DevOraRX\listener\alert\log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.19.58)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))) Services Summary... Service "CLRExtProc" has 1 instance(s). Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully
編輯:完整解決方案
這是它的工作原理:
- 安裝 oracle 12c 的新副本(我進行了桌面安裝)。
- 的變化
listener.ora
:
- 在 SID_LIST_LISTENER 我添加了以下部分:
(SID_DESC =(SID_NAME = pdborcl)(ORACLE_HOME = C:\app\oracle\product\12.1.0\dbhome_1))
- 在 LISTENER 而不是
HOST=127.0.0.1
,我將其設置為HOST=0.0.0.0
- 重啟oracle監聽服務。
現在在 sql 開發人員中:
以 sys 使用者身份登錄:
Username: sys Password: **** Connection type: Basic, Role: SYSDBA Hostname: localhost Port: 1521 SID: orcl
現在檢查 pdb 是否已啟動:
SQL> select name, open_mode from v$pdbs where name='PDBORCL';
如果它處於掛載模式,那麼,
SQL> alter pluggable database pdborcl open;
創建使用者+授予權限:
alter session set container=pdborcl; create user demo identified by password QUOTA unlimited on users account unlock; grant create session to demo; grant create table to demo;
在 sql developer 中以展示使用者身份連接:
Username: demo Password: **** Connection type: Basic, Role: default Hostname: localhost Port: 1521 Service name: pdborcl
而且,再次感謝 JSapkota。
現在我正在嘗試找出 pdbs 的 sqlplus 和即時客戶端連接字元串…
首先檢查您的可插拔數據庫是否打開。
SQL> select name, open_mode from v$pdbs where name='PDBORCL';
如果它處於掛載模式,那麼,
SQL> alter pluggable database pdborcl open;
現在在 SQL Developer 上創建新連接,
連接名稱: demo-pdborcl
使用者名: demo
密碼: *****
**連接類型:**基本(如果您希望使用 TNS 連接類型,您必須在客戶端創建 TNS 網路別名。)
主機名: ip/dns
埠: 1521
**SID:(**如果您使用像“ORCL”這樣的 SID,您將連接到根容器,因此使用服務名稱而不是 SID)
**服務名稱:(**您可以通過觸發獲取 pdb 的服務名稱
$ lsnrctl serivce
,也可以使用文件中的USE_SID_AS_SERVICE_listener
參數$ORACLE_HOME/network/admin/listner.ora
asUSE_SID_AS_SERVICE_listener=on
並且任何給定的 SID 都將被視為服務名稱。一些有用的連結-