miércoles, 28 de mayo de 2014

instalación PostgreSQL en centos 6.5

 comando “su” para cambiarnos a modo root.
comando para instalar rpm:
rpm -i http://yum.postgresql.org/9.2/redhat/rhel-5-x86_64/pgdg-centos92-9.2-6.noarch.rpm

instalación de PostgreSql:                                                                                                                       yum install postgresql92-server postgresql92-contrib
chkconfig postgresql-9.2 on
service postgresql-9.2 initdb
nano /var/lib/pgsql/9.2/data/pg_hba.conf 
nano /var/lib/pgsql/9.2/data/postgresql.conf
se modifica listen_addresses='*'
/etc/init.d/postgresql-9.2 restart

en windows sería descargar el programa
luego basta con pulsar en el fichero exe que nos hemos descargado para empezar a ejecutar este programa de instalación.
La primera pantalla que se nos muestra es la bienvenida al instalador de PostgreSQL. A partir de ahora tendremos que pulsar "Next" cada vez que queramos avanzar al siguiente paso.
En el siguiente paso tendremos que definir el directorio donde vamos a instalar todos los programas que vienen con esta versión de PostgreSQL. En nuestro caso, utilizaremos el valor por defecto que el programa nos sugiere.
Una vez que hemos escrito el directorio que queremos utilizar para instalar el programa, pasamos al siguiente paso. En este paso tenemos que definir el directorio de datos en donde se crearán nuestras bases de datos. De nuevo, en nuestro caso utilizaremos el valor por defecto que el programa nos sugiere.
Pasamos al siguiente paso. En este paso tenemos que definir una clave de acceso para nuestra base de datos PostgreSQL. No olvidar esta clave. la clave definida en este paso será tambien la clave que se utilizará para la cuenta de servicio 'postgres' que se creará durante la instalación. Si esta cuenta ya existe, tendremos que utilizar la clave que dicha cuenta tiene asignada. Más adelante podremos cambiar, si queremos, la clave de postgres de la base de datos. Esta clave es totalmente independiente de la clave de la cuenta de servicio 'postgres' en el sistema operativo.
Pasamos al siguiente paso. En este paso tendremos que especificar el puerto que PostgreSQL utilizará para escuchar por conexiones. En nuestro caso dejamos el valor por defecto, 5432.
Una vez que hemos terminado con los pasos básicos, el programa entra en la sección de opciones avanzadas. En este paso tenemos que decidir que 'locale' queremos utilizar y si queremos instalar PL/pgSQL en la base de datos template1. Si no sabeis que responder, os recomiendo elegir "Locale: C" e instalar PL/pgSQL en template1. (template1 es una base de datos por defecto en PostgreSQL que se puede utilizar como plantilla cuando creamos bases de datos. Todo lo que se instala/crea en template1, estará disponible en todas las bases de datos que usen template1 como plantilla).
Una vez que hemos terminado con todos los pasos de configuración, el programa nos informa que está listo para empezar a instalar e inicializar nuestra instalación.
Pulsamos por última vez "Next" y esperamos a que el programa termine de instalar todo.
Una vez terminada la instalación, podremos salir del instalador pulsando "Finish". En este último paso el instalador nos da la opción de arrancar automáticamente un programa llamado "Stack Builder". Este programa puede ser usado para instalar diversos programas adicionales, tanto programas libres como algunos distribuidos por EnterpriseDB. En este artículo no vamos a ver nada relacionado con "Stack Builder" y por eso borramos la elección de arrancarlo automáticamente antes de pulsar "Finish".


arquitectura

PostgreSQL está basado en una arquitectura cliente-servidor. El programa servidor se llama postgres y entre los muchos programas cliente tenemos, por ejemplo, pgaccess (un cliente gráfico) y psql (un cliente en modo texto).
Un proceso servidor postgres puede atender exclusivamente a un solo cliente; es decir, hacen falta tantos procesos servidor postgres como clientes haya. El proceso postmaster es el encargado de ejecutar un nuevo servidor para cada cliente que solicite una conexión.
Se llama sitio al equipo anfitrión (host) que almacena un conjunto de bases de datos PostgreSQL. En un sitio se ejecuta solamente un proceso postmaster y múltiples procesos postgres. Los clientes pueden ejecutarse en el mismo sitio o en equipos remotos conectados por TCP/IP.
Es posible restringir el acceso a usuarios o a direcciones IP modificando las opciones del archivo pg_hba.conf, que se encuentra en /etc/postgresql/pg_hba.conf.
Este  archivo,  junto  con  /etc/postgresql/postgresql.conf son  particularmente importantes, porque algunos de sus parámetros de configuración por defecto provocan multitud de problemas al conectar inicialmente y porque en ellos se especifican los mecanismos de autenticación que usará PostgreSQL para verificar las credenciales de los usuarios.


El servidor, que administra los archivos de las bases de datos, acepta conexiones a las bases de datos de parte de aplicaciones clientes y ejecuta acciones sobre las bases de datos en representación de ellos. El programa servidor de bases de datos se llama postgres.
La aplicación cliente (frontend) que desea ejecutar operaciones en las bases de datos. Las aplicaciones cliente pueden ser muy diversas por naturaleza: podría ser una herramienta con interfaz de texto, una aplicación gráfica, un servidor Web que accede a las bases de datos para mostrar páginas Web, o una herramienta especializada para el mantenimiento de bases de datos.

Historia

El proyecto Postgres de Berkeley

La implementación del DBMS Postgres comenzó en 1986. Los conceptos iniciales para el sistema fueron presentados en The Design of Postgres y la definición del modelo de datos inicial apareció en The Postgres Data Model. El diseño del sistema de reglas fue descrito en ese momento en The Design of the Postgres Rules System. La lógica y arquitectura del gestor de almacenamiento fueron detalladas en The Postgres Storage System.

