nov 26 2009

Hacer copia o duplicar base de datos MySQL con phpMyAdmin: Pestaña Synchronize.

Entre mis labores diarias consulto y modifico bases de datos MySQL, PostgreSQL y Firebird principalmente, y hoy me he llevado una sorpresa bastante agradable cuando abrí phpMyAdmin.
Entre los scripts que tengo programados para ejecución automática en mi equipo está uno que consulta actualizaciones de diferentes programas y paquetes en los diferentes repositorios SVN, Mercurial o GIT y descarga las últimas actualizaciones del paquete en cuestión, en este caso de phpMyAdmin 3.3.0-dev ha bajado la última versión de desarrollo del SVN y me he encontrado con una nueva pestaña: “Synchronize” (Sincronizar para las versiones en castellano).

Pestaña Sincronizar en phpMyAdmin 3.3.0

Nueva pestaña sincronizar disponible en phpMyAdmin 3.3.0

Como buen ingeniero no pude aguantarme las ganas y di click en la pestaña para probar esa nueva opción y me encontré con una página sencilla pero bastante intuitiva.

Contenido página Sincronizar en phpMyAdmin 3.3.0

Contenido página Sincronizar en phpMyAdmin 3.3.0

Luego de investigar de seleccionar una base de datos local y crear una de prueba vacía de destino decidí continuar haciendo click sobre el botón Go. Ahora me sorprende con una nueva página: la página de comparación de las bases de datos.

Selección de opciones a sincronizar en phpMyAdmin: datos y/o estructura

Selección de opciones a sincronizar en phpMyAdmin: datos y/o estructura

Puedo probar cómo efectivamente ha comparado no solo la estructura de las tablas sino también de los datos permitiendo agregar los registros faltantes a la base de datos destino. Al hacer click sobre el botón “Apply selected changes” (Aplicar cambios seleccionados) y curiosamente hace exactamente eso, ejecuta las consultas y regresa a la página de comparación. Luego de hacer click sobre el botón “Synchronize databases” ejecuta los cambios que hayamos seleccionado y muestra un informe con las sentencias SQL que se ejecutaron. En mi caso ejecutó todo sin errores ni problemas.

Les invito a probar esta nueva utilidad, parece que los desarrolladores de phpMyAdmin han escuchado nuestras plegarias y han visto nuestras necesidades. Vaya que han desarrollado una utilidad excelente: fácil, sencilla y hace exactamente lo que dice.

Qué otro módulo sería interesante tener en phpMyAdmin? No sería mala idea hacerles unas cuantas recomendaciones al equipo de desarrollo. Seguiré probando y les contaré alguna novedad.


may 15 2009

MySQL se divide: Nace The Open Database Alliance

Luego de la compra de Sun y por ende de MySQL por parte de la gigante Oracle, se veía venir la división. Ya algunos estaban (léase estábamos) especulando sobre el fork de MySQL, y vaya que no tardó demasiado en surgir la Alianza de la Base de Dato Abierta o de ahora en adelante conocida como la The Open Database Alliance (llamémosla ODA) y ha sido nada menos que en la cuna de Linus Torvalds, en Finlandia, se ha creado un “consorcio neutral diseñado para convertirse en el centro de la industria de la base de datos de código abierto MySQL, incluyendo el código de MySQL y sus derivados, binarios, entrenamiento, soporte y otras mejoras para la comunidad de MySQL y su ecosistema de socios”. Y para hacer más interesante la noticia, el fundador de la ODA es Michael “Monty” Widenius, el creador original de MySQL y Percona, una empresa de cosultoría que desde el año pasado lanzó su propia versión “parchada” de MySQL.
Desde ya la ODA nos invita a participar activamente en el proyecto:
“Todavía en desarrollo, la Open Database Alliance está abierta a todos los negocios, organizaciones e individuos interesados en crear un nuevo y centralizado recurso para MySQL y para asegurar que siga siendo una base de datos Open Source de gran calidad y alta performance”


may 6 2009

Nagios se divide: Nace ICINGA

