Bagaimana menghubungkan ke PDB di Oracle 12c

Saya menjalankan instalasi baru Oracle 12c di Solaris 10 dan saya dapat terhubung ke CDB menggunakan toad, tolong beri tahu saya bagaimana sekarang saya bisa terhubung ke database PDB bernama PDBORCL seperti yang disebutkan dalam panduan: https://oracle-base.com/articles/12c/multitenant-connecting-to-cdb-and-pdb-12cr1

Berikut isi file tnsnames.ora saya:

# 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)
    )
  )

Berikut isi file pendengar.ora saya:

# 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)
    )
  )

Omong-omong, ini adalah wadahnya:

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    

Masih ketika saya mencoba menyambung ke PDB menggunakan kombinasi perintah apa pun, inilah yang saya dapatkan:

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 sys@pdborcl  
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, saya harus menjelaskan bahwa saya menggunakan port 1523 karena ada contoh lain dari Oracle 10g lama yang sudah berjalan pada sistem yang menggunakan port ini jadi saya ingin menghindari konflik apa pun dengan itu.


person Dashing Boy    schedule 15.04.2016    source sumber
comment
Saya memiliki masalah yang sama, apakah Anda menyelesaikannya?   -  person Sergio Sánchez Sánchez    schedule 17.09.2017


Jawaban (2)


Anda tidak boleh mendeklarasikan layanan di SID_LIST_LISTENER. Terutama pdborcl yang bukan sebuah instance melainkan layanan di dalam instance tersebut. Jadi hapus bagian ini:

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

Instance tersebut harus mendaftarkan dirinya sendiri ke pendengar. Jika belum selesai, sebaiknya saat terhubung ke CDB:

alter system set local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=afxortsts)(PORT=1523))) ';
alter system register;
person FranckPachot    schedule 24.10.2017

Di bawah konfigurasi saya yang berfungsi:

pendengar.ora:

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

tnsnames.ora:

LISTENER_CATCDB = (ADDRESS = (PROTOCOL = TCP)(HOST = nama host)(PORT = 1526))

#CDB

CATCDB = (DESKRIPSI = (ADDRESS = (PROTOCOL = TCP)(HOST = nama host)(PORT = 1526)) (CONNECT_DATA = (SERVER = BERDEDIKASI) (SERVICE_NAME = catcdb) ) )

#PDB

CATDB = (DESKRIPSI = (ADDRESS = (PROTOCOL = TCP)(HOST = nama host)(PORT = 1526)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = catdb) ) )

person Vince    schedule 15.04.2016
comment
Tidak bekerja untuk saya. yakin Anda telah menambahkan SID secara dinamis ke pendengar. - person Dashing Boy; 15.04.2016
comment
BENAR. parameter Oracle saya local_listener=LISTENER_CATCDB - person Vince; 15.04.2016