Configurando el entorno de RedOracle Database 11 G Administration I. Cap 6 Oracle Net es la tecnología de arquitectura cliente-servidor que permite el establecimiento de sesiones hacia la instancia de la base de datos. Un usuario interactua con un Proceso de Usuario. Un proceso de servidor es un proceso que corre en el servidor de base de datos, y ejecuta las SQL que recibe. Ejecución de SQL en server process Parse Se analiza la sentencia que sera ejecutada Se sustituyen las variables por sus valores Se ejecuta la base de datos Se devuelven los resultados al user process Bind Execute Fetch Oracle Net es el responsable de: Transmitir el SQL desde el user process hacia el proceso de servidor Transmitir los datos de respuesta desde el server process hacia el user process y soporta como protocolos de red a: TCP TCP seguro Windows Named Pipes Socket Direct Protocol (SDP) Como DBA usted no necesita conocer detalles sobre el protocolo. . Oracle Ne es un protocolo de capa de aplicación. solo debe configurarlo y utilizarlo. el cual es provisto por el sistema operativo Al . CONNECT @orcl scott/tiger@orcl11g indica que se usara la cadena de conexión ORCL conectar con una instancia local se usa el protocolo ICP. . . . Resolución de Nombre Para conectarse se utiliza la cadena @orcl Entonces debe resolverse lo siguiente: El protocolo que se va a usar La dirección Ip del Listener El nombre de la instancia . Proceso de servidor El listener corre en el servidor. y utiliza uno o mas protocolos para monitorear uno o mas puertos y atender asi las peticiones. Con TCP cada proceso de servidor lanzado por un listener. . utiliza un numero de puerto especifico. ora provee 3 herramientas graficas para administrar el listener: Oracle Enterprice manager Net manager Net Configuration Assistant .Creando un Listener El listener se define en el archivo: ORACLE_HOME/network/admin/listener. . ora # Generated by Oracle configuration tools.dll") ) (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\app\Oracle\product\11.2.0\dbhome_1) ) (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\app\Oracle\product\11.ora Network Configuration File: C:\app\Oracle\product\11.0\dbhome_1\bin\oraclr11.2.dll") ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = WINServerING)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) ADR_BASE_LISTENER = C:\app\Oracle .0\dbhome_1\bin\oraclr11.2.# listener.2.0\dbhome_1) (SID_NAME = ORCL) ) (SID_DESC = (PROGRAM = extproc) (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\app\Oracle\product\11.2.0\dbhome_1\network\admin\listener.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Oracle\product\11.2.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Oracle\product\11.2. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = C:\app\Oracle\product\11. . Registrando la Base de datos Existen dos métodos para registrar una instancia con una base de datos. Static Dynamic . Registro Statico Basta con agregar la entrada al archivo Listener.2.0\dbhome_1) (SID_NAME = ORCL) ) ) .ora SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (ORACLE_HOME = C:\app\Oracle\product\11. Registro Dinamico Es el metodo preferido Un parametro de inicializacion llamado Local_Listener que indica a la instancia la direccion de red para buscar el LISTENER El nombre de la instancia y los nombres de los servicios estan en los parametros: Service_name Instance_name . Alter system set local_listener= ‘(address=(pro=tcp)(host=127. Alter system register.0.0. .1)(port= 1522))’. Alter system set local_listener=list2. directory naming y external naming. .Resolución de nombres Para establecer una sesion entre un proceso de usuario y una instancia. local naming. la cadena resuelve la direccion del listener y el nombre del servicio Oracle brinda 4 metodos de resolucion: Easy connect. se utiliza una cadena. Pero esta limitado solo a TCP. y no soporta caracteristicas avanzadas como balanceo de carga. habilitado por defecto Esta .Easy Connect Introducido con 10g muy fácil y no requiere configuración. edu.sv:1522/orcl Con easyconnect: SQL> connect scott/[email protected] Funcionara si el listener escucha en el puerto 1521 y el nombre del servicio registrado en el listener se llama ues. SQL> connect scott/[email protected] . edu. Sqlplus system/oracle@ocp11g a: Equivale Sqlplus system/[email protected]:1521/ocp11g Para probar la cadena de conexión ocp11g puede utilizar la utilidad TNSPING C:/> tnsping ocp11g . Local Naming.ora en todos los clientes. servicio) El archivo local de alias se denomina: TNSNAMES. pero puede ser tedioso mantener tantos archivos Tnsnames. el cual redirecciona a una direccion de red completa (protocolo. . direccion. Nombres locales El usuario genera un alias.ORA Soporta todos los protocolos. puerto. ora ocp11g = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = jwlnx1.za)(PORT = 1521)) ) (CONNECT_DATA = (sid = testdb) ) ) .bplc.co.co.bplc.za)(PORT= 1522)) ) (CONNECT_DATA = (service_name = ocp11g) ) ) test = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = serv2.Tnsnames. Directoy Naming y External Naming Directorio de Nombres requiere de LDAP (lightweight Directory Protocol) en emplear nombres de alias para toda la red. los cuales sean centralizados por LDAP Consiste . detener.LSNRCTL Es una utilidad para iniciar. y comente el resultado de la instrucción lsnrctl status LIST2 . observar y trabajar con los LISTENER lsnrctl help Ejecute: Observe la siguiente figura. . direcciones. . Brinda configuracion que aplican a todas las conexiones Service Naming configura del lado del cliente los nombres para resolucion. configura los listener de la base de datos. Profile. los servicios. tnsname.ora Listener.Net manager Herramienta que permite configurar el listener. etc. . sv:1521/ocp11g Para probar la cadena de conexión ocp11g puede utilizar la utilidad TNSPING C:/> tnsping ocp11g .edu. Sqlplus system/oracle@ocp11g a: Equivale Sqlplus system/oracle@ues. ora. es usado por los proceso de usuario para localizar el listener Sqlnet.Archivos criticos para oracle Net Listener. Se almacenan en Oracle_Home/network/admin . (opcional) contiene configuraciones que aplican a todas las conexiones.ora Tnsnames.ora Esta del lado del servidor y define los listener Esta del lado del cliente y es usado para la resolucion de nombres. La configuracion de la variable TNSADMIN es vital pues ella apunta al conjunto de archivos que configuran el oracle Net en los Home Directorys windows se almacena en una entrada del registro de windows. en linux en la carpeta .profile En . database link prodscott connect to scott identified by tiger using ‘prod’. y acceder a los datos con la misma transaccion.Database Link Herramienta para conectarse a varios servidores oracle. Create ‘prod’ es la cadena para conexión Select * from emp@prodscott. Luego se hará uso del link para acceder a la tabla de la base de datos remota como si estuviera en la local . Realice el ejercicio 6.1 pagina 216. para configurar un nuevo listener .ejercicios Muestre los nombres y apellidos de todos los empleados (HR local) juntos con los nombres y apellidos de todos los CLIENTES (customers del esquema OE de una base remota) Necesitara 2 equipos conectados en red entre si para poder realizar este ejercicio. Esta es una arquitectura para dar tratamiento a pocas conexiones. .Oracle Shared Server Architecture Arquitectura Dedicada: El listener crea un proceso (hilo en windows) para tratar cada conexión de un cliente. aislando asi al cliente y sus transacciones. El rendimiento puede ser degradado si existe un gran numero de conexiones concurrentes. Arquitectura de servidor compartido Es transparente para los clientes que se conectan. Se crean procesos adicionales en la instancia denominados: Dispatchers Shared Servers Se utilizan colas para procesar las consultas SQL y tambien para sus resultados . Call center . . el user process comparte dispatcher con otros procesos de usuario. Los server process monitorean la cola. Al enviar una instrucción SQL. para procesar las consultas conforme llegan a la cola . el listener lo asigna a los dispatches. Cuando el user process contacta al listener. esta se envia al dispatcher el cual la coloca en la cola (common queue). Un user process tendra la sensacion que habla con un server process. Los dispatcher monitorean la response queue. para enviar los resultados a los process user . Una vez que el server process procesa la consulta tomada de la cola. coloca los resultados en response queue. Las sesiones se almacenan en memoria SGA en un area denominada User Global Area ubicada en el LARGE POOL . Dispatchers: indica el numero de dispatchers Max_dispatchers Shared_servers Max_shared_servers Alter system set dispatchers=‘(dispatchers=2) (protocol=tcp)’ . Alter system set shared_servers=20. . en los parametros de inicializacion. Se configura a nivel de instancia. Se recomienda usar arquitectura compartida cuando se tengan mas de mil conexiones concurrentes.