Un grupo de líderes de Nagios, incluso integrantes de Nagios Community Advisory y creadores de varios Addons para Nagios han decidido crear ICINGA, un fork o bifurcación de Nagios, el sistema líder de monitoreo de código abierto. Este proyecto independiente se esforzará enser más ágil en las solicitudes de los usuarios y más rápido en el desarrollo del software a través de una comunidad más amplia de desarrolladores.

El nuevo sistema de monitoreo será completamente compatible con su predecesor, conservando todas las características actuales de Nagios mientras agrega otras solicitadas por la comunidad Nagios. Los bugs o errores de tiempos atrás serán eliminados y mejoras sustanciales serán realizadas, especialmente para la integración de la base de datos estandarizando todo por medio de una API para simplificar la integración de Addons de terceros. ICINGA aspira desarrollarse y mejorarse apuntando a funcionalidad en entornos más amplios y complejos.

Construido en tecnología reconocidas, a saber PHP, y conceptos de desarrollo de frameworks y estándares progresivos, ICINGA es un producto de la comunidad promete estar llena de innovación.

El primer lanzamiento se espera para finales de mayo, tanto así que hay un contador regresivo que lleva la cuenta. La primera versión estable se espera para Octubre 28.

¿Será que la historia de múltiples proyectos de código abierto se repite? Recordemos cuando Joomla se separó de Mambo. Ese tipo de divisiones con muy beneficiosas en los proyectos de código abierto ya que aumenta la variedad ed los productos y dan cabida a nuevas ideas y rumbos. Veamos cuál triunfa o tal vez ambos sean una excelente competencia y mejoren cada uno por su lado el producto.


abr 29 2009

¿Por qué usar Firebird SQL?

¿Porqué tan pocos desarrolladores están usando Firebird SQL? Ha sido la pregunta formulada por Henrique Lobo en su blog iTexto concluyendo que pensar que no hay muchos desarrolladores es estar en un gran error, pues hay más desarrolladores que utilizan Firebird de los que se cree y este número está creciendo rápidamente; los desarrolladores se están dando cuenta de las ventajas que éste motor tiene frente a otras bases de datos como MySQL: el principal “competidor”.

A primera vista, pareciera que quienes usan Firebird son los desarrolldores en Delphi. Aunque el número de desarrolladores usando este motor va en aumento sigue siendo reducido, ¿por qué no es tan popular como MySQL o PostgreSQL? Tal vez como se indica en el sitio de Firebird SQL:

Como probablemente algunos hayan notado, Firebird es más maduro, tienen más características, no vale ni un centavo y es seguro que está más preparada para ambientes empresariales. Entonces, ¿por qué no hay muchas personas que hayan escuchado de este motor?

Las razones son simples:

1. Firebird no tiene una única entidad comercial que gestione el desarrollo y gane dinero por ello. Hay compañías, pero ninguna de ellas obtienen ganancias por vender licencias de Firebird (Firebird es totalmente gratis). Esas empresas venden soporte pero el retorno económico es mucho menor.

Por lo tanto, no hay nadie que invierta su dinero en mercadeo y haga un despliegue alrededor de este proyecto. Problemas similar es plagan a otros proyectos de código abierto como PostgreSQL, por ejemplo.

2. Cuando fue el boom de los servidores web y las aplicaciones web, Firebird no estaba listo para ser una base de datos para web. Como la demanda por almacenamiento de datos creció, la gente estuvo demandando algo más fácil y rápido que archivos planos del tipo Perl. MySQL, simplemente estuvo en el lugar correcto en el momento correcto. Al poco tiempo, cada ISP (Proveedor de internet) tenía soporte para PHP y MySQL y la plataforma LAMP fue aceptada. Como suele suceder, esos primeros en un mercado nuevo, rápidamente fueron aceptados, y es bastante difícil para otros dejar que esa “tajada” de mercado se vaya.

