Destacados
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Artículo
0
¡votar!

 Introducción a PostgreSQL


Empezando

. Consiguiendo e instalando PostgreSQL

Vamos a describir el proceso de instalación de PostgreSQL para Linux. En nuestro caso hemos utilizado la distribución RedHat 8.0. RedHat utiliza un sistema de gestión de paquetes denominado RPM que permite instalar fácilmente el gestor de base de datos. Además PostgreSQL viene incluido en la distribución estándar por lo que simplemente hemos de instalar los paquetes que nos interesen:

[jav@cable213a078 jav]$ rpm
-Uvh postgresql-7.2.2-1.i386.rpm

En caso de no usar distribuciones basadas en RPM o simplemente por gusto, podemos bajar el código fuente de PostgreSQL de su web. Una vez bajado, lo descomprimimos,

[jav@cable213a078 jav]$ tar xvzf
postgresql-7.2.2-1.tar.gz

nos movemos al directorio resultante y ejecutamos el script de configuración.

[jav@cable213a078 postgresql]$ 
./configure

NOTA: Si algo va mal, o tiene necesidades especiales (un directorio diferente del estándar, compilación para otras arquitecturas...) debería ejecutar

[jav@cable213a078 postgresql]$ ./configure --help

y observar la salida.

Si todo ha ido bien, es hora de compilar. Para ellos ejecutaríamos

[jav@cable213a078 postgresql]$ make

y si no hay errores, nos logueamos como root y ejecutamos

[root@cable213a078 postgresql]# make install

Y ya tenemos PostgreSQL instalado en nuestro equipo.

. Poniendo en marcha el servidor

Veamos ahora cómo hacer funcionar el servidor de base de datos. Lo primero es fijar la variable de entorno que almacenará la ruta hasta el directorio donde guardaremos la información de la base de datos:

[jav@cable213a078 postgresql]$ export PGDATA=/el/path/deseado/data

En nuestro caso:

[jav@cable213a078 postgresql]$ export PGDATA=/home/jav/db/data

El siguiente paso es crear las estructuras necesarias para iniciar el servidor de la base de datos. Esto se consigue con la orden initdb:

[jav@cable213a078 postgresql]$ initdb
The files belonging to this database system will be owned by user "jav".
This user must also own the server process.

Fixing permissions on existing directory /home/jav/db/data... ok
creating directory /home/jav/db/data/base... ok
creating directory /home/jav/db/data/global... ok
creating directory /home/jav/db/data/pg_xlog... ok
creating directory /home/jav/db/data/pg_clog... ok
creating template1 database in /home/jav/db/data/base/1... ok
creating configuration files... ok
initializing pg_shadow... ok
enabling unlimited row size for system tables... ok
creating system views... ok
loading pg_description... ok
vacuuming database template1... ok
copying template1 to template0... ok

Success. You can now start the database server using:

    /usr/bin/postmaster -D /home/jav/db/data
or
    /usr/bin/pg_ctl -D /home/jav/db/data -l logfile start

Siguiendo las instrucciones que amablemente nos da initdb iniciamos el servidor, añadiendo los parámetros -i (para admitir conexiones TCP/IP, ya lo explicaremos más adelante) y -o para obtener formato de fechas europeo en nuestra base de datos:

[jav@cable213a078 db]$ /usr/bin/postmaster -o -i -D /home/jav/db/data &

Tras algunos mensajes de depuración, tenemos el servidor corriendo en nuestra máquina. Ahora crearemos una base de datos para ver que la cosa marcha:

[jav@cable213a078 db]$createdb pepa
CREATE DATABASE

Como nos hemos quedado un poco fríos con la respuesta de PostgreSQL vamos a ver si podemos hacer algo con esta base de datos:

[jav@cable213a078 db]$ psql pepa
Welcome to psql, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit


pepa=# create table provincias(prefijo integer, nombre varchar(20));
CREATE

pepa=# insert into provincias values(987, 'León');
INSERT 16559 1

pepa=# insert into provincias values(91, 'Madrid');
INSERT 16560 1

pepa=# insert into provincias values(923, 'Salamanca');
INSERT 16561 1

pepa=# select * from provincias;
 prefijo |  nombre
---------+-----------
     987 | León
      91 | Madrid
     923 | Salamanca
(3 rows)

Pues bueno, parece que la cosa funciona. Ya tenemos todo en marcha y funcionando. En adelante pasaremos a cosas mayores.

. Administración remota con OpenSSH

En este apartado veremos cómo acceder a un máquina remota (donde está corriendo la base de datos) de modo seguro para administrarla. Para ello utilizaremos ssh que permite establecer conexiones entre máquinas de modo que toda la información que intercambien vaya encriptada.

Lo primero es habilitar el servidor ssh en la máquina a la que pretendamos acceder.ssh utiliza el puerto 22 para las comunicaciones. Una vez cumplido este paso, ya estamos listos para aceptar conexiones remotas.

Ya hemos configurado lo necesario del lado del servidor. Veamos ahora los pasos necesarios del lado del cliente. Distinguiremos entre máquinas Linux y Windows. Las IPs que aparecen en los ejemplos son inventadas (obviamente).

  • En Linux (o Unix) posiblemente ya tengamos el cliente ssh instalado. Si no es así nos dirigiremos al sitio oficial de OpenSSH de donde bajaremos los fuentes, los compilaremos e instalaremos. Dependiendo de la distribución que usemos será más fácil o más difícil encontrar paquetes precompilados que nos ahorren el trabajo.

    Suponiendo que ya tenemos el cliente instalado, es hora de acceder a la máquina remota. Sin entrar en detalles, diremos que basta con:

    [jav@cable213a078 jav]$ ssh bbdd@212.183.213.178
    bbdd@212.183.213.178's password:
    Esta cuenta aloja el trabajo de BBDD
    Directorios:
    -datos: Contiene los ficheros de la base de datos
    -docbd: Contiene los fuentes de la documentación y la documentación en sí. 
            Ejecute make single-html para documentación en un único html o 
    		make multiple-html para documentación en varios html.
    -programa: Contiene el código del programa que acceda a la BBDD
    
    Cualquier duda puede remitirla a tjavier@usuarios.retecal.es o 
    rtf@usuarios.retecal.es
    [bbdd@cable213a078 bbdd]$

    Genéricamente basta con ssh login@IP y se nos pedira el password. Una vez introducido, ya estaremos trabajando en la máquina remota y todo lo que hagamos se ejecutará en ella:

    [bbdd@cable213a078 bbdd]$ ls
    datos  docbd  programa
  • En Windows actuaremos de un modo similar. Lo primero será bajar PuTTY, un cliente para conexiones ssh en windows. PuTTY tiene una interfaz amigable, en la que sólo tendremos que especificar la IP a la que conectarnos en indicar que pretendemos hacer una conexión ssh:
    Conectarse con PuTTY

    El aspecto de PuTTY funcionando es similar al de una consola de Unix. Tras un rato trabajando con PuTTY se nos olvidará que estamos utilizando Windows.

    PuTTY funcionando

    En ocasiones será necesario mover archivos de nuestra máquina local a la remota o viceversa. En Windows existe una aplicación que proporciona una interfaz de usuario a scp (secure copy). Esta aplicación de llama WinSCP y es también muy sencilla de usar, con una configuración muy intuitiva:

    WinSCP

Hemos descrito herramientas que nos servirán para conectarnos a la máquina que aloje la base de datos. Esto será útil para administrarla sin estar físicamente junto a ella y ayuda a que diferentes personas trabajen sin molestarse (n manos teclean más que 2).

Escrito por:
Javier Pinto
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
Copyright © 1998-2010 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon