lunes, 21 de mayo de 2012

Cluster PostgreSQL En Windows



Introducción a Postgresql
   
Durante el transcurso de las últimas tres décadas, se han manejado una infinidad de gestores de bases de datos, ya sean libres o propietarios; con características únicas en cada uno de ellos y otras que no muestran mayor diferencia, pero igual todas son útiles sin dejar de lado sus ventajas y desventajas; en éste terreno de gestion de bases de datos todos tienen algo bueno que ofrecer.


Postgresql fue el pionero en muchos de los conceptos existentes en el sistema objeto-relacional actual, incluido, más tarde en otros sistemas de gestión comerciales. PostGreSQL es un sistema objeto-relacional, ya que incluye características de la orientación a objetos, como puede ser la herencia, tipos de datos, funciones, restricciones, disparadores, reglas e integridad transaccional. A pesar de esto, PostGreSQL no es un sistema de gestión de bases de datos puramente orientado a objetos.


Características

Algunas de las principales características de este gestor de bases de datos son, entre otras:

  1. Implementación del estándar SQL92/SQL99.

  2. Soporta distintos tipos de datos: además del soporte para los tipos base, también soporta datos de tipo fecha, monetarios, elementos gráficos, datos sobre redes (MAC, IP), cadenas de bits, etc. También permite la creación de tipos propios.

  3. Incorpora una estructura de datos array.

  4. Incorpora funciones de diversa índole: manejo de fechas, geométricas, orientadas a operaciones con redes, etc.

  5. Permite la declaración de funciones propias, así como la definición de disparadores.

  6. Soporta el uso de índices, reglas y vistas.

  7. Incluye herencia entre tablas (aunque no entre objetos, ya que no existen), por lo que a este gestor de bases de datos se le incluye entre los gestores objeto-relacionales.

  8. Permite la gestión de diferentes usuarios, como también los permisos asignados a cada uno de ellos.



    Ventajas de usar PostgreSQL

    La mejor parte e incluso más significativa de este gestor son las ventajas que ofrece:

  9. A pesar de que la velocidad de respuesta pueda parecer deficiente en bases de datos pequeñas, esa velocidad se mantiene al aumentar el tamaño de la base de datos, cosa que no sucede con otros programas, que se enlentecen brutalmente.

  10. Instalación ilimitada: No se puede demandar a una empresa por instalarlo en más ordenadores de los que la licencia permite, ya que no hay costo asociado a la licencia de software.

  11. Estabilidad y confiabilidad

  12. Puede operar sobre distintas plataformas, incluyendo Linux, Windows, Unix, Solaris y MacOS X.

  13. Buena escalabilidad ya que es capaz de ajustarse al número de CPU y a la cantidad de memoria disponible de forma óptima, soportando una mayor cantidad de peticiones simultáneas a la base de datos de forma correcta.



    Desventajas de usar Postgresql


    Los mayores inconvenientes que se pueden encontrar en este gestor son:
  14. Es fácil de vulnerar sin protección adecuada.

  15. Es de 2 a 3 veces más lento que MySQL en inserciones y actualizaciones.

  16. Reducida cantidad de tipos de datos.

  17. Sin experiencia, configurar llega a ser un caos.


    Alta concurrencia



    Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o por filas común en otras bases, eliminando la necesidad del uso de bloqueos explícitos.



    Amplia variedad de tipos nativos


    PostgreSQL provee nativamente soporte para:
  18. Números de precisión arbitraria.

  19. Texto de largo ilimitado.

  20. Figuras geométricas (con una variedad de funciones asociadas).

  21. Direcciones IP (IPv4 e IPv6).

  22. Bloques de direcciones estilo CIDR.
  23. Direcciones MAC.

  24. Arrays.


    Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que pueden ser por completo indexables gracias a la infraestructura GiST de PostgreSQL.



    Instalación


    A continuación se listan los pasos para la instalación del gestor de bases de datos:

    1. Descargar el instalador desde http://www.postgresql.org.es/

    2. Ejecutar el instalador

    3. Seleccionar un directorio para almacenar los datos, podemos dejar las carpetas por defecto.

    4. Ingresar una contraseña

    5. Seleccionar la región con la que trabajará el proceso de la instalación, dejando la predefinida para menor complicación

    6. Esperar que se haya completado la instalación

    7. Terminada la instalación de PostgreSQL quitamos la selección de la última opción mostrada y damos clic en “Terminar”.

Todo esto es para una instalación típica de PostgreSQL 9.1 con configuraciones básicas pero funcionales (Como se muestra en el siguiente video).




Configuración de PostgreSQL -Cluster (Servidor)


Como primer paso se crea una carpeta en la unidad de destino donde se instalará el cluster; por ejemplo, se creó una carpeta llamada Cluster1 en la unidad C (C:\Cluster1). Paso siguiente, se agrega una variable de entorno la cual corresponde a la carpeta BIN del postgreSQL la cual corresponde a C:\Archivos de programa\PostgreSQL\9.1\bin

