Mostrando entradas con la etiqueta PostgreSQL. Mostrar todas las entradas
Mostrando entradas con la etiqueta PostgreSQL. Mostrar todas las entradas

lunes, 19 de septiembre de 2011

Lo nuevo en PostgreSQL 9.1

El pasado 12 de septiembre, el equipo de desarrollo del motor de base de datos de código abierto más robusto del mundo (Lo siento MySQL, desde que estás en manos de Oracle ya no eres de mi favoritos) presentó la versión 9.1 de PostgreSQL.

Esta nueva edición trae bastantes novedades, donde se destaca particularmente, la -por fin- inclusión de la replicación activa. Una característica que muchos negocios que emplean bases de datos de misión crítica pedían a gritos  desde hace ya bastante rato.


Pero veamos qué nos trae la nueva edición de acuerdo a la siguiente edición:

  • Replicación Sincrónica: permitiendo alta disponibilidad con consistencia sobre multiples servidores.  
  • Regionalización por columna: soportando correctamente el ordenamiento por lenguaje en las bases de datos, tablas o columnas.
  • Tablas unlogged: importante incremento del rendimiento para datos efímeros.
  • Indexamiento de los K vecinos más próximos (K-Nearest-Neighbor):  índices sobre "distancia" para consultas rápidas de ubicación y búsquedas de texto. (Algoritmo KNN http://es.wikipedia.org/wiki/Knn)
  • Nivel de Aislamiento Serializable a través de "Snapshots": mantiene consistentes multiples transacciones concurrentes sin el uso de bloqueos, usando "verdadera serialización"
  • Writeable Common Table Expressions: ejecuta actualizaciones multi-fases complejas en una simple consulta
  • Security-Enhanced Postgres: despliega seguridad de nivel militar y control de acceso mandatorio.

Como podrá notar el lector los cambios no son pocos pero tal y como decíamos anteriormente, destaca la posibilidad de usar replicación síncrona:

Permitiendo alta disponibilidad con consistencia a través de múltiples nodos, mediante la implementación de clústeres de servidores PostgreSQL usando replicación sincrónica. La replicación síncrónica soporta "2-safe replication" que asegura que las transacciones han sido confirmadas por una réplica del servidor maestro, limitando grandemente la posibilidad de perdida de datos. Solo PostgreSQL soporta replicación sincrónica a nivel de transacciones, permitiendo a los usuarios.

En principio (A riesgo de emitir un juicio) podemos decir que PostgreSQL 9.1 apostó a la replicación síncrona confiable antes que el rendimiento… No estoy seguro de cómo el servidor maneje un “failover” (Hacer el cambio al otro servidor en caso de falla) pero al menos la estrategia de recuperación de uno de los nodos sí fue pensada para ser más optima y rápida que un simple bloqueo  a la base de datos y la realización de una copia de seguridad.

Sin embargo, otras alternativas de replicación síncrona como PGPool-II parecen tener todavía la ventaja sobre la replicación nativa, ya que además de ofrecer la función de mantener arriba una o más instancias de la base de datos listas para entrar en caso de, ofrece un plus al rendimiento: Capacidad de balancear la carga, consultas paralelizadas y pool de conexiones.

Con lo anterior, quiero decir que PostgreSQL va por muy buen camino en cuanto a alta disponibilidad se refiere, con un horizonte claro y teniendo como premisa la integridad de los datos y la confiabilidad pero todavía estamos -un poquito- lejos de soluciones tan sofisticadas como Oracle RAC (Claro si estás dispuesto a pagar los pocos miles de dólares que vale una solución de Oracle).

Por lo demás, PostgreSQL 9.1 se afirma como el motor de base de datos más robusto del mundo del código abierto.

PostgreSQL 9.1 en Fedora

En Fedora PostgreSQL 9.1 está disponible en el repositorio Rawhide. Se espera que sea parte integral de Fedora 16.

lunes, 20 de septiembre de 2010

PostgreSQL 9.0 - ¡Disponible!

Ya se encuentra disponible la novena edición de, modestia aparte, el motor de base de datos más poderoso del mundo del software libre: PostgreSQL 9.0. Esta edición trae consigo muchas novedades, dejando a PostgreSQL listo para los retos de la Web 2.0, el cloud computing y la alta disponibilidad.


Entre las novedades se destacan:

  • Replicación nativa: PostgreSQL ahora incluye la función de replicación como parte de su núcleo. Puede hacerse a través del volcado de archivos WAL a un segundo servidor, o bien a través de configuración maestro esclavo permitiendo además consultas de sólo lectura en los servidores alternos.Administración de permisos de objetos en la base de datos mejorada.
  • Soporte completo a Windows de 64 bits.
  • Consultas de reportes más avanzadas.
  • Nuevas y mejoradas características de seguridad, destacando el nuevo soporte a autenticación por RADIUS y las mejores en el soporte a LDAP.Mejoras en el rendimiento de cierto tipo de consultas, eliminando joins innecesarios.
  • El comando EXPLAIN se ha mejorado, permitiendo además exportar los resultados a JSON y XML entre otros formatos para su posterior análisis.
Se espera que PostgreSQL 9.0 sea incluido por defecto en los repositorios de Fedora 14 (la actualización no se espera en Fedora 13 debido a la posibilidad de romper las configuraciones actuales).

Puedes encontrar una guía (no actualizada a la versión 9.0) de instalación de PostgreSQL en:
http://piensa-binario.blogspot.com/2010/01/instalar-postgresql-server-pgadmin-iii.html

Descarga de PostgreSQL 9.0:
http://www.postgresql.org/download/

Anuncio oficial :
http://www.postgresql.org/about/news.1235

Documentación oficial:
http://www.postgresql.org/docs/9.0/interactive/

miércoles, 20 de enero de 2010

Instalar PostgreSQL Server + PGAdmin III en Fedora

PostgreSQL es el motor de bases de datos más poderoso del mundo del software libre y cuenta con una gran trayectoria en el mercado empresarial por su robustez y fiabilidad.


Por otra parte, PGAdmin III es una interfaz gráfica para administrar PostgreSQL que si bien no es tan avanzada como algunos administradores quisieran, sin duda es una excelente opción para operar Postgres fuera de la consola de la comandos.

Para instalar PostgreSQL y PGAdmin III en Fedora sólo ejecute en una terminal:

$ su -c 'yum -y install postgresql-server pgadmin3'

Una vez instalado, cambiamos la contraseña del usuario postgres:

$ su -c 'passwd postgres'

Acto seguido inicializamos la base de datos:

$ su -c 'service postgresql initdb'

Y procedemos a editar la configuración de PostgreSQL:

$ su -c 'yum -y install nano && nano /var/lib/pgsql/data/postgresql.conf'

Nota: puede cambiar nano por su editor de texto favorito, por ejemplo gedit o kwrite.

En el archivo de configuración busque edite la línea:

#listen_addresses = 'localhost'

Por

listen_addresses = '*'

Y la línea:

#port = 5432

Por:

port = 5432

A continuación guarde y cierre el editor de texto (Ctrl+O y Ctrl+X en nano). Con éstos cambios, configuramos PostgreSQL server para "escuchar" las conexiones desde cualquier dirección por el puerto 5432.

Ahora procedemos a editar la configuración de autenticación editando el archivo pg_hba.conf:

$ su -c 'nano /var/lib/pgsql/data/pg_hba.conf'

Ubicamos la línea:

host all all 127.0.0.1/32 ident

Y la cambiamos por:

host all all 127.0.0.1/32 md5

Con éste cambio le decimos a PostgreSQL que las conexiones desde el mismo servidor (localhost) deben autenticarse por md5.

Nota: Si desea conectarse desde otro equipo o red remota añada una línea similar con la dirección IP del equipo o red desde el que se conectará. Incluso puede aceptar conexiones desde cualquier lugar con la dirección 0.0.0.0. Consulte http://www.postgresql.org/docs/8.4/static/auth-pg-hba-conf.html para obtener más información del archivo pg_hba.conf.

A continuación guarde el archivo y salga del editor de texto (Ctrl+O y Ctrl+X) en nano. Una vez hecho ésto agregamos PostgreSQL como servicio al arranque para que sea inicializado cada vez que se enciende el equipo:

$ su -c 'chkconfig postgresql on'

Finalmente inicializamos el servicio:

$ su -c '/etc/init.d/postgresql start'

Ahora podemos proceder a cambiar la contraseña propiamente del usuario PostgreSQL en la base de datos (Nos pedirá la constraseña del usuario Postgres de Unix).

$ su postgres
contraseña: 

Una vez como usuario Postgres ejecutamos: (Una instrucción por línea):

psql
ALTER USER postgres WITH PASSWORD 'mypasswd';

Si la instrucción se ejecutó con éxito debe mostrar:

ALTER ROLE

Nota: Reemplaca mypasswd por su contraseña. No olvide el ; al final.

El cambio está hecho. Para salir (Una instrucción por línea):

\q
exit

Conectarse a la Base de datos desde PGAdmin III

Para abrir PGAdmin III vaya al menú Aplicaciones => Programación => pgAdmin III verá la pantalla principal de pgAdmin:


Para conectarse a la base de datos, haga clic sobre la "toma de corriente" o "enchufe" en la parte superior, o en el menú Archivo => Add Server.

Verá el cuadro de diálogo de configuración del servidor:


La información a ingresar será:

Nombre: Mi BD
Host: 127.0.0.1
Port: 5432
Maintenance DB: postgres
Username: postgres
Password: mypasswd

Una vez hecho ésto, haga clic en Aceptar y ¡listo! PGAdmin III y PostgreSQL están preparados para trabajar.