Estou tentando conectar o desenvolvedor sql a uma nova instalação do oracle:
Posso me conectar ao usuário sys via sqlplus Posso me conectar ao usuário sys via desenvolvedor sql quando seleciono o tipo de conexão "Local\Bequeath". Mas acho que não foi conectado ao PDB, apenas ao contêiner.
Eu criei um usuário chamado demo com o seguinte comando:
alter session set container=pdborcl;
create user demo identified by password QUOTA unlimited on users account unlock;
Estou tentando conectar ao BD com usuário e senha como fiz no oracle 11g. Para o usuário: sys as sysdba
, E para o novo usuário criado demo
.
Não me importo com pdb, mas pelo que entendi não existe outra opção no oracle 12c...
Tentei definir a entrada chamada PDBORCL no tnsnames.ora, também tentei usar o nome do serviço PDBORCL. como vi em algum manual na internet, mas não funcionou para mim.
Estou recebendo os seguintes erros:
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
Novamente, usei uma instalação padrão do oracle 12c, exceto definir senhas e selecionar o tipo de servidor, não mudei muito.
O que procuro é uma "lista de tarefas" simples para configurar conexão no desenvolvedor sql, para conectar, mesmo de uma máquina remota, ao oracle 12c DB.
BTW: (se for o caso)
Tenho 2 versões do sql developer: 4.1.2.20, e a original da instalação: 3.2.20.10.
Atualmente, estou trabalhando no sistema operacional Windows Server 2008.
Obrigado,
EDITAR:
Consulta:
SQL> select name, open_mode from v$pdbs where name='PDBORCL';
Resultado:
NAME OPEN_MODE
-------- ----------
PDBORCL READ WRITE
Linha de comando:
lsnrctl service
Resultado:
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
Eu tentei usar o nome de serviço CLRExtProc. Agora estou com o seguinte erro:
Status: Failure -Test failed: The Network Adapter could not established the connection
arquivo 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)
)
)
EDITAR:
comando: lsnrctl STATUS LISTENER
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
EDIT: Solução completa
É assim que funciona:
- Instale uma nova cópia do oracle 12c (fiz uma instalação na área de trabalho).
- Mudanças no
listener.ora
:- no SID_LIST_LISTENER adicionei a seguinte seção:
(SID_DESC =(SID_NAME = pdborcl)(ORACLE_HOME = C:\app\oracle\product\12.1.0\dbhome_1))
- no LISTENER em vez de
HOST=127.0.0.1
, eu configurei paraHOST=0.0.0.0
- no SID_LIST_LISTENER adicionei a seguinte seção:
- reinicie o serviço de escuta do oracle.
agora no desenvolvedor sql:
faça o login como usuário sys:
Username: sys
Password: ****
Connection type: Basic, Role: SYSDBA
Hostname: localhost
Port: 1521
SID: orcl
Agora verifique se o pdb está ativo:
SQL> select name, open_mode from v$pdbs where name='PDBORCL';
Se estiver no modo montado,
SQL> alter pluggable database pdborcl open;
Crie o usuário + conceda permissões:
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;
Conecte-se como usuário de demonstração no desenvolvedor sql:
Username: demo
Password: ****
Connection type: Basic, Role: default
Hostname: localhost
Port: 1521
Service name: pdborcl
E, novamente, obrigado a JSapkota.
Agora estou tentando descobrir as strings de conexão do sqlplus e do cliente instantâneo para o pdbs ...
Em primeiro lugar, verifique se o seu banco de dados conectável está aberto ou não.
Se estiver no modo montado,
Agora no SQL Developer Crie uma nova conexão como,
Nome da conexão: demo-pdborcl
Nome de usuário: demonstração
Senha: *****
Tipo de conexão: Básico (se você deseja usar o tipo de conexão TNS, você deve criar um alias de rede TNS no lado do cliente.)
Nome do host: ip/dns
Porto: 1521
SID: (Se você usar o SID como 'ORCL', você será conectado ao contêiner raiz, portanto, use o nome do serviço em vez do SID)
Nome do serviço: (você pode obter o nome do serviço do seu pdb disparando
$ lsnrctl serivce
, também pode usar oUSE_SID_AS_SERVICE_listener
parâmetro no$ORACLE_HOME/network/admin/listner.ora
arquivo comoUSE_SID_AS_SERVICE_listener=on
e qualquer SID fornecido será tratado como nome do serviço.Alguns links úteis-