Sei sulla pagina 1di 6

linux en la empresa Cmo ahorrar dinero con Linux

Microsoft SQL Server, MySQL y PostgreSQL


Santiago Gmez Ruiz

La eleccin de un gestor de bases de datos en una empresa no es algo ni mucho menos trivial. De partida, puede llegar a ser una inversin tanto en hardware como en software muy cuantiosa, pero no slo eso, adems 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 caractersticas, y en la mayora de los casos, se convierte en el centro del entramado informtico de la empresa.

e un modo simplificado, un SGBD (o DBMS en ingls) 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 informacin, velando porque se pueda disponer de ella en cualquier momento, que la informacin sea correcta desde un punto de vista lgico y que slo pueda ser accedida por las personas adecuadas. Y de un modo ms directo, el SGBD es el guardin de los datos de la empresa. Ni ms ni menos. De ah que sea trascendental su correcta eleccin. Los productos que se analizan a continuacin estn creados en torno a un estndar en lenguajes de bases de datos, el SQL (Structured Query Language), proveniente del SEQUEL (Structured English QUEry Language). Este ltimo fue desarrollado durante la dcada de los 70 e implementado experimentalmente, ya que las mquinas comerciales de la poca no tenan la suficiente potencia de clculo como para ejecutar con rendimiento aceptable las operaciones del lenguaje. El lenguaje SQL se divide en tres sublenguajes:

linux@software.com.pl

Lenguaje de definicin de datos (DDL), que permite crear y alterar las estructuras en las que la informacin se almacena; Lenguaje de manipulacin 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 artculo se revisarn tres gestores: Microsoft SQL Server, MySQL y PostgreSQL. Los dos ltimos son multiplataforma, se encuentran implementaciones para varios

Sobre el autor www.protalia.com


Santiago Gmez Ruiz es Director de Proyectos de Protalia, una consultora espaola especializada en implantacin y migracin de Software Libre en entornos empresariales, docentes e institucionales.

52

Linux+ 4/2007

linux en la empresa Cmo ahorrar dinero con Linux


