¿Cómo se conecta DBCA a una base de datos?
El asistente de DBCA se inicia a través de una conexión sqlplus que trabaja en segundo plano a través del protocolo BEQ.
Si realizamos una traza de esta sesión podemos algo parecido a lo siguiente:
[25-JUL-2012 14:36:33:578] niotns: Calling address:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle)(ARGV0=oracletest)
(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')))(CONNECT_DATA=(SID=test)
(CID=(PROGRAM=D:\Oracle\RDBMS102\bin\sqlplus.exe)(HOST=test-lap)(USER=test))))
[25-JUL-2012 14:36:33:578] nsgettrans_bystring: entry
[25-JUL-2012 14:36:33:578] nsgettrans_bystring: exit
[25-JUL-2012 14:36:33:578] nscall: entry
[25-JUL-2012 14:36:33:578] nsmal: entry
[25-JUL-2012 14:36:33:578] nsmal: 212 bytes at 0x14ed130
[25-JUL-2012 14:36:33:578] nsmal: normal exit
[25-JUL-2012 14:36:33:578] nscall: connecting...
[25-JUL-2012 14:36:33:578] nladini: entry
[25-JUL-2012 14:36:33:578] nladini: exit
[25-JUL-2012 14:36:33:578] nladget: entry
[25-JUL-2012 14:36:33:578] nladget: exit
[25-JUL-2012 14:36:33:578] nsc2addr: entry
[25-JUL-2012 14:36:33:578] nsc2addr: (DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle)
(ARGV0=oracletest)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))
(CONNECT_DATA=(SID=test)(CID=(PROGRAM=D:\Oracle\RDBMS102\bin\sqlplus.exe)(HOST=test-lap)(USER=test))))
[25-JUL-2012 14:36:33:593] nlpcaini: entry
[25-JUL-2012 14:36:33:593] nlpcaini: prg = oracle
[25-JUL-2012 14:36:33:593] nlpcaini: arg[0] = oracletest
[25-JUL-2012 14:36:33:593] nlpcaini: arg[1] = (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
[25-JUL-2012 14:36:33:593] nlpcaini: env[0] = ORACLE_SID=test
[25-JUL-2012 14:36:33:593] nlpcaini: exit
Como podemos observar la conexión que realiza DBCA no utiliza el listener de oracle, es una conexión local.
Esto significa que cuando creamos una base de datos podemos tener el listener parado y seguirá funcionando. Visto esto también tenemos que tener en cuenta que cuando lanzamos el asistente de DBCA tenemos que lanzarlo en una máquina donde esté la base de datos que vayamos a administrar.
En el caso de Oracle RAC el asistente de DBCA se lanzará en el nodo principal.