Tal vez sea una situación injusta, pero muchos desarrolladores han empezado a reconsiderarla. Pero acaso ¿qué características tiene este motor que merezca la atención de los desarrolladores? Bueno, helas a continuación:

  • Realmente gratuito: contrario a MySQL, Firebird i puede ser usado en aplicativos comerciales sin ningún tipo de “honorarios” o problemas legales. (Cabe mencionar que PostgreSQL tiene esa ventaja también)
  • Todas las características básicas de los grandes RDBMS: Procedimientos almacenados, disparadores o triggers, A.C.I.D., copias de seguridad en caliente, generadores, integridad referencial, y un gran etc.
  • Bajo consumo de recursos: ¿Alguna vez ha visto una base de datos embebida? Simplemente sorprendente: en menos de 1 MB se podrá disponer de todas las características de la base de datos sin “cortarle” nada!
  • Bajos requerimientos de hardware: básicamente, si algo realiza operaciones informáticas, de seguro podrá correr Firebird.
  • Disponible en todas las grandes plataformas: Linux, Windows, Mac OS, Solaris y otras.
  • Rendimiento razonable: El rendimiento de Firebird está al igual del prestado por MySQL y PostgreSQL.
  • Proyecto bastante activo: a pesar de su baja popularidad, s un proyecto bastante activo. Por ejemplo, en abril de 2009, se anunció la beta de la versión 2.5 del proyecto.
  • Bases de datos de tamaño ilimitado: El límite del tamaño de la base de datos está determinado por el sistema de archivos en el cual se almacena la base de datos. Pero, por si acaso, la base de datos excede el límite, siempre es posible dividirla en múltiples archivos. (La base de datos más grande conocida ocupa más de 980 GB)
  • Compatibilidad 100% con el estándar SQL 92
  • Conectividad: puede acceder a Firebird SQL a través de cualquier lenguaje de programación.

Y si hablamos de herramientas para administrar Firebird existen varias. Tanto así que también existe un programa que sirve para convertir de MS Access a Firebird.

Aunque es una base de datos para “enamorarse” y usar a diario, a veces es difícil que un cliente le dé tanta aceptación frente a MySQL o PostgreSQL. Otras razones que se podrían contemplar por lo que Firebird es tan impopular son:

  • Por ahora, ninguna gran empresa presta soporte como Sun/Oracle o IBM.
  • El sitio oficial (http://www.firebirdsql.org) fue renovado recientemente no luce atractivo gráficamente, así que la primera impresión no suele ser la mejor. Cualquiera pensaría que está abandonado. El patrocinador más grande hoy en hoy en día es IBPhoenix , y su principal negocio es Firebird. Pero incluso su propio sitio web (el de IBPhoenix) cae en el mismo problema de diseño gráfico.
  • El hecho de que siempre se ha asociado con Delphi desde un principio ha producido que con la decadencia de Delphi, la popularidad de Firebird también lucha por mantenerse a flote.
  • Documentación escasa. Es difícil encontrar documentación y en castellano aún más.

Sea como sea, es un proyecto que promete bastante y que considero que esa racha de “injusticia” pasará y logrará posicionarse y darse a conocer. Pruébelo usted mismo y muy probablemente diga como yo: “Por qué no lo conocí antes”.


abr 25 2009

MySQL 5.4: más rápida que nunca

Hace un par de días anunciábamos la compra de Sun por parte de Oracle y ya se está lanzando MySQL versión 5.4, sin pasar por la 5.2, ni 5.3. Sun (ahora Oracle) señala en su sitio que esto se debe al gran paquete de mejoras implementadas en el núcleo del motor que promete en algunos casos aumentos de velocidad hasta de un 90% más que su predecesora la versión 5.1. Todo este alboroto ha sido por el parche enviado por Google en donde se da soporte a más de 4 procesadores optimizando las consultas y ejecutándolas en tiempo récord.

Aunque apenas es una versión Preview, se le está dando la importancia de versión estable y vaya que parece serlo. Aprovecha mejor los recursos del servidor y efectivamente las consultas son ejecutadas a mayor velocidad. El Optimizador ha sido mejorado sustancialmente y algunas mejoras a los procedimientos almacenados y el soporte de parámetros OUT en las sentencias preparadas merecen la actualización a la versión 5.4. Definitivamente, Sun (y desde luego Google) se ha lucido con los fans de MySQL antes de despedirse y empezar a llamarse Oracle.