Está en la página 1de 9

Qu es el PostgreSQL?

PostgreSQL es el componente de su ERP que se encarga de guardar la informacin


de forma estructurada y que permite el acceso rpido a su informacin. Como el
resto de los componentes de las instalaciones que ponemos en el servidor de nuestros
clientes es software libre, como lo es el sistema operativo (Debian GNU / Linux) o el
propio ERP. Nuestras instalaciones responden al siguiente esquema:

Como ocurre con el ERP o el sistema operativo, el hecho que PostgreSQL sea de
software libre y adems gratuito no significa que sea un producto inferior a su
competencia de software propietario. De hecho compite cara a cara con Microsoft SQL
Server y Oracle Database.
Adems, en los ltimos tiempos varias empresas han consolidado con fuerza en
abastecer servicios profesionales y altamente cualificados en apoyo a PostgreSQL.
Empresas como EnterpriseDB o 2ndQuadrant, permiten tener un servicio adicional de
apoyo en el sistema, ms all de donde llega el conocimiento de NaNtic. Estas empresas
ofrecen apoyo a empresas tan importantes como Skype o Amazon, que utilizan
PostgreSQL en sus entornos de produccin.
Esto nos lleva a una de las grandes ventajas del software libre y es que empresas
pequeas y medianas, tienen acceso gratuito a la misma tecnologa que estn utilizando
grandes corporaciones cientos o miles de veces ms grandes.
Las nuevas versiones de PostgreSQL, como la reciente 9.2, adems de aumentar
sustancialmente el rendimiento del sistema, tienen caractersticas avanzadas como la
replicacin que ya estn disfrutando algunos de nuestros clientes. La replicacin en
tiempo real, permite tener un segundo servidor con la misma informacin que el servidor
principal y en caso de fallo del primer sistema poner en marcha el segundo en tan slo
unos minutos y sin prdida de informacin.
El otro gran sistema gestor de bases de datos de software libre, ms conocido y
extendido, es el MySQL.

CARACTERSTICAS

La ltima serie de produccin es la 9.1. Sus caractersticas tcnicas la hacen una de las
bases de datos ms potentes y robustas del mercado. Su desarrollo comenzo hace ms
de 16 aos, y durante este tiempo, estabilidad, potencia, robustez, facilidad de
administracin e implementacin de estndares han sido las caractersticas que ms se
han tenido en cuenta durante su desarrollo. PostgreSQL funciona muy bien con grandes
cantidades de datos y una alta concurrencia de usuarios accediendo a la vez a el sistema.
A continuacin teneis algunas de las caractersticas ms importantes y soportadas por
PostgreSQL:

Generales

Es una base de datos 100% ACID.

Soporta distintos tipos de datos: adems del soporte para los tipos base,
tambin soporta datos de tipo fecha, monetarios, elementos grficos, datos
sobre redes (MAC, IP ...), cadenas de bits, etc. Tambin permite la creacin de
tipos propios.
Incluye herencia entre tablas, por lo que a este gestor de bases de datos se le
incluye entre los gestores objeto-relacionales.
Copias de seguridad en caliente (Online/hot backups)
Unicode
Juegos de caracteres internacionales
Regionalizacin por columna
Multi-Version Concurrency Control (MVCC)
Multiples mtodos de autentificacin
Acceso encriptado via SSL
SE-postgres
Completa documentacin
Licencia BSD
Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX, SGI
IRIX, Mac OS X, Solaris, Tru64) y Windows 32/64bit.

Alta concurrencia
Mediante un sistema denominado MVCC (Acceso concurrente multiversin, por sus siglas
en ingls) PostgreSQL permite que mientras un proceso escribe en una tabla, otros
accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visin
consistente de lo ltimo a lo que se le hizo commit.

LIMITACIONES

Puntos de recuperacin dentro de transacciones. Actualmente, las


transacciones abortan completamente si se encuentra un fallo durante su
ejecucin.
No soporta tablespaces para definir dnde almacenar la base de datos, el
esquema, los ndices, etc. (versiones antes de la 9.0)
El soporte a orientacin a objetos es una simple extensin que ofrece
prestaciones como la herencia, no un soporte completo.

