Download Microsoft SQL Server, MySQL y PostgreSQL

Document related concepts
Transcript
linux en la empresa
Cómo ahorrar dinero con Linux
Microsoft SQL Server,
MySQL y PostgreSQL
Santiago Gómez Ruiz
[email protected]
La elección de un gestor de bases de datos en una empresa no es algo ni mucho menos trivial. De
partida, puede llegar a ser una inversión tanto en hardware como en software muy cuantiosa, pero
no sólo eso, además va a condicionar de manera determinante los desarrollos de aplicaciones que
tengan que interactuar con el mismo. Un SGBD, o Sistema Gestor de Bases de Datos crea un entorno
operativo que depende directamente de sus características, y en la mayoría de los casos, se convierte
en el centro del entramado informático de la empresa.
52
D
e un modo simplificado, un SGBD (o DBMS
en inglés) es una plataforma de software
que almacena los datos que se le introduzcan, debiendo garantizar principalmente su
disponibilidad, su seguridad y su integridad. Esto significa
que es un conjunto de programas que permiten el almacenamiento de información, velando porque se pueda disponer de ella en cualquier momento, que la información sea
correcta desde un punto de vista lógico y que sólo pueda
ser accedida por las personas adecuadas.
Y de un modo más directo, el SGBD es el guardián de
los datos de la empresa. Ni más ni menos. De ahí que sea
trascendental su correcta elección.
Los productos que se analizan a continuación están
creados en torno a un estándar en lenguajes de bases de datos, el SQL (Structured Query Language), proveniente del SEQUEL (Structured English QUEry Language). Este último fue
desarrollado durante la década de los 70 e implementado
experimentalmente, ya que las máquinas comerciales de la
época no tenían la suficiente potencia de cálculo como para
ejecutar con rendimiento aceptable las operaciones del lenguaje. El lenguaje SQL se divide en tres sublenguajes:
Linux+ 4/2007
•
•
•
Lenguaje de definición de datos (DDL), que permite
crear y alterar las estructuras en las que la información se almacena;
Lenguaje de manipulación de datos (DML), que permite insertar, modificar, consultar y eliminar contenidos de la base de datos;
Lenguaje de control de datos (DCL), que gestiona el
acceso a los datos desde el punto de vista de la seguridad (usuarios), como desde el punto de vista de la
integridad (concurrencia).
En este artículo se revisarán tres gestores: Microsoft SQL
Server, MySQL y PostgreSQL. Los dos últimos son multiplataforma, se encuentran implementaciones para varios
Sobre el autor
Santiago Gómez Ruiz es Director de Proyectos de Protalia, una consultoría española especializada en implantación y migración de Software Libre en entornos empresariales, docentes e institucionales.
linux en la empresa
Cómo ahorrar dinero con Linux
sistemas operativos, incluyendo GNU/Linux
y Windows. Por el contrario, Microsoft SQL
Server sólo funciona sobre Windows. Nuestra
instalación será modesta, 25 puestos de trabajo.
Se parte de la premisa de que se trata de
una nueva instalación, sin ningún producto
anterior instalado y por lo tanto, sin gastos
de migración, que serían muy variables. La
segunda parte de este artículo trata de cómo
sería un proceso de migración.
El que se evalúen estos tres SGBD no significa que sean los únicos o necesariamente los
mejores para un propósito determinado. Hay
productos magníficos como Oracle y DB2, ambos cerrados y de un precio considerablemente
alto. Lamentablemente, todos los SGBD del
mercado no caben en este artículo.
Esto es importante, porque independientemente de las características propias de cada
SGBD, éste a su vez va a correr sobre un sistema operativo, beneficiándose de sus puntos
fuertes y viéndose perjudicado por sus debilidades. Por muy potente que sea un determinado aplicativo, si se implementa sobre un
sistema operativo pobre, el resultado no puede
ser excepcionalmente bueno.
Por lo tanto, el primer extremo a considerar será el sistema operativo a elegir para
hospedar a nuestro SGBD. Consideraremos
GNU/Linux Debian 3.1 Sarge por una parte,
y Microsoft Windows 2003 Server STD por
otra.
Microsoft Windows 2003 Server (www.
microsoft.com/spain/windowsserver2003/default.
mspx) es probablemente el sistema operativo
más estable y seguro de Microsoft. Lamentablemente, eso no es mucho. Tanto en estabilidad
como en seguridad deja mucho que desear,
de hecho, la puesta en producción de una
máquina con Windows nos va a obligar a la
adquisición de un software antivirus.
En cuanto a la estabilidad, un problema
endémico de todos los sistemas operativos de
Microsoft son sus bajas tasas de disponibilidad. Esto se debe fundamentalmente a dos
motivos:
•
En cuanto a la seguridad, y aún con un buen
antivirus actualizado, nada puede detener
a un virus lo suficientemente reciente como
para no constar en las bases de datos de nuestro antivirus. La cantidad de vulnerabilidades
gravísimas que han afectado a los sistemas
operativos de Microsoft, y que en alguna ocasión, como con los virus Sasser y Blaster, han
llenado telediarios, no animan a confiar en la
seguridad del sistema.
por debajo de la interfaz gráfica? Esto es una
cuestión subjetiva, y cada administrador deberá valorar su peso en la decisión.
El precio de Microsoft Windows 2003
Server STD es de 490,24 € , más 4 paquetes de
5 licencias para uso de los puestos de trabajo: 457,36 * 4 = 1.829,44 €, sumando un total
de 2319,68 euros.
En cuanto al sistema operativo GNU/Linux Debian 3.1 Sarge, es un sistema operativo
de código abierto, y totalmente libre y gratuito, que se puede descargar de la página
principal del proyecto (http://www.debian.org)
o desde cualquiera de sus mirrors.
La estabilidad de Debian es legendaria.
Salvo errores de hardware y lógicamente apagones, la probabilidad de tener que reiniciar
un servidor basado en Debian es remotísima.
La modularidad propia del sistema permite
actualizarlo sin tener que reiniciar, ya que el
mismo actualizador detiene el servicio que
En cuanto al rendimiento, es más pobre
que el resto de los sistemas operativos. Si a esto le añadimos la muy intensa carga de trabajo del antivirus y la imposibilidad de desactivar la sesión gráfica, que es una auténtica
devoradora de recursos, el rendimiento se ve
muy seriamente mermado.
En consecuencia, y por si todo lo anterior
fuese poco, Microsoft Windows 2003 Server
es muy exigente en cuanto a hardware.
Finalmente, habría que hacer una consideración final sobre este sistema operativo de
código cerrado: ¿es prudente confiar todos
los datos de nuestra empresa a un sistema
operativo que sólo Microsoft sabe lo que hace
sea necesario, lo actualiza y vuelve a iniciarlo,
en apenas un segundo.
La seguridad de Debian es la propia de
la mayoría de las distribuciones de GNU/Linux, salvo casos exóticos como Linspire. Políticas conservadoras de seguridad, perfecta
delimitación de los usos del administrador
y el usuario y perfecta compartimentación
de los directorios que cada uno puede utilizar
y su grado de utilización permiten al administrador de un servidor basado en Linux
dormir tranquilo por las noches.
Los virus no son un problema en Linux.
Salvo experimentos en laboratorio, en los que
expresamente se abren vulnerabilidades en el
•
tuación que he experimentado yo personalmente), exija un reinicio del sistema
no ayuda a mejorar la disponibilidad;
Los tiempos de mantenimiento son elevadísimos, en parte causados por el deficiente sistema de ficheros utilizado, NTFS,
que obliga a defragmentar los sistemas
de archivo muy frecuentemente. Casi cada actualización del sistema operativo
obliga a reiniciar el sistema.
Los sistemas se quedan colgados con una
facilidad alarmante. Cada cuelgue y su
posterior reinicio significan que se ha perdido tiempo, pero que además es posible
que se haya perdido trabajo sin consolidar en los archivos. En un contexto de bases de datos, esto puede causar graves inconsistencias. El hecho de que cualquier
alteración mínima en el hardware, hasta
a veces en el más periférico (por ejemplo,
simplemente al insertar un pendrive, si- Figura 1. Administración de una base de datos mediante la herramienta MySQL Administrator
www.lpmagazine.org
53
linux en la empresa
Cómo ahorrar dinero con Linux
sistema, y posteriormente se aprovechan, o incluso extravagancias como emular un virus
de Windows con privilegios de administrador. En conclusión, incluso provocándolo
expresamente, es muy difícil hacer funcionar
un virus para Linux.
Vaya, que si lo que queremos es fastidiar
nuestra máquina, es más fácil meterle fuego.
Una ventaja común a todas las distribuciones de GNU/Linux es que son altamente personalizables. Esto significa que se puede descargar al sistema de todo lo que no se necesita, incluyendo el sistema gráfico, dejando solamente las funcionalidades que se van a utilizar. Lo anterior redunda en que el sistema
sea más liviano y más rápido, resumiendo,
aumenta el rendimiento.
De hecho, la interfaz gráfica se puede dejar
desactivada, o se pueden instalar interfaces
gráficas sencillas e increíblemente ligeras, como Fluxbox, Xfce o Enlightenment, que apenas
faz es clara e intuitiva y viene acompañado de
una suite de utilidades bastante completa.
La herramienta de administración de
Microsoft SQL Server (Microsoft SQL Server
Enterprise Manager) muestra la habitual disposición de este tipo de aplicativos de Microsoft, esto es, un árbol a la izquierda donde se
muestra cada objeto clasificado por su tipo,
y un panel a la derecha donde se modifican
las propiedades de dicho objeto. Esta disposición permite acceder fácilmente a cualquier objeto de la base de datos, detener y reiniciar el servicio y utilizar las utilidades incluidas.
Dentro de estas utilidades, aparte de bastante detallados programas de mantenimiento, podemos encontrar importadores/exportadores de datos y demás herramientas accesorias al propio SGBD.
Microsoft SQL Server posee disparadores
(triggers). Los disparadores son procedimien-
clientes de la base de datos, o por fallos de
programación en los mismos clientes.
Otra característica incluida en Microsoft
SQL Server son los procedimientos almacenados (stored procedures). Estos procesos se
ejecutan a petición de las aplicaciones cliente
y tienen que estar escritos en lenguajes comprensibles por el motor de base de datos, por
ejemplo, y tratándose de Microsoft SQL Server, se podrían escribir en .NET.
Las ventajas de los procedimientos almacenados son las mismas que las de los disparadores: rendimiento y mantenibilidad. Un
uso eficaz de ambos elementos permite la
creación de clientes de la base de datos ligeros, fáciles de depurar y de escribir y libres
de errores. Operaciones tediosas y propensas
a pequeños errores, como las validaciones de
campo, se pueden implementar en base a disparadores, y otras operaciones complejas como ajustes de stock en una facturación se pro-
impactan en los recursos. Yo personalmente
suelo dejarla desactivada, y sólo la utilizo por
comodidad en algunos casos, ya que realmente, ¿para qué necesita un servidor la interfaz
gráfica la mayoría de su tiempo?
Como se ha comentado, la licencia de
GNU/Linux Debian 3.1 Sarge es gratuita y su
descarga libre: precio 0€.
A estas alturas, la comparativa perjudica
a Microsoft SQL Server, ya que únicamente
puede ejecutarse sobre Windows.
Microsoft SQL Server (https://www.microsoft.com/latam/sql/) en sí es un buen producto,
probablemente de los mejor acabados por Microsoft. Su instalación es sencillísima, su inter-
tos que se ejecutan cuando ocurre un evento
determinado, por ejemplo, que se inserte, modifique o elimine un registro. De esta manera,
parte de la lógica de la aplicación la realiza la
base de datos.
La utilización de disparadores es muy
conveniente tanto por rendimiento como por
mantenibilidad de las aplicaciones cliente. Por
rendimiento, porque el proceso se ejecuta en
el mismo servidor, evitando el trasiego de
consultas SQL y datos entre cliente y servidor. Por mantenibilidad porque de esta forma, esta lógica es independiente de la aplicación, lo que asegura que la implementación
de la lógica no se vea alterada por diferentes
gramarán una sola vez, garantizando su validez independientemente del cliente utilizado.
Si bien la interfaz de usuario es muy buena y sobre el papel tiene muchas funcionalidades, Microsoft SQL Server adolece también
de serios problemas. Las pruebas de rendimiento nunca son definitivas, los escenarios
de ejecución son tan variopintos que cualquier productor de un SGBD puede acondicionar la prueba a un escenario propicio a su
producto. Eso es posible hasta con Microsoft
SQL Server, el producto de los tres evaluados
con peor rendimiento en general, según la
experiencia común de los administradores.
Aunque se puedan encontrar estudios sufragados por Microsoft que demuestran que en
un determinado ambiente ejecutando una
determinada consulta con un hardware muy
concreto Microsoft SQL Server puede superar
a sus competidores en cuanto a rendimiento,
la regla general es que es el SGBD más lento
para la gran mayoría de las tareas. El hecho
de que sólo pueda ejecutarse en el sistema
operativo más pobre en rendimiento de los
dos considerados tampoco ayuda.
Otro aspecto que no favorece a Microsoft
SQL Server es la estabilidad. Sus tablas tienden a corromperse fácilmente, permitiendo
la duplicación de claves únicas y desastres
de ese tipo. Es importante incluir una reconstrucción de tablas en el programa de mantenimiento diario de la base de datos para evitar
su degeneración.
De manera similar a Microsoft 2003 Server, Microsoft SQL Server funciona en un
sistema de licencias en el cual se paga por el
servidor, y luego por cada puesto que se sirve
Figura 2. Administración de una base de datos de MySQL mediante Webmin
54
Linux+ 4/2007
linux en la empresa
Cómo ahorrar dinero con Linux
de él. En nuestro caso, el precio por implementar nuestra solución de base de datos con
Microsoft SQL Server con 25 clientes sería de
6.411,90€. Además, hay que tener en cuenta
que al funcionar solamente sobre el sistema
operativo de Microsoft, habría que añadir el
importe de la licencia del servidor y los clientes, con lo que el precio final, sólo en licencias,
sería de 8.731,58€ (no es un error tipográfico).
MySQL AB (www.mysql.com/) es una empresa sueca que lleva desde 1995 desarrollando el SGBD homónimo. El My que antecede
al nombre de todos los productos de esta
compañía coincide con el nombre de la hija
de uno de los fundadores, Monty Widenius, lo
que ha llevado a pensar que es el origen del
nombre de los productos.
El servidor de bases de datos MySQL es
de código abierto. Se distribuye en dos versiones, una comercial, de pago y que incluye
soporte, y otra gratuita, basada en el soporte
de la comunidad. Hay que decir que este soporte comunitario es extensísimo.
Este producto parece orientado a las necesidades de una organización media. Durante mucho tiempo, un argumento muy escrito en los foros que tratan el tema es si lo
que quieres es velocidad, usa MySQL, si lo que
quieres son funcionalidades, usa PostgreSQL. Eso
hoy en día no es tan cierto. Si bien MySQL ha
destacado por su velocidad en operaciones
de lectura (no tanto en escritura) y se le han
echado en falta funcionalidades, la versión 5
(actualmente la versión en producción) del
SGBD incuye muchas de estas funcionalidades, incluyendo disparadores y procedimientos almacenados. Por otra parte, la optimización de PostgreSQL en cuanto a velocidad los
ha dejado muy cerca, de hecho, en entornos
multiprocesador, PostgreSQL escala mucho
mejor que MySQL.
Uno de los puntos fuertes de MySQL
es su facilidad de uso y la documentación
existente. Está tan extendido, que gran cantidad de plataformas web están construidas
contando con MySQL. Estas son las llamadas
plataformas LAMP (Linux+Apache+MySQL
+PHP), que utilizan Linux como sistema operativo, Apache como servidor web, MySQL
como base de datos y PHP como lenguaje de
las páginas.
Muchos de los gestores de contenidos
que se utilizan hoy en día están basados en
este modelo, como PHPNuke, Drupal, PostNuke, Joomla! y Mambo, y aunque desconozco las cifras, la combinación de estos gestores
agrupará a una mayoría abrumadora de gestores de contenido actualmente en línea. Este
hecho demuestra la fiabilidad y rapidez del
Figura 3. Administración de una base de datos PostgreSQL mediante Webmin, obsérvese la similitud de los
interfaces
lenguaje y su aptitud para tareas de este tipo,
es decir, muchas lecturas simultáneas, pocas
escrituras proporcionalmente, y accesos más
bien simples a los datos. En estos entornos,
MySQL simplemente no tiene rival hoy en
día.
Además de un potente interfaz en modo
consola, MySQL cuenta con diversas herramientas de administración, siendo tres los
más populares: MySQL Administrator (desarrollado por la misma empresa), phpMyAdmin (www.phpmyadmin.net) y el módulo de
administración de MySQL para Webmin.
MySQL Administrator es una utilidad
muy completa que permite la administración
de las bases de datos instaladas en el sistema.
Puede conectarse a cualquier servidor, con las
lógicas medidas de seguridad. De un modo
gráfico permite crear y modificar bases de
datos, tablas, relaciones, usuarios, programar
tareas de mantenimiento, copias de seguridad, sincronizar varios servidores, ajustar los
parámetros del servidor, etc. Es decir, que tiene poco que envidiar a Microsoft SQL Server
Enterprise Manager.
Webmin (www.webmin.com) es una plataforma web de administración de equipos muy
popular entre administradores, ya que con un
navegador se tiene un interfaz unificado para
controlar cada aspecto de un servidor, incluyendo instalación y desinstalación de hardware, administración de discos y particiones,
de servicios, usuarios y casi cada cosa que se
pueda imaginar. Webmin es una herramienta
deliciosa para cualquier administrador. El mó-
www.lpmagazine.org
dulo de MySQL para Webmin permite el control detallado del gestor de bases de datos desde cualquier parte del mundo con un simple
navegador, sin depender de ningún software
ni ningún sistema operativo específico.
PhpMyAdmin es otra herramienta de administración web de MySQL de mucho éxito.
Es más completa y aún más fácil de usar que
el correspondiente módulo de Webmin. Su
desventaja se podría considerar que no está
integrada en Webmin, junto al resto de las
utilidades de administración del sistema, su
principal ventaja respecto a este último es que
es un interfaz totalmente pensado para MySQL y por lo tanto, mejor adaptado y potente.
MySQL es un SGBD altamente configurable es sus parámetros físicos, ya que permite
elegir el tipo de tabla para cada una de las
que componen la base de datos, desde tablas
orientadas a la lectura rápida y alojadas enteramente en RAM, hasta diferentes tipos de estructura de organización de ficheros. Del mismo modo, parámetros muy internos como el
tamaño y uso de los búferes y la organización
de la memoria están accesibles al administrador. De esta forma, un administrador puede
constantemente ir ajustando el rendimiento
de las bases de datos tabla a tabla, conforme
el volumen de los datos va evolucionando.
Con un administrador cuidadoso, se pueden
alcanzar grandes rendimientos.
MySQL es multiplataforma, se puede instalar igualmente sobre Windows que sobre
GNU/Linux. De hecho, según la wikipedia,
MySQL funciona sobre múltiples plataformas,
55
linux en la empresa
Cómo ahorrar dinero con Linux
incluyendo AIX, BSD, FreeBSD, HP-UX, GNU/
Linux, Mac OS X, NetBSD, Novell Netware,
OpenBSD, OS/2 Warp, QNX, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare,
Tru64, Windows 95, Windows 98, Windows NT,
Windows 2000, Windows XP, Windows Vista
y otras versiones de Windows. También existe
MySQL para OpenVMS. Si fuese necesario un
ejemplo de lo que es multiplataforma, sería
difícil encontrar uno mejor.
Como se ha comentado antes, MySQL se
puede descargar libremente desde la web del
fabricante, bien como código fuente, bien en
forma de binarios. Además, la gran mayoría
de las distribuciones de Linux incorporan en
sus repositorios los paquetes precompilados
y configurados para instalarse sobre la marcha limpiamente. Para Windows, sólo hay
que descargarse el instalador de la página de
MySQL AB.
La versión con soporte oscila en precio
Desde siempre, PostgreSQL ha estado
arropado por la fama de ser un producto muy
profesional, completo y serio, aunque no excesivamente rápido comparado con MySQL.
Como expuse antes, eso ya no es cierto. PostgreSQL es tremendamente eficiente, sobre
todo en entornos multiprocesador y MySQL
se le ha acercado mucho en funcionalidades.
Si MySQL ha ocupado el nicho de las aplicaciones web y aquellas con un moderado
tamaño, PostgreSQL es la elección tradicional
para aplicaciones serias, de la dimensión de servidores de dominios raíz de DNS, y de empresas con volúmenes realmente grandes de
datos. De todas formas, cada vez este uso viene
siendo determinado más por la tradición y las
herramientas existentes que han surgido alrededor de este tipo de proyectos que por la
imposibilidad de usar MySQL en un proyecto
realmente grande, o una excesiva complejidad
de PostgreSQL.
lisis anteriores son simples orientaciones. Para tener una idea más detallada de todas
y cada una de las características que poseen
y las que no poseen cada uno de estos tres
productos, una buena idea es visitar esta comparativa de la página de MySQL: http://dev.
mysql.com/tech-resources/features.html.
La comparativa, a pesar de estar alojada
en la página de MySQL es más que razonablemente objetiva, y podrá ayudar a determinar,
basado en las necesidades concretas, el SGBD
que mejor se ajuste a nuestras necesidades.
Otra historia es intentar encontrar una
comparativa de rendimiento. Como ya expuse
anteriormente, son infinitos los escenarios de
desempeño posibles, y siempre habrá algún
escenario que beneficie particularmente a un
SGBD (consecuentemente, hay casi infinitas
comparativas de rendimiento con casi infinitos resultados contradictorios). La opinión
de quien sufra cada uno de estos productos
entre los 595$ y 4995$, dependiendo del nivel
de soporte ofrecido por la empresa creadora
del producto. Se puede obtener soporte de
otras muchas empresas a precios muy diferentes.
El soporte para cada uno de estos productos requiere una cualificación muy parecida, ya que tanto conceptualmente como en
sus interfaces son muy parecidos y la curva
de aprendizaje es mínima. Por lo tanto, no se
tienen en cuenta los gastos de administración
y mantenimiento, que serían prácticamente
los mismos.
Porque la desventaja clásica que se aduce
al hablar de PostgreSQL es la complejidad, al
ser más grande es más complicado. Realmente
no tiene por qué ser así. Además del clásico
interfaz de consola, existen utilidades libres e
igualmente multiplataforma para la administración de servidores PostgreSQL.
Tres ejemplos a considerar podrían ser
pgAdmin III (www.pgadmin.org/), Pg Access
(www.pgaccess.org/) y phpPgAdmin (http://phppgadmin.sourceforge.net/). Las dos primeras herramientas siguen el esquema del árbol de objetos
a la izquierda y el panel de propiedades a la derecha, y permiten la gestión de usuarios y grupos, uno de los temas complejos de PostgreSQL. Son aplicaciones gráficas intuitivas a la
altura de las correspondientes a los dos SGBD
anteriormente evaluados. En cuanto a phpPgAdmin, es la contrapartida funcional a phpMyAdmin, aunque manteniendo la estructura típica de árbol a la izquierda y panel a la derecha,
un producto muy profesional.
Además, también existe un módulo de
Webmin para PostgreSQL, lo que aporta
idénticas ventajas que su homólogo para MySQL.
Al ser un producto abierto y gratuito,
y al igual que con MySQL, también se pueden
descargar de la página de PostgreSQL tanto
fuentes como binarios y ejecutables para Windows. Por supuesto, también están disponibles paquetes preconfigurados en los repositorios de las principales distribuciones de
GNU/Linux.
puede orientar mucho más que cualquier benchmark.
Resumiendo, las conclusiones serían:
Precio de MySQL 0 €
PostgreSQL (www.postgresql.org/) es un SGBD que hunde sus raíces en los desarrollos
de la Universidad de Berkeley, como tantas
otras magníficas creaciones de software. El
proyecto nace con el nombre de Ingres, y tras
una primera descontinuación por parte de
su creador, Michael Stonebraker, el proyecto se retoma como un proyecto post-Ingres.
El resultado es llamado entonces Postgres.
Tras unos años de desarrollo en el seno de
la Universidad, el proyecto se estabiliza y se
abandona por parte de ésta. En ese momento
(1993), y gracias a su licencia libre, se retoma
por la comunidad convirtiéndose ya en PostgreSQL.
Por lo tanto, a diferencia de los dos anteriores, no hay una compañía tras el producto,
es creado y mantenido exclusivamente por
la comunidad. Eso no quiere decir que no
haya soporte comercial, en la misma página
del proyecto se puede acceder a multitud de Precio de PostgreSQL: 0 €
empresas que ofrecen soporte de pago para Los sistemas gestores de bases de datos son
el producto.
piezas de software tan complejas que los aná-
56
Linux+ 4/2007
•
•
•
•
Windows + Microsoft SQL Server: 8.731,
58€: Recomendable si por alguna razón el
software a utilizar no puede funcionar con
otra plataforma. Es muy caro, menos estable, menos eficiente, menos seguro y no
aporta nada fundamental que no aporte
cualquier otra opción;
Windows + MySQL/PostgreSQL: 2319,
68€: Si el gestor de bases de datos es libre
y multiplataforma, la única razón para
utilizar un sistema operativo propietario,
caro e inestable es que sea necesario para
cualquier otra cosa además de soportar
la base de datos. Parece un poco absurdo
a priori;
GNU/Linux Debian 3.1 Sarge+ MySQL: 0€:
Solución estable, gratuita, rápida y segura. Muy recomendable para desarrollos
medios, ya que hay mucha documentación al respecto. Es conveniente revisar
las funcionalidades necesarias para nuestra aplicación, y verificar que todas son cubiertas por MySQL. Especialmente indicado para aplicaciones web;
GNU/Linux Debian 3.1 Sarge + PostgreSQL: 0€: Marco ideal para desarrollos gran
des y con un tratamiento de datos extensivo. La combinación es estable, gratuita,
segura y muy potente.
Haciendo este tipo de análisis se entiende
perfectamente la política de Microsoft de cerrar formatos y provocar incompatibilidades:
es la única manera de mantener sus produc-
linux en la empresa
Cómo ahorrar dinero con Linux
El siguiente paso es copiar los contenidos
de las tablas desde el origen al destino. Este
procedimiento en sí no debe ser complicado.
A continuación, se deben reproducir las relaciones de forma que funcionen exactamente
igual en el sistema de origen y el destino. Definir correctamente los índices, y ajustar los parámetros que afecten al rendimiento de cada
tabla.
Finalmente, habrá que migrar los scripts,
esto es, procedimientos almacenados y disparadores, verificando que uno a uno funcione
y adaptando o reescribiendo el código.
Supuestamente en este punto ya debería
de funcionar perfectamente, se conecta el
cliente a la base de datos nueva y se prueban
a fondo las funcionalidades de la aplicación.
Para este paso es un factor de ayuda muy importante a efectos de depuración el contar con
el código fuente de la aplicación cliente, de
forma que se pueda controlar perfectamente
Figura 4. Administración de una base de datos PostgreSQL mediante PgAccess
tos en el mercado, puesto que individualmente suelen ser poco recomendables.
Cambiar un SGBD por otro no es una
tarea trivial. En primer lugar, hay que tener
muy buenas razones para hacerlo. Las migraciones suelen ser de propietario a libre, y
antes siquiera de proponer la migración, hay
que tener claros ciertos conceptos. Es normal
asumir el cargo de una instalación y encontrarse con que la misma está implantada sobre Windows. Eso en principio no es motivo
suficiente para migrarla antes de hacer ciertas
consideraciones:
•
•
•
¿Están mínimamente amortizadas las
licencias? Si bien no es una consideración técnica, que el nuevo administrador
proponga tirar a la basura una millonada
en licencias casi por estrenar no es una
buena forma de empezar a hacer amigos.
Aunque consideraciones de rendimiento,
disponibilidad y seguridad lo aconsejen,
si la situación no es escandalosamente
crítica, normalmente la empresa optará
por aguantar un tiempo el sistema propietario recién implantado que cambiar
a uno libre.
¿Cuántas horas de trabajo efectivo se
están perdiendo por utilizar un sistema
operativo inseguro? Eso es un argumento muy pesado.
¿Qué riesgos de seguridad se están corriendo con una instalación de ese tipo? El
peso de este argumento es proporcional
a la confidencialidad o valor de los datos
almacenados.
•
¿Qué coste va a tener la migración de los
datos? Esta es la pregunta más difícil de
responder.
Existen muchas herramientas de migración
entre distintos SGBD. Sorprendentemente,
Microsoft ha dotado a su SQL Server de una
herramienta de exportación bastante buena
que facilita la tarea, pero además se pueden
utilizar distintas aplicaciones de migración
gratuitas que aportan diferentes grados de
inteligencia al migrar. Pero aunque son útiles
en la migración de bases de datos sencillas,
con tipos de datos poco complicados y poco
relevantes en sí, no pueden sustituir el conocimiento del administrador sobre las características de los datos que van a ser necesarias.
Porque migrar una base de datos no es copiar unas tablas de un formato a otro. Es muy
recomendable disponer de una instalación paralela con al menos un servidor y un cliente para estudiar la migración. En este laboratorio, se
documentarán todos los pasos hasta lograr la
migración exitosa, de modo que al aplicarlo a la
instalación real, los problemas sean mínimos o
ninguno. En primer lugar, es muy conveniente
estudiar los tipos de datos que soportan tanto
el SGBD origen como el destino, y establecer un
mapeo de tipos, tabla por tabla. Si es posible,
generar las tablas vacías en el SGBD destino
con los tipos de datos correctos para nuestra
aplicación. Mucho ojo con los tipos de datos
numéricos, de tipo fecha y booleanos, suelen
dar sorpresas. También hay que estudiar el
comportamiento de los valores nulos y autoincrementales en ambos sistemas.
www.lpmagazine.org
qué estaba pidiendo la aplicación a la base de
datos en el momento en que surgió el fallo. Es
posible que haya que ajustar distintos parámetros o incluso que modificar ligeramente el
código de la aplicación cliente.
Si se verifica el correcto funcionamiento de
la aplicación cliente, es el momento de pasar a la
implementación en la instalación real. Por muy
documentado y probado que esté el proceso, el
mundo real está lleno de amargos sinsabores,
lo que aconseja realizar la migración en fin de
semana, o en el espacio de tiempo más largo de
que se disponga entre los períodos de uso de la
aplicación, y asegurarse siempre de que podemos dar marcha atrás y dejar la instalación tal
como estaba mientras volvemos al laboratorio
a investigar cual ha sido el fallo. Raramente se
sobrepasan dos intentos hasta que el sistema
funciona de forma fluida. No obstante, los primeros días de utilización, incluso con toda una
batería de pruebas a las espaldas, hay que estar
muy vigilante, intentando anticiparse a problemas que puedan surgir, que es la mejor manera de solucionarlos. Siendo cuidadosos y dejando a un lado las prisas y los plazos se puede
lograr una migración exitosa. Idealmente, los
usuarios saldrán el viernes a disfrutar del fin
de semana, y el lunes volverán al trabajo, y sólo
notarán que su aplicación funciona más rápido
y no se cuelga. La dirección de la empresa notará
a corto plazo un aumento de la productividad
y a medio plazo un descenso en los gastos derivados del mantenimiento informático.
Y el informático sentirá que ha hecho un
buen trabajo, que ha optimizado costes, evitado riesgos a su empresa y facilitado la vida
a los usuarios. Y ese es un sentimiento de satisfacción difícilmente igualable.
57