Skip to main content

Command Palette

Search for a command to run...

Resolviendo SCAN

Updated
4 min readView as Markdown
Resolviendo SCAN
C
Hola mundo! Soy Carmen. En mi camino como DBA, con particular interés en Oracle, nace este blog para documentar los pequeños aprendizajes y compartirlos con todos los que por una razón u otra han acabado aqui. No busco inventar o descubrir nada nuevo, pero si algo he aprendido en estos años es que a veces la clave no está en qué comunicas, sino el cómo, asique te animo a leer algún post mientras disfrutas de un buen café. Actualmente cuento con 3 años de experiencia, con formación en administración de bases de datos y en desarrollo de SQL en Oracle principalmente. Mis próximos pasos? Una gran incógnita por ahora, entre posts y cafés los descubriremos juntos.

SCAN (Single Client Access Name) es un nombre de red que permite a los clientes conectarse a una base de datos RAC (Oracle Real Application Clusters) sin preocuparse por las instancias subyacentes del clúster. Oracle RAC utiliza SCAN para proporcionar una entrada única para todas las instancias en el clúster. SCAN debe resolver un DNS alias a almenos tres direcciones IP virtuales diferentes en un entorno de producción facilitando el balanceo de carga y la alta disponibilidad.

Resolución de nombres

Cuando un cliente quiere conectarse a la base de datos RAC, usa el nombre SCAN en su conexión. El cliente realiza una consulta DNS para poder resolver el nombre SCAN y el servidor DNS devuelve una de las IPs SCAN (generalmente se hace un balanceo de carga simple tipo Round-Robin entre las IPs SCAN configuradas).

El cliente se conecta a la IP SCAN obtenida, donde uno de los SCAN listeners está escuchando. Cada IP SCAN tiene un listener asociado, y estos listeners se distribuyen en los nodos del cluster para garantizar la alta disponibilidad. El SCAN listener recibe la solicitud de conexión inicial, pero este no gestiona la conexión directamente a las instancias de bases de datos, en cambio, se comunica con los local listeners en los nodos para redirigir la conexion al nodo adecuado.

El SCAN listener consulta el Oracle Cluster Registry (OCR) para obtener el estado de la base de datos y las instancias disponibles, asi como los recursos de carga de trabajo en cada nodo. Basándose en esta información, el SCAN listener redirige la conexión a uno de los local listeners de un nodo específico del cluster que este disponible. El cliente es redirigido a la direccion IP del nodo específico donde se encuentra el local listener.

Una vez conectado al local listener del nodo, el cliente establece la sesion de base de datos con una instancia en ese nodo. Si el nodo está ocupado o sufre un fallo, Oracle RAC y el Clusterware gestionarán el failover de la conexión a otro nodo automáticamente.

Configurar SCAN es un paso esencial en la instalación y configuración de un entorno de RAC, y a continuación veremos paso a paso como hacer dicha configruación.

Let’s go!

1. Configurar SCAN en DNS

Configurar SCAN en el DNS es un paso crítico. El nombre SCAN debe resolver a tres direcciones IP.

  • Ejemplo:

    • Si tu SCAN es rac-scan.example.com, debes configurar las siguientes entradas en el DNS

      root@rac-example.localhost:~> nslookup rac-example-scan
      Server:         127.0.0.1
      Address:        127.0.0.1#53
      
      Name:   rac-example-scan
      Address: 192.168.1.101
      Name:   rac-example-scan
      Address: 192.168.1.102
      Name:   rac-example-scan
      Address: 192.168.1.103
      ** server cant find rac-example-scan: SERVFAIL
      
    • Esto significa que el nombre rac-scan.example.com puede resolverse en cualquiera de estas tres direcciones IP, permitiendo que el balanceo de carga distribuya las conexiones entrantes entre ellas.

2. Configurar el entorno de red en los nodos RAC

En cada nodo del clúster RAC, asegúrate de que el entorno de red está correctamente configurado en cada nodo. Esto incluye tener interfaces de red separadas:

  • Red pública

  • Red privada (interconexión entre nodos)

  • IP virtual (SCAN)

    • Asegurando que las direcciones IP de SCAN (192.168.1.101, 192.168.1.102, 192.168.1.103) no estén asignadas a ninguna interfaz física.
  • Oracle Grid Infrastructure gestionará estas IPs como IPs virtuales.

3. Instalación y configuración de Oracle Grid Infrastructure

Durante la instalación de Oracle Grid Infrastructure, te pedirá que ingreses el nombre de SCAN. Aquí es donde ingresas rac-scan.example.com.

  • Ejemplo de instalación:

    • Al ejecutar el instalador de Oracle Grid Infrastructure, en la sección de configuración de la red:

      SCAN Name: rac-scan.example.com
      SCAN Port: 1521 # o el puerto de escucha predeterminado
      

4. Verificar la configuración de SCAN

Después de completar la instalación, puedes verificar que SCAN esté funcionando correctamente. Oracle CRS (Cluster Ready Services) administrará los servicios SCAN y se asegurará de que estén en funcionamiento.

Para verificar que las IPs de SCAN están correctamente registradas y que los listeners de SCAN están en funcionamiento, puedes usar:

srvctl config scan
srvctl config scan_listener
srvctl status scan
srvctl status scan_listener
  • Estos comandos te mostrarán la configuración de SCAN, las IPs asociadas, y el estado de los listeners de SCAN.