sistemas operativos, incluyendo GNU/Linux y Windows. Por el contrario, Microsoft SQL Server slo funciona sobre Windows. Nuestra instalacin ser modesta, 25 puestos de trabajo. Se parte de la premisa de que se trata de una nueva instalacin, sin ningn producto anterior instalado y por lo tanto, sin gastos de migracin, que seran muy variables. La segunda parte de este artculo trata de cmo sera un proceso de migracin. El que se evalen estos tres SGBD no significa que sean los nicos o necesariamente los mejores para un propsito determinado. Hay productos magnficos como Oracle y DB2, ambos cerrados y de un precio considerablemente alto. Lamentablemente, todos los SGBD del mercado no caben en este artculo. Esto es importante, porque independientemente de las caractersticas propias de cada SGBD, ste a su vez va a correr sobre un sistema operativo, beneficindose de sus puntos fuertes y vindose 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 ms 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 produccin de una mquina con Windows nos va a obligar a la adquisicin de un software antivirus. En cuanto a la estabilidad, un problema endmico de todos los sistemas operativos de Microsoft son sus bajas tasas de disponibilidad. Esto se debe fundamentalmente a dos motivos: tuacin que he experimentado yo personalmente), exija un reinicio del sistema no ayuda a mejorar la disponibilidad; Los tiempos de mantenimiento son elevadsimos, en parte causados por el deficiente sistema de ficheros utilizado, NTFS, que obliga a defragmentar los sistemas de archivo muy frecuentemente. Casi cada actualizacin del sistema operativo obliga a reiniciar el sistema. por debajo de la interfaz grfica? Esto es una cuestin subjetiva, y cada administrador deber valorar su peso en la decisin. El precio de Microsoft Windows 2003 Server STD es de 490,24 , ms 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 cdigo abierto, y totalmente libre y gratuito, que se puede descargar de la pgina principal del proyecto (http://www.debian.org) o desde cualquiera de sus mirrors. La estabilidad de Debian es legendaria. Salvo errores de hardware y lgicamente apagones, la probabilidad de tener que reiniciar un servidor basado en Debian es remotsima. La modularidad propia del sistema permite actualizarlo sin tener que reiniciar, ya que el mismo actualizador detiene el servicio que sea necesario, lo actualiza y vuelve a iniciarlo, en apenas un segundo. La seguridad de Debian es la propia de la mayora de las distribuciones de GNU/Linux, salvo casos exticos como Linspire. Polticas conservadoras de seguridad, perfecta delimitacin de los usos del administrador y el usuario y perfecta compartimentacin de los directorios que cada uno puede utilizar y su grado de utilizacin 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

En cuanto a la seguridad, y an 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 gravsimas que han afectado a los sistemas operativos de Microsoft, y que en alguna ocasin, como con los virus Sasser y Blaster, han llenado telediarios, no animan a confiar en la seguridad del sistema. En cuanto al rendimiento, es ms pobre que el resto de los sistemas operativos. Si a esto le aadimos la muy intensa carga de trabajo del antivirus y la imposibilidad de desactivar la sesin grfica, que es una autntica 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, habra que hacer una consideracin final sobre este sistema operativo de cdigo cerrado: es prudente confiar todos los datos de nuestra empresa a un sistema operativo que slo Microsoft sabe lo que hace

Los sistemas se quedan colgados con una facilidad alarmante. Cada cuelgue y su posterior reinicio significan que se ha perdido tiempo, pero que adems 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 alteracin mnima en el hardware, hasta a veces en el ms perifrico (por ejemplo, simplemente al insertar un pendrive, si- Figura 1. Administracin de una base de datos mediante la herramienta MySQL Administrator

www.lpmagazine.org

53

linux en la empresa Cmo ahorrar dinero con Linux


sistema, y posteriormente se aprovechan, o incluso extravagancias como emular un virus de Windows con privilegios de administrador. En conclusin, incluso provocndolo expresamente, es muy difcil hacer funcionar un virus para Linux. Vaya, que si lo que queremos es fastidiar nuestra mquina, es ms fcil meterle fuego. Una ventaja comn 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 grfico, dejando solamente las funcionalidades que se van a utilizar. Lo anterior redunda en que el sistema sea ms liviano y ms rpido, resumiendo, aumenta el rendimiento. De hecho, la interfaz grfica se puede dejar desactivada, o se pueden instalar interfaces grficas sencillas e increblemente ligeras, como Fluxbox, Xfce o Enlightenment, que apenas impactan en los recursos. Yo personalmente suelo dejarla desactivada, y slo la utilizo por comodidad en algunos casos, ya que realmente, para qu necesita un servidor la interfaz grfica la mayora 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 instalacin es sencillsima, su interfaz es clara e intuitiva y viene acompaado de una suite de utilidades bastante completa. La herramienta de administracin de Microsoft SQL Server (Microsoft SQL Server Enterprise Manager) muestra la habitual disposicin 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 disposicin permite acceder fcilmente 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 dems herramientas accesorias al propio SGBD. Microsoft SQL Server posee disparadores (triggers). Los disparadores son procedimientos que se ejecutan cuando ocurre un evento determinado, por ejemplo, que se inserte, modifique o elimine un registro. De esta manera, parte de la lgica de la aplicacin la realiza la base de datos. La utilizacin 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 lgica es independiente de la aplicacin, lo que asegura que la implementacin de la lgica no se vea alterada por diferentes clientes de la base de datos, o por fallos de programacin en los mismos clientes. Otra caracterstica incluida en Microsoft SQL Server son los procedimientos almacenados (stored procedures). Estos procesos se ejecutan a peticin de las aplicaciones cliente y tienen que estar escritos en lenguajes comprensibles por el motor de base de datos, por ejemplo, y tratndose de Microsoft SQL Server, se podran 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 creacin de clientes de la base de datos ligeros, fciles de depurar y de escribir y libres de errores. Operaciones tediosas y propensas a pequeos errores, como las validaciones de campo, se pueden implementar en base a disparadores, y otras operaciones complejas como ajustes de stock en una facturacin se programarn 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 tambin de serios problemas. Las pruebas de rendimiento nunca son definitivas, los escenarios de ejecucin 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, segn la experiencia comn 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 ms lento para la gran mayora de las tareas. El hecho de que slo pueda ejecutarse en el sistema operativo ms 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 fcilmente, permitiendo la duplicacin de claves nicas y desastres de ese tipo. Es importante incluir una reconstruccin de tablas en el programa de mantenimiento diario de la base de datos para evitar su degeneracin. 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. Administracin de una base de datos de MySQL mediante Webmin

54

Linux+ 4/2007

linux en la empresa Cmo ahorrar dinero con Linux


de l. En nuestro caso, el precio por implementar nuestra solucin de base de datos con Microsoft SQL Server con 25 clientes sera de 6.411,90. Adems, hay que tener en cuenta que al funcionar solamente sobre el sistema operativo de Microsoft, habra que aadir el importe de la licencia del servidor y los clientes, con lo que el precio final, slo en licencias, sera de 8.731,58 (no es un error tipogrfico). MySQL AB (www.mysql.com/) es una empresa sueca que lleva desde 1995 desarrollando el SGBD homnimo. El My que antecede al nombre de todos los productos de esta compaa 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 cdigo 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 extenssimo. Este producto parece orientado a las necesidades de una organizacin 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 da 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 versin 5 (actualmente la versin en produccin) del SGBD incuye muchas de estas funcionalidades, incluyendo disparadores y procedimientos almacenados. Por otra parte, la optimizacin 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 documentacin existente. Est tan extendido, que gran cantidad de plataformas web estn 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 pginas. Muchos de los gestores de contenidos que se utilizan hoy en da estn basados en este modelo, como PHPNuke, Drupal, PostNuke, Joomla! y Mambo, y aunque desconozco las cifras, la combinacin de estos gestores agrupar a una mayora abrumadora de gestores de contenido actualmente en lnea. Este hecho demuestra la fiabilidad y rapidez del Figura 3. Administracin de una base de datos PostgreSQL mediante Webmin, obsrvese la similitud de los interfaces lenguaje y su aptitud para tareas de este tipo, es decir, muchas lecturas simultneas, pocas escrituras proporcionalmente, y accesos ms bien simples a los datos. En estos entornos, MySQL simplemente no tiene rival hoy en da. Adems de un potente interfaz en modo consola, MySQL cuenta con diversas herramientas de administracin, siendo tres los ms populares: MySQL Administrator (desarrollado por la misma empresa), phpMyAdmin (www.phpmyadmin.net) y el mdulo de administracin de MySQL para Webmin. MySQL Administrator es una utilidad muy completa que permite la administracin de las bases de datos instaladas en el sistema. Puede conectarse a cualquier servidor, con las lgicas medidas de seguridad. De un modo grfico permite crear y modificar bases de datos, tablas, relaciones, usuarios, programar tareas de mantenimiento, copias de seguridad, sincronizar varios servidores, ajustar los parmetros 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 administracin de equipos muy popular entre administradores, ya que con un navegador se tiene un interfaz unificado para controlar cada aspecto de un servidor, incluyendo instalacin y desinstalacin de hardware, administracin de discos y particiones, de servicios, usuarios y casi cada cosa que se pueda imaginar. Webmin es una herramienta deliciosa para cualquier administrador. El mdulo 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 ningn software ni ningn sistema operativo especfico. PhpMyAdmin es otra herramienta de administracin web de MySQL de mucho xito. Es ms completa y an ms fcil de usar que el correspondiente mdulo de Webmin. Su desventaja se podra considerar que no est integrada en Webmin, junto al resto de las utilidades de administracin 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 parmetros fsicos, 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 rpida y alojadas enteramente en RAM, hasta diferentes tipos de estructura de organizacin de ficheros. Del mismo modo, parmetros muy internos como el tamao y uso de los bferes y la organizacin de la memoria estn 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, segn la wikipedia, MySQL funciona sobre mltiples plataformas,

www.lpmagazine.org

55

linux en la empresa Cmo 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. Tambin existe MySQL para OpenVMS. Si fuese necesario un ejemplo de lo que es multiplataforma, sera difcil encontrar uno mejor. Como se ha comentado antes, MySQL se puede descargar libremente desde la web del fabricante, bien como cdigo fuente, bien en forma de binarios. Adems, la gran mayora de las distribuciones de Linux incorporan en sus repositorios los paquetes precompilados y configurados para instalarse sobre la marcha limpiamente. Para Windows, slo hay que descargarse el instalador de la pgina de MySQL AB. La versin con soporte oscila en precio 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 cualificacin muy parecida, ya que tanto conceptualmente como en sus interfaces son muy parecidos y la curva de aprendizaje es mnima. Por lo tanto, no se tienen en cuenta los gastos de administracin y mantenimiento, que seran prcticamente los mismos. Desde siempre, PostgreSQL ha estado arropado por la fama de ser un producto muy profesional, completo y serio, aunque no excesivamente rpido 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 tamao, PostgreSQL es la eleccin tradicional para aplicaciones serias, de la dimensin de servidores de dominios raz de DNS, y de empresas con volmenes realmente grandes de datos. De todas formas, cada vez este uso viene siendo determinado ms por la tradicin 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. Porque la desventaja clsica que se aduce al hablar de PostgreSQL es la complejidad, al ser ms grande es ms complicado. Realmente no tiene por qu ser as. Adems del clsico interfaz de consola, existen utilidades libres e igualmente multiplataforma para la administracin de servidores PostgreSQL. Tres ejemplos a considerar podran 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 gestin de usuarios y grupos, uno de los temas complejos de PostgreSQL. Son aplicaciones grficas 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 tpica de rbol a la izquierda y panel a la derecha, un producto muy profesional. Adems, tambin existe un mdulo de Webmin para PostgreSQL, lo que aporta idnticas ventajas que su homlogo para MySQL. Al ser un producto abierto y gratuito, y al igual que con MySQL, tambin se pueden descargar de la pgina de PostgreSQL tanto fuentes como binarios y ejecutables para Windows. Por supuesto, tambin estn disponibles paquetes preconfigurados en los repositorios de las principales distribuciones de GNU/Linux. lisis anteriores son simples orientaciones. Para tener una idea ms detallada de todas y cada una de las caractersticas que poseen y las que no poseen cada uno de estos tres productos, una buena idea es visitar esta comparativa de la pgina de MySQL: http://dev. mysql.com/tech-resources/features.html. La comparativa, a pesar de estar alojada en la pgina de MySQL es ms 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 desempeo posibles, y siempre habr algn escenario que beneficie particularmente a un SGBD (consecuentemente, hay casi infinitas comparativas de rendimiento con casi infinitos resultados contradictorios). La opinin de quien sufra cada uno de estos productos puede orientar mucho ms que cualquier benchmark. Resumiendo, las conclusiones seran: Windows + Microsoft SQL Server: 8.731, 58: Recomendable si por alguna razn 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 opcin; Windows + MySQL/PostgreSQL: 2319, 68: Si el gestor de bases de datos es libre y multiplataforma, la nica razn para utilizar un sistema operativo propietario, caro e inestable es que sea necesario para cualquier otra cosa adems de soportar la base de datos. Parece un poco absurdo a priori; GNU/Linux Debian 3.1 Sarge+ MySQL: 0: Solucin estable, gratuita, rpida y segura. Muy recomendable para desarrollos medios, ya que hay mucha documentacin al respecto. Es conveniente revisar las funcionalidades necesarias para nuestra aplicacin, 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 combinacin es estable, gratuita, segura y muy potente.

Precio de MySQL 0

PostgreSQL (www.postgresql.org/) es un SGBD que hunde sus races en los desarrollos de la Universidad de Berkeley, como tantas otras magnficas creaciones de software. El proyecto nace con el nombre de Ingres, y tras una primera descontinuacin por parte de su creador, Michael Stonebraker, el proyecto se retoma como un proyecto post-Ingres. El resultado es llamado entonces Postgres. Tras unos aos 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 convirtindose ya en PostgreSQL. Por lo tanto, a diferencia de los dos anteriores, no hay una compaa tras el producto, es creado y mantenido exclusivamente por la comunidad. Eso no quiere decir que no haya soporte comercial, en la misma pgina 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-

Haciendo este tipo de anlisis se entiende perfectamente la poltica de Microsoft de cerrar formatos y provocar incompatibilidades: es la nica manera de mantener sus produc-

56

Linux+ 4/2007

linux en la empresa Cmo 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 continuacin, 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 parmetros 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 cdigo. Supuestamente en este punto ya debera de funcionar perfectamente, se conecta el cliente a la base de datos nueva y se prueban a fondo las funcionalidades de la aplicacin. Para este paso es un factor de ayuda muy importante a efectos de depuracin el contar con el cdigo fuente de la aplicacin cliente, de forma que se pueda controlar perfectamente Figura 4. Administracin 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 migracin, hay que tener claros ciertos conceptos. Es normal asumir el cargo de una instalacin y encontrarse con que la misma est implantada sobre Windows. Eso en principio no es motivo suficiente para migrarla antes de hacer ciertas consideraciones: Estn mnimamente amortizadas las licencias? Si bien no es una consideracin tcnica, 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 situacin no es escandalosamente crtica, normalmente la empresa optar por aguantar un tiempo el sistema propietario recin implantado que cambiar a uno libre. Cuntas horas de trabajo efectivo se estn perdiendo por utilizar un sistema operativo inseguro? Eso es un argumento muy pesado. Qu riesgos de seguridad se estn corriendo con una instalacin 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 migracin de los datos? Esta es la pregunta ms difcil de responder. qu estaba pidiendo la aplicacin a la base de datos en el momento en que surgi el fallo. Es posible que haya que ajustar distintos parmetros o incluso que modificar ligeramente el cdigo de la aplicacin cliente. Si se verifica el correcto funcionamiento de la aplicacin cliente, es el momento de pasar a la implementacin en la instalacin real. Por muy documentado y probado que est el proceso, el mundo real est lleno de amargos sinsabores, lo que aconseja realizar la migracin en fin de semana, o en el espacio de tiempo ms largo de que se disponga entre los perodos de uso de la aplicacin, y asegurarse siempre de que podemos dar marcha atrs y dejar la instalacin 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 das de utilizacin, incluso con toda una batera 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 migracin exitosa. Idealmente, los usuarios saldrn el viernes a disfrutar del fin de semana, y el lunes volvern al trabajo, y slo notarn que su aplicacin funciona ms rpido y no se cuelga. La direccin de la empresa notar a corto plazo un aumento de la productividad y a medio plazo un descenso en los gastos derivados del mantenimiento informtico. Y el informtico 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 satisfaccin difcilmente igualable.

Existen muchas herramientas de migracin entre distintos SGBD. Sorprendentemente, Microsoft ha dotado a su SQL Server de una herramienta de exportacin bastante buena que facilita la tarea, pero adems se pueden utilizar distintas aplicaciones de migracin gratuitas que aportan diferentes grados de inteligencia al migrar. Pero aunque son tiles en la migracin 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 caractersticas 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 instalacin paralela con al menos un servidor y un cliente para estudiar la migracin. En este laboratorio, se documentarn todos los pasos hasta lograr la migracin exitosa, de modo que al aplicarlo a la instalacin real, los problemas sean mnimos 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 vacas en el SGBD destino con los tipos de datos correctos para nuestra aplicacin. Mucho ojo con los tipos de datos numricos, de tipo fecha y booleanos, suelen dar sorpresas. Tambin hay que estudiar el comportamiento de los valores nulos y autoincrementales en ambos sistemas.

www.lpmagazine.org

57