Upload
alexander-calderon
View
6.128
Download
1
Tags:
Embed Size (px)
Citation preview
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
Bind Se sustituyen las variables por sus valores
Execute Se ejecuta la base de datos
Fetch Se devuelven los resultados al user
process
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
Oracle Ne es un protocolo de capa de aplicación, 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, solo debe configurarlo y utilizarlo.
CONNECT scott/tiger@orcl11g
@orcl indica que se usara la cadena de conexión ORCL
Al conectar con una instancia local se usa el protocolo ICP, el cual es provisto por el sistema operativo
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.
Creando un Listener El listener se define en el archivo:
ORACLE_HOME/network/admin/listener.ora
Oracle provee 3 herramientas graficas para administrar el listener: Enterprice manager Net manager Net Configuration Assistant
# listener.ora Network Configuration File: C:\app\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora# Generated by Oracle configuration tools.
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (ORACLE_HOME = C:\app\Oracle\product\11.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) ) (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\app\Oracle\product\11.2.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll") ) (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = C:\app\Oracle\product\11.2.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll") ) )
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = WINServerING)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
ADR_BASE_LISTENER = C:\app\Oracle
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.oraSID_LIST_LISTENER = (SID_LIST = (SID_DESC = (ORACLE_HOME = C:\app\Oracle\product\11.2.0\dbhome_1) (SID_NAME = ORCL) ))
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=list2; Alter system register;
Alter system set local_listener= ‘(address=(pro=tcp)(host=127.0.0.1)(port=1522))’;
Resolución de nombres Para establecer una sesion entre un
proceso de usuario y una instancia, se utiliza una cadena, la cadena resuelve la direccion del listener y el nombre del servicio
Oracle brinda 4 metodos de resolucion: Easy connect, local naming, directory
naming y external naming.
Easy Connect Introducido con 10g muy fácil y no
requiere configuración. Pero esta limitado solo a TCP, y no soporta caracteristicas avanzadas como balanceo de carga.
Esta habilitado por defecto
SQL> connect scott/[email protected]: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.edu.sv
Sqlplus system/oracle@ocp11g
Equivale a: Sqlplus
system/[email protected]:1521/ocp11g
Para probar la cadena de conexión ocp11g puede utilizar la utilidad TNSPING
C:/> tnsping ocp11g
Local Naming. Nombres locales El usuario genera un alias, el cual
redirecciona a una direccion de red completa (protocolo, direccion, puerto, servicio)
El archivo local de alias se denomina: TNSNAMES.ORA
Soporta todos los protocolos, pero puede ser tedioso mantener tantos archivos Tnsnames.ora en todos los clientes.
Tnsnames.oraocp11g = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = jwlnx1.bplc.co.za)(PORT= 1522)) ) (CONNECT_DATA = (service_name = ocp11g) ) ) test = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = serv2.bplc.co.za)(PORT = 1521)) ) (CONNECT_DATA = (sid = testdb) ) )
Directoy Naming y External Naming Directorio de Nombres requiere de LDAP
(lightweight Directory Protocol)
Consiste en emplear nombres de alias para toda la red, los cuales sean centralizados por LDAP
LSNRCTL Es una utilidad para iniciar, detener,
observar y trabajar con los LISTENER
Ejecute: lsnrctl help
Observe la siguiente figura, y comente el resultado de la instrucción lsnrctl status LIST2
Net manager
Herramienta que permite configurar el listener, los servicios, direcciones, etc.
Profile. Brinda configuracion que aplican a todas las conexiones
Service Naming configura del lado del cliente los nombres para resolucion, tnsname.ora
Listener, configura los listener de la base de datos.
Sqlplus system/oracle@ocp11g
Equivale a: Sqlplus
system/[email protected]:1521/ocp11g
Para probar la cadena de conexión ocp11g puede utilizar la utilidad TNSPING
C:/> tnsping ocp11g
Archivos criticos para oracle Net Listener.ora
Esta del lado del servidor y define los listener Tnsnames.ora
Esta del lado del cliente y es usado para la resolucion de nombres, es usado por los proceso de usuario para localizar el listener
Sqlnet.ora, (opcional) contiene configuraciones que aplican a todas las conexiones.
Se almacenan en Oracle_Home/network/admin
La configuracion de la variable TNSADMIN es vital pues ella apunta al conjunto de archivos que configuran el oracle Net en los Home Directorys
En windows se almacena en una entrada del registro de windows, en linux en la carpeta .profile
Database Link Herramienta para conectarse a varios
servidores oracle, y acceder a los datos con la misma transaccion.
Create database link prodscott connect to scott identified by tiger using ‘prod’; ‘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
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.
Realice el ejercicio 6.1 pagina 216, para configurar un nuevo listener
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.
Esta es una arquitectura para dar tratamiento a pocas conexiones.
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
Cuando el user process contacta al listener, el listener lo asigna a los dispatches,.
Un user process tendra la sensacion que habla con un server process, el user process comparte dispatcher con otros procesos de usuario.
Al enviar una instrucción SQL, esta se envia al dispatcher el cual la coloca en la cola (common queue).
Los server process monitorean la cola, para procesar las consultas conforme llegan a la cola
Una vez que el server process procesa la consulta tomada de la cola, coloca los resultados en response queue.
Los dispatcher monitorean la response queue, para enviar los resultados a los process user .
Las sesiones se almacenan en memoria SGA en un area denominada User Global Area ubicada en el LARGE POOL
Se configura a nivel de instancia, en los parametros de inicializacion. 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;
Se recomienda usar arquitectura compartida cuando se tengan mas de mil conexiones concurrentes.