Página principal
Artículos y trucos
Catálogo de productos
Ejemplos y descargas
Mis libros
Cursos de formación
Investigación y desarrollo
Libros recomendados
Mis páginas favoritas
Acerca del autor
 
En colaboración con Amazon
 
Intuitive Sight

Problemas comunes al instalar un servidor SQL

El otro día tuve que instalar una mini-red en casa: un servidor con Windows NT, mi superordenador con Windows 95 (OSR 2.5) y un portátil con el mismo ¿sistema operativo? Digamos que sí. Logré instalar Oracle 8, una beta de SQL Server 7 e InterBase 5.1. Me parece que puede ser de interés que os cuente los principales problemas de configuración relacionados con la red y los servidores SQL con los que tropecé.

La limitación principal de mi mini-red es el servidor: un viejo Hewlett-Packard a 75 MHz. Le puse 64 MB de RAM (más no aguantaba la placa) y un disco duro UltraDMA de 2GB. Por supuesto, estoy desperdiciando la capacidad UltraDMA, pero ya no venden de otro tipo (y este era muy barato). Y lo principal es que la velocidad de transferencia de datos es de todos modos muy superior a la del disco original de 512 MB que traía.

Pude instalar Windows NT en esta máquina con muchos menos problemas que los que normalmente tengo al instalar Windows 9X (tarjetas, drivers y todo eso). Como quería acelerar al máximo el sistema, tomé la decisión de instalar solamente el protocolo TCP/IP: nada de NetBEUI ni de IPX/SPX. Utilicé una dirección IP fija, tanto para el servidor como para los otros dos equipos. Y nada tampoco de DHCP (consejo de mi colega Valentín) ni de WINS.

Tengo módem tanto en el portátil como en el superordenata. Así que estas dos máquinas tienen, adicionalmente, activada la DNS (Domain Name Service), el servicio que permite traducir nombres de dominios de la Internet a direcciones IP. Como sabéis, al configurar DNS para Internet y correo electrónico hay que mencionar la dirección IP de un servidor remoto, que es el ejecuta el servicio. Hasta aquí lo típico, ¿no?

Bien, el problema llegó cuando instalé Oracle 8 e InterBase en el servidor. La instalación fue como una seda, y desde el propio servidor las conexiones se realizaban de maravillas. Pero cuando trataba de conectar desde cualquiera de las otras dos máquinas ... ¡fracaso total! El cliente se quedaba estupendamente colgado (lo mismo IB que Oracle). Aquellos que han instalado InterBase (por ejemplo) saben que ésta es una instalación muy simple, y que casi todo funciona bien a la primera.

Mi primera pregunta fue:

  • ¿Se podían ver ambas máquinas mediante un ping?

Pues sí, en mi caso sí. Esto descartaba que hubiera algún problema físico en la red, o algún conflicto de direcciones. Paso siguiente: fui al Explorador de Windows del portátil, a ver si podía ver los restantes equipos ... ¡y sí podía verlos sin problemas! Por supuesto, había instalado el servicio de "compartir impresoras y archivos".

Aquí era donde estaba el razonamiento equivocado: si el cliente (el portátil, por ejemplo, que se llama IAN) podía ver al servidor (os presento a CHRISTINE) en el Explorador de Windows, suponía yo que contaba con algún mecanismo misterioso para convertir nombres de máquinas en direcciones IP. ¡Esto solamente es cierto a medias! Si tienes instalado NetBEUI, al parecer esto es así, pero si no, la resolución de nombres solamente funciona para los servicios de compartir ficheros. No para un humilde ping. Así que si tecleaba desde el portátil: ping MICHELLE, podía esperar sentado.

Lo curioso es que la conexión no fallaba. Yo esperaba que lo hiciera con algún mensaje del tipo "Vale, chaval, pero ¿quién es esa tía, la MICHELLE?". Y lo que al parecer pasa en estos casos es que la máquina intenta resolver el nombre utilizando DNS. Por supuesto, si el servidor DNS está al otro lado de la línea de teléfono y no tienes abierta la conexión, el cliente espera pacientemente a recibir respuesta.

La solución: reconozco que es una tontería, pero me hizo perder un par de horas, maldecir a quien sabéis y pensar mal de mi parche de WinSock 2. ¡Claro que hay que configurar un fichero HOSTS! Quítele la extensión al fichero HOSTS.SAM del directorio Windows (SAM quiere decir sample, es decir, muestra o ejemplo). Siga las instrucciones y por cada ordenador que esté presente en la red y del cual quiera utilizar algún servicio TCP/IP, introduzca una línea con su dirección IP y su nombre lógico. Copie este fichero en el directorio Windows de cada máquina. En el servidor NT debe modificar LMHOSTS, que está en WinNT\System32\Drivers\Etc (no estoy muy seguro de esto último, y pido perdón si estoy escribiendo alguna soberana tontería). Y por supuesto, con esto llegamos al final feliz. Ahora puedo conectarme en casa con Oracle, InterBase y SQL Server ... y estoy pensando montar una copia de evaluación de DB2.