Postgres ha pasado por varias revisiones importantes desde entonces. El primer sistema de pruebas fue operacional en 1987 y fue mostrado en la Conferencia ACM-SIGMOD de 1988. Lanzamos la Versión 1, descrita en The Implementation of Postgres, a unos pocos usuarios externos en Junio de 1989. En respuesta a una crítica del primer sistema de reglas (A Commentary on the Postgres Rules System), éste fue rediseñado (On Rules, Procedures, Caching and Views in Database Systems) y la Versión 2, que salió en Junio de 1990, lo incorporaba. La Versión 3 apareció en 1991 y añadió una implementación para múltiples gestores de almacenamiento, un ejecutor de consultas mejorado y un sistema de reescritura de reglas nuevo. En su mayor parte, las siguientes versiones hasta el lanzamiento de Postgres95 (ver más abajo) se centraron en mejorar la portabilidad y la fiabilidad.

Postgres forma parte de la implementación de muchas aplicaciones de investigación y producción. Entre ellas: un sistema de análisis de datos financieros, un paquete de monitorización de rendimiento de motores a reacción, una base de datos de seguimiento de asteroides y varios sistemas de información geográfica. También se ha utilizado como una herramienta educativa en varias universidades. Finalmente, Illustra Information Technologies (posteriormente absorbida por Informix) tomó el código y lo comercializó. Postgres llegó a ser el principal gestor de datos para el proyecto científico de computación Sequoia 2000 a finales de 1992.

El tamaño de la comunidad de usuarios externos casi se duplicó durante 1993. Pronto se hizo obvio que el mantenimiento del código y las tareas de soporte estaban ocupando tiempo que debía dedicarse a la investigación. En un esfuerzo por reducir esta carga, el proyecto terminó oficialmente con la Versión 4.2.

Postgres95

En 1994, Andrew Yu y Jolly Chen añadieron un intérprete de lenguage SQL a Postgres. Postgres95 fue publicado a continuación en la Web para que encontrara su propio hueco en el mundo como un descendiente de dominio público y código abierto del código original Postgres de Berkeley.

El código de Postgres95 fue adaptado a ANSI C y su tamaño reducido en un 25%. Muchos cambios internos mejoraron el rendimiento y la facilidad de mantenimiento. Postgres95 v1.0.x se ejecutaba en torno a un 30-50% más rápido en el Wisconsin Benchmark comparado con Postgres v4.2. Además de corrección de errores, éstas fueron las principales mejoras:

El lenguage de consultas Postquel fue reemplazado con SQL (implementado en el servidor). Las subconsultas no fueron soportadas hasta PostgreSQL (ver más abajo), pero podían ser emuladas en Postgres95 con funciones SQL definidas por el usuario. Las funciones agregadas fueron reimplementadas. También se añadió una implementación de la cláusula GROUP BY. La interfaz libpq permaneció disponible para programas escritos en C.

Además del programa de monitorización, se incluyó un nuevo programa (psql) para realizar consultas SQL interactivas usando la librería GNU readline.

Una nueva librería de interfaz, libpgtcl, soportaba clientes basados en Tcl. Un shell de ejemplo, pgtclsh, aportaba nuevas órdenes Tcl para interactuar con el motor Postgres95 desde programas tcl

Se revisó la interfaz con objetos grandes. Los objetos grandes de Inversion fueron el único mecanismo para almacenar objetos grandes (el sistema de archivos de Inversion fue eliminado).

Se eliminó también el sistema de reglas a nivel de instancia, si bien las reglas siguieron disponibles como reglas de reescritura.

Se distribuyó con el código fuente un breve tutorial introduciendo las características comunes de SQL y de Postgres95.

Se utilizó GNU make (en vez de BSD make) para la compilación. Postgres95 también podía ser compilado con un gcc sin parches (al haberse corregido el problema de alineación de variables de longitud doble).

PostgreSQL

En 1996, se hizo evidente que el nombre "Postgres95" no resistiría el paso del tiempo. Elegimos un nuevo nombre, PostgreSQL, para reflejar la relación entre el Postgres original y las versiones más recientes con capacidades SQL. Al mismo tiempo, hicimos que los números de versión partieran de la 6.0, volviendo a la secuencia seguida originalmente por el proyecto Postgres.

Durante el desarrollo de Postgres95 se hizo hincapié en identificar y entender los problemas en el código del motor de datos. Con PostgreSQL, el énfasis ha pasado a aumentar características y capacidades, aunque el trabajo continúa en todas las áreas.



Las principales mejoras en PostgreSQL incluyen:

Los bloqueos de tabla han sido sustituidos por el control de concurrencia multi-versión, el cual permite a los accesos de sólo lectura continuar leyendo datos consistentes durante la actualización de registros, y permite copias de seguridad en caliente desde pg_dump mientras la base de datos permanece disponible para consultas.

Se han implementado importantes características del motor de datos, incluyendo subconsultas, valores por defecto, restricciones a valores en los campos (constraints) y disparadores (triggers).

Se han añadido funcionalidades en línea con el estándar SQL92, incluyendo claves primarias, identificadores entrecomillados, forzado de tipos cadena literales, conversión de tipos y entrada de enteros binarios y hexadecimales.

Los tipos internos han sido mejorados, incluyendo nuevos tipos de fecha/hora de rango amplio y soporte para tipos geométricos adicionales.

La velocidad del código del motor de datos ha sido incrementada aproximadamente en un 20-40%, y su tiempo de arranque ha bajado el 80% desde que la versión 6.0 fue lanzada.