Previamente a la versión de base 8i, la información sobre la registración de instancias por parte del listener debía ser configurada explícitamente de forma manual en el archivo de configuración listener.ora . A partir de 8i las instancias pueden realizar esta registración de manera automática luego que la instancia levanta y gracias a la ayuda del proceso backgroud PMON el cual lo realiza contra el listener_default, siempre y cuando el parámetro de inicio local_listener no esté definido. Cuando nos referimos a listener default, hablamos del que lleva por nombre LISTENER y escucha en el puerto 1521.
El llamado Automatic Service Registration (ASR), como es de esperar, reduce la sobrecarga de tareas administrativas cuando contamos con una instalación de varias instancias o bases de datos.
Como dijimos antés, básicamente esta tarea de registración es realizada por el proceso PMON el cual le proporciona al listener información propia de la instancia como ser nombre, carga actual y máxima , nombre del servicio proporcionado por la base de datos, información sobre servidores dedicados y/o dispatcher, etc. El PMON realiza esta tarea de envío de información al listener cada 60 segundos y si eventualmente por algún problema que lo afecte no lo hiciera, la información no podría ser registrada contra el listener de manera periódica. Entonces podremos en este caso realizar la resgistración de forma manual utilizando el comando ALTER SYSTEM REGISTER el cual fuerza la registración de la base de datos (instancia) contra el o los listener/s correspondiente. La registracion automática del servicio no requiere de ninguna configuración extra en el archivo listener.ora, pero sí debemos asegurarnos que los siguiente parámetros de inicio este correctamente configurados para que ASR funcione de manera adecuada.
service_name: el cual, como sabemos, se forma de la unión de los parámetros db_name y db_domain
instance_name: Indica efectivamente el SID de la instancia.
Por defecto, el proceso PMON registra información del servicio contra el listener local, como dijimos con configuración default, nombre LISTENER address local y puerto 1521.
Si eventualmente necesitaramos que el proceso PMON registre la instancia contra listeners NO default, es decir con dirección local pero cuyo puerto no sea el estándar 1521 y diferente nombre, debemos configurar el parámetro de inicio local_listener para dar la ubicación de cual será nuestro listener local en este caso.
Otra opción atractiva y altamente recomendable en ambiente RAC es la de registrar la instancia contra un listener remoto, donde obtenemos una opción más para robustecer las opciones de alta disponibilidad. Para realizar esta tarea debemos configurar el parámetro de inicio remote_listener indicando la dirección del listener remoto.
Como realizar la registración cruzada en RAC
Cuando estamos en un ambiente de Real Application Cluster debemos asegurarnos que la registración cruzada entre instancias se lleve a cabo correctamente, como comentamos ántes esto lo realizamos por medio de los parámetros particulares de inicio: local_listener y remote_listener.
A continuación describo los pasos que me han resultado efectivos para realizar esta tarea en un RAC de dos nodos:
1) Crear alias en el archivo tnsnames.ora del servidor (ambos) para el listener local y el remoto
LISTENER_INST1 =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = nodo1)(PORT = 1523))
)
LISTENER_INST2 =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = nodo2)(PORT = 1523))
)
2) Setear los parámetros local_listener y remote_listener referenciando a los alias correspondientes.
INST1.local_listener = LISTENER_INST1 #(local nodo1)
INST1.remote_listener = LISTENER_INST2 #(remoto nodo2)
INST2.local_listener = LISTENER_INST2 #(local nodo2)
INST2.remote_listener = LISTENER_INST1 #(remoto nodo1)
3) Para realizar la prueba podríamos levantar ambos listeners y ambas instancias y luego verificar que los listeners en ambos nodos esten escuchando para cada una de las instancias.
Muchas veces, un repaso a esta configuración puede ahorrarnos dolores de cabeza a la hora de resolver problemas de balanceo de carga y situaciones de failover.
septiembre 5, 2008
Categorías: Uncategorized . Etiquetas:alter system register, listener, local_listener, rac, remote_listener . Autor: Sebastián D'Alessandro . Comentarios: Dejar un comentario