Para eso damos clic derecho a “Equipo”, luego en “Configuración avanzada del sistema”, en el cuadro de diálogo de Propiedades del sistema damos clic en el botón “Variables de entorno...”, luego en Variables del sistema buscamos y seleccionamos la  variable “Path” y le damos clic en editar y pegamos la dirección de la carpeta “bin” anteponiendo antes un “;” (punto y coma). Como último paso se le da Aceptar a todos los cuadros de diálogo que se abrieron.

Ahora en una consola (cmd) se digita el siguiente comando para crear el cluster:

initdb -D C:\Cluster1 (Donde Cluster1 Es la carpeta donde se aloja el cluster)
Luego se inicia con el comando:

            pg_ctl start -D C:\Cluster1
Luego de la instalación del servidor de bases de datos PostgreSQL existen tres archivos para configurar el servidor que son: 

  1. postgresql.conf

  2. pg_hba.conf

  3. pg_ident.conf. *(Para esta configuración no será necesario modificar éste archivo)




    Estos archivos establecen la manera en que se comporta e interactúa el servidor PostgreSQL y se encuentran ubicados generalmente en el directorio “C:\Archivos de programa\PostgreSQL\9.1\data” en Windows y en el directorio “/var/lib/pgsql/data” en Linux.

    Cabe recalcar que estos mismos archivos de configuración son los que aparecen y que se modifican en los cluster que se crean; es decir, que por cada cluster, se modifican esos archivos con extensión “.conf”; por ejemplo: Si se hace un cluster en la unidad C dentro de una carpeta de nombre MiCluster, la ruta de los archivos de configuración estarían en “C:\MiCluster/”.





 
A continuación se muestran los parámetros que se modifican en el archivo postgresql.conf para su funcionamiento más personalizado:



  • En listen_addresses se quita el # de la línea para des comentarlo y cambiamos el parametro listen_addresses =localhost’ a listen_addresses = ‘*’ para que pueda escuchar desde cualquier dirección IP.

  • De igual manera port=5432 se cambia al valor de 5445 ya que la instalación por defecto del postgresql se auto asignó el puerto 5432.

  • El parámetro max_connections = 100 tiene ese valor por defecto.

  • Al final guardamos los cambios en dicho archivo

  • Estos parámetros son modificados en los archivos .conf del cluster por supuesto.


    #------------------------------------------------------------------------------
    # CONNECTIONS AND AUTHENTICATION
    #------------------------------------------------------------------------------

    # - Connection Settings -

    listen_addresses = '*'            # what IP address(es) to listen on;
                        # comma-separated list of addresses;
                        # defaults to 'localhost', '*' = all
                        # (change requires restart)
    port = 5445                # (change requires restart)
    max_connections = 100        # (change requires restart)



El archivo pg_hba.conf se modifica en los parámetros siguientes:

  • Al final del archivo se encuentran los rangos de IP’s que el gestor va a permitir la conexión, es ahí donde agregamos una nueva línea similar a la loopback en ipv4 pero con la diferencia que tendrá la red o la IP del cliente que tendrá acceso ya sea a una o todas las bases de datos alojadas en el servidor y de igual manera a los usuarios que tendrán acceso a las mismas.

# TYPE  DATABASE        USER            ADDRESS                 METHOD


# IPv4 local connections:
host            all                 all             127.0.0.1/32                trust
host            all                 all             192.168.1.0/24            trust

# IPv6 local connections:
host            all                 all             ::1/128                         trust

# Allow replication connections from localhost, by a user with the
# replication privilege.

#host        replication     Wendy        127.0.0.1/32               trust
#host        replication     Wendy        ::1/128                         trust




Para la configuración de parte de un cliente para conectarse a un cluster remoto es el siguiente:


  1. Primero abrimos el pgAdmin para iniciar la aplicación de postgreSQL
  2. Se crea una nueva conexión desde el ícono con forma de “enchufe”.
  3. En el asistente, nos ubicamos en la ficha Properties e ingresamos el nombre del servidor, el host, el puerto por el cual escuchará el servidor y elegimos la base de datos a la cual nos conectaremos, el Username es el usuario el cual tiene permiso para autenticarse en el servidor remoto.
  4. Luego nos ubicamos en la ficha Advanced y quitamos los checkboxes activos y nuevamente agregamos la IP del servidor al que se conectará, al final se da clic en Aceptar y de ésta forma ya esta hecha la nueva conexión al servidor.
  5. En la nueva conexión creada damos clic derecho/Conectar
  6. En el cuadro de diálogo que aparece para conectar al servidor ingresamos la contraseña que tenemos asignada en nuestra máquina.
  7. Nos conectamos a la base de datos del servidor, en la cual está físicamente la base de datos.
    Ahora podremos crear o modificar tablas.

Ilustración de la Topologia realizada:

 



Grupo de Trabajo:




José Ricardo Interiano Ruíz



Wendy Iliana Luna López



Henry Alberto Quijano Peñate




Moisés Alejandro Pérez Chávez




Leer nota completa...

sábado, 19 de mayo de 2012