Ventajas:

Ampliamente popular - Ideal para tecnologias Web.


Fcil de Administrar.
Su sintaxis SQL es estndar y fcil de aprender.
Footprint bajo de memoria, bastante poderoso con
adecuada.
Multiplataforma.
Capacidades de replicacin de datos.
Soporte empresarial disponible.

una configuracin

Estabilidad y confiabilidad legendarias.


En contraste a muchos sistemas de bases de datos comerciales, es extremadamente
comn que compaas reporten que PostgreSQL nunca ha presentado cadas en varios
aos de operacin de alta actividad. Ni una sola vez. Simplemente funciona.
Extensible.
El cdigo fuente est disponible para todos sin costo. Si su equipo necesita extender o
personalizar PostgreSQL de alguna manera, pueden hacerlo con un mnimo esfuerzo, sin
costos adicionales. Esto es complementado por la comunidad de profesionales y
entusiastas de PostgreSQL alrededor del mundo que tambin extienden PostgreSQL
todos los das.
Multiplataforma.
PostgreSQL est disponible en casi cualquier Unix (34 plataformas en la ltima versin
estable), y una versin nativa de Windows est actualmente en estado beta de pruebas.
Diseado para ambientes de alto volumen.

PostgreSQL usa una estrategia de almacenamiento de filas llamada MVCC para


conseguir una mucho mejor respuesta en ambientes de grandes volmenes. Los
principales proveedores de sistemas de bases de datos comerciales usan tambin esta
tecnologa, por las mismas razones.

DESVENTAJAS

En comparacin con MySQL es ms lento en inserciones y actualizaciones, ya


que cuenta con cabeceras de interseccin que no tiene MySQL.
Soporte en lnea: Hay foros oficiales, pero no hay una ayuda obligatoria.
Consume ms recursos que MySQL.
La sintaxtis de algunos de sus comandos o sentencias no es nada intuitiv

Instalacin de PostgreSQL
Lo primero que tenemos que hacer es crear una cuenta que administrar la base de
datos:
Cuenta de administracin de la BD
[localhost]$
[localhost]$
[localhost]$
[localhost]$

su
/usr/sbin/adduser postgres
passwd postgres
exit

Una vez creada la cuenta Postgres crearemos los directorios que utilizaremos para
instalar PostgreSQL con los permisos adecuados:
Creacin de directorios para la correcta instalacin de PostgreSQL
[localhost]$
[localhost]$
[localhost]$
[localhost]$
[localhost]$
[localhost]$
[localhost]$
[localhost]$

su
cd /usr/src
mkdir pgsql
chown postgres:postgres pgsql
cd /usr/local
mkdir pgsql
chown postgres:postgres pgsql
exit

Empezamos con el proceso de compilacin/instalacin:


Proceso de compilacin/instalacin
[localhost]$ su postgres
[localhost]$ cd /usr/src/pgsql
[localhost]$ gunzip -c /local/download/postgresql-6.5.x.tar.gz
| tar xvf [localhost]$ cd /usr/src/pgsql/postgresql-6.5.x/src
[localhost]$ ./configure --prefix=/usr/local/pgsql
--with-tcl --with-perl
[localhost]$ gmake all > make.log 2>&1 &
[localhost]$ tail -f make.log
[localhost]$ gmake install > make.install.log 2>&1 &
[localhost]$ tail -f make.install.log
[localhost]$ exit

Ahora tenemos que decirle al sistema donde poder encontrar las librerias necesarias, para
ello actualizamos el fichero /etc/ld.so.conf:
Actualizacin del fichero de configuracin
[localhost]$ su
[localhost]$ echo /usr/local/pgsql/lib >> /etc/ld.so.conf

[localhost]$ /sbin/ldconfig.
[localhost]$ exit

Tambien tendremos que actualizar el fichero ~/.bash_profile de la cuenta administradora


de la base de datos, en este caso Postgres (si utilizais otro shell que no sea bash,
tendreis que cambiar el archivo correspondiente, en vez de .bash_profile):
Actualizacin del fichero profile
[localhost]$ su postgres
****************************************
Editar el archivo ~/.bash_profile y
anadirle lo siguiente
****************************************
PATH=$PATH:/usr/local/pgsql/bin
MANPATH=$MANPATH:/usr/local/pgsql/man
PGLIB=/usr/local/pgsql/lib
PGDATA=/usr/local/pgsql/data
export PATH MANPATH PGLIB PGDATA
****************************************
Salir para que los cambios surtan efecto
****************************************
[localhost]$ exit

Una vez que hemos terminado de instalar la base de datos y configurar nuestro sistema,
tenemos que inicializarla y arrancarla:
Inicializacin y arranque de la BD
[localhost]$
[localhost]$
[localhost]$
[localhost]$
[localhost]$

su postgres
initdb
cd
nohup postmaster -i > pgserver.log 2>&1 &
exit

Acceder a postgreSQL via PHP/web.


Lo primero es incluir en el archivo /usr/local/pgsql/data/pg_hba.conf la siguiente linea:
host all tu_maquina_IP tu_maquina_NETMASK trust

Y la segunda es dar privilegios de acceso en tu base de datos/tablas al usuario


"Nobody"para que pueda coger los datos de la misma (Nobody es el usuario que ejecuta
el servidor Apache por defecto). Para ello puedes hacer lo siguiente:

Dar privilegios a la BD
***************************************
Suponemos que tenemos una base de datos
llamada prueba, con una tabla llamada
direcciones
***************************************
[localhost]$ su postgres
[localhost]$ psql prueba
prueba=> GRANT SELECT ON direcciones
prueba=> TO nobody;
prueba=> z
prueba=> q
[localhost]$ exit

Instalacin de Apache y PHP como mdulo mismo


Pasamos a la segunda parte de este artculo, para ello procederemos como sigue:
Instalacin de Apache/Php
[localhost]$ su
[localhost]$ cd /usr/src
[localhost]$ gunzip -c /local/download/apache_1.3.x.tar.gz
| tar xvf [localhost]$ gunzip -c /local/download/php-3.0.x.tar.gz
| tar xvf [localhost]$ cd apache_1.3.x
[localhost]$ ./configure --prefix=/usr/local/apache
[localhost]$ cd ../php-3.0.x
[localhost]$ ./configure --with-pgsql=/usr/local/pgsql
--with-apache=../apache_1.3.x --enable-track-vars
--enable-sysvsem --enable-sysvshm
--enable-url-includes
[localhost]$ make
[localhost]$ make install
[localhost]$ cd ../apache_1.3.x
[localhost]$ ./configure --prefix=/usr/local/apache
--activate-module=src/modules/php3/libphp3.a
[localhost]$ make

[localhost]$
[localhost]$
[localhost]$
[localhost]$

make install
cd ../php-3.0.x
cp php3.ini-dist /usr/local/lib/php3.ini
exit

Ya tenemos apache instalado y PHP como mdulo del mismo. Ahora tenemos que hacer
unos cuantos ajustes en la configuracin para que todo funcione. Tenemos que editar el
fichero /usr/local/apache/conf/httpd.conf y aadirle lo siguiente:
Actualizacin del fichero de configuracin
AddType application/x-httpd-php3 .php
DirectoryIndex index.html index.php

Estas dos lineas son las nicas necesarias para que Apache sepa que hacer con un
fichero que contenga cdigo PHP. Existen otras opciones que deberias actualizar en
vuestro fichero /usr/local/apache/conf/httpd.conf para terminar de configurar
Apache, por ejemplo: ServerAdmin, ServerName, DocumentRoot, directivas
"Directory", etc. Los comentarios incluidos en este fichero son autoexplicativos y no
deberiais tener ningun problema para ajustar la configuracin a vuestro sistema. Ahora
slo nos queda arrancar el servidor Apache:
Arranque del servidor
[localhost]$ su
[localhost]$ /usr/local/apache/bin/httpd
-f /usr/local/apache/conf/httpd.conf
[localhost]$ exit

También podría gustarte