# Resolviendo SCAN

**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.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1763123246242/9385bcf2-dbaa-4b5a-bd01-d44c815e5856.png align="center")

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](http://rac-scan.example.com), debes configurar las siguientes entradas en el DNS
        
        ```powershell
        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](http://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](http://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:
        
        ```powershell
        SCAN Name: rac-scan.example.com
        SCAN Port: 1521 # o el puerto de escucha predeterminado
        ```
        
        *   El instalador verificará que [rac-scan.example.com](http://rac-scan.example.com) resuelve a tres direcciones IP diferentes.
            

### 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:

```powershell
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.
