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 [email protected] [email protected]'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 [email protected] o [email protected] [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:
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.
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:
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).