2016-04-15 10 views
1

Ich bin eine Neuinstallation von Oracle 12c auf Solaris 10 und ich kann eine Verbindung mit der CDB mit Kröte ganz gut, bitte sagen Sie mir, wie kann ich jetzt eine Verbindung mit der PDB-Datenbank mit dem Namen PDBORCL wie in der Anleitung erwähnt: https://oracle-base.com/articles/12c/multitenant-connecting-to-cdb-and-pdb-12cr1Wie verbinde ich mich mit PDB in Oracle 12c

im Folgenden sind die Inhalte meiner Datei tnsnames.ora:

# tnsnames.ora Network Configuration File: /bkofa/oracle/app/oracle 

/product/12.1.0/dbhome_1/network/admin/tnsnames.ora 
# Generated by Oracle configuration tools. 

ORCL12 = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = afxortsts)(PORT = 1523)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = orcl12) 
    ) 
) 
pdbORCL = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = afxortsts)(PORT = 1523)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = pdborcl) 
    ) 
) 

Hier werden die Inhalte meiner listener.ora Datei:

# listener.ora Network Configuration File: /bkofa/oracle/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora 
# Generated by Oracle configuration tools. 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = afxortsts)(PORT = 1523)) 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) 
    ) 
) 

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (GLOBAL_DBNAME = orcl12) 
     (SID_NAME = orcl12) 
    ) 
    (SID_DESC = 
     (GLOBAL_DBNAME = pdborcl)  
     (SID_NAME = pdborcl) 
    ) 
) 

Dies sind die Behälter von der Art und Weise:

SELECT name, pdb  
FROM v$services  
ORDER BY name;  

NAME    PDB  

SYS$BACKGROUND CDB$ROOT  
SYS$USERS   CDB$ROOT  
orcl12   CDB$ROOT  
orcl12XDB   CDB$ROOT  
pdborcl   PDBORCL  

noch, wenn ich versuche zu PDB mit einer beliebigen Kombination von Befehlen zu verbinden dies ist, was ich bekommen:

bash-3.2$ lsnrctl status 

LSNRCTL for Solaris: Version 12.1.0.2.0 - Production on 13-APR-2016 15:42:28 

Copyright (c) 1991, 2014, Oracle. All rights reserved. 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=afxortsts)(PORT=1523))) 
STATUS of the LISTENER 
------------------------ 
Alias      LISTENER 
Version     TNSLSNR for Solaris: Version 12.1.0.2.0 - Production 
Start Date    12-APR-2016 13:56:56 
Uptime     1 days 1 hr. 45 min. 36 sec 
Trace Level    off 
Security     ON: Local OS Authentication 
SNMP      OFF 
Listener Parameter File /bkofa/oracle/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora 
Listener Log File   /bkofa/oracle/app/oracle/diag/tnslsnr/afxortsts/listener/alert/log.xml 
Listening Endpoints Summary... 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=afxortsts)(PORT=1523))) 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) 
Services Summary... 
Service "orcl12" has 1 instance(s). 
    Instance "orcl12", status UNKNOWN, has 1 handler(s) for this service... 
Service "pdborcl" has 1 instance(s). 
    Instance "pdborcl", status UNKNOWN, has 1 handler(s) for this service... 
The command completed successfully 
bash-3.2$ sqlplus '/ as sysdba' 

SQL*Plus: Release 12.1.0.2.0 Production on Wed Apr 13 15:42:44 2016 

Copyright (c) 1982, 2014, Oracle. All rights reserved. 


Connected to: 
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production 
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options 

SQL> connect sys/[email protected]:1523/pdborcl as sysdba 
ERROR: 
ORA-01017: invalid username/password; logon denied 


Warning: You are no longer connected to ORACLE. 
SQL> connect [email protected] 
Enter password: 
ERROR: 
ORA-01034: ORACLE not available 
ORA-27101: shared memory realm does not exist 
SVR4 Error: 2: No such file or directory 
Additional information: 2581 
Additional information: -2057892281 
Process ID: 0 
Session ID: 0 Serial number: 0 


SQL> connect [email protected]:1523/pdborcl as sysdba 
ERROR: 
ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA 


SQL> 

Oh, ich sollte dies deutlich machen, dass ich verwende Port 1523, weil auf dem System, das diesen Port verwendet, bereits eine andere ältere Oracle 10g-Instanz läuft, so dass ich einen Konflikt damit vermeiden wollte.

+0

Ich habe das gleiche Problem, haben Sie es lösen? –

Antwort

0

Below meine Config, die funktioniert:

listener.ora:

LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = Hostname) (PORT = 1525)) (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC1525)) ) )

tnsnames.ora:

LISTENER_CATCDB = (ADDRESS = (PROTOCOL = TCP) (HOST = Host-Name) (PORT = 1526))

# CDB

CATCDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = Hostname) (PORT = 1526)) (CONNECT_DATA = (SERVER = dedicated) (SERVICE_NAME = catcdb) ) )

# HVE

catdb = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = Host-Name) (PORT = 1526)) (CONNECT_DATA = (SERVER = dedicated) (SERVICE_NAME = catdb) ) )

+0

Funktioniert nicht für mich. glaube, du hast SIDs dynamisch zum Listener hinzugefügt. –

+0

Wahr. Mein Orakelparameter local_listener = LISTENER_CATCDB – Vince

0

Sie sollten die Dienste nicht im SID_LIST_LISTENER deklarieren. Vor allem der pdborcl, der keine Instanz, sondern ein Service innerhalb der Instanz ist. Entfernen Sie diesen Teil:

(SID_DESC = 
    (GLOBAL_DBNAME = pdborcl)  
    (SID_NAME = pdborcl) 
) 

Die Instanz sollte sich beim Listener registrieren.Wenn nicht, sollten Sie, wenn mit dem CDB verbunden:

alter system set local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=afxortsts)(PORT=1523))) '; 
alter system register; 
Verwandte Themen