PostgreSQL-7.3.2

Introducción a PostgreSQL7.3.2

Localización de descarga (HTTP):		http://www.ca.postgresql.org/ftpsite/v7.3.2/postgresql-7.3.2.tar.gz
Localización de descarga (FTP):			ftp://ftp8.us.postgresql.org/pub/pgsql/source/v7.3.2/postgresql-7.3.2.tar.gz
Versión usada:					7.3.2
Tamaño del paquete:				11 MB
Estimación del espacio necesario en disco:	68 MB

El paquete PostgreSQL contiene el sistema de gestión de bases de datos relacionales PostgreSQL, utilidades clientes y vínculos para varios lenguajes.

PostgreSQL depende de:
readline-4.3

Instalación de PostgreSQL

Instala PostgreSQL ejecutando los siguientes comandos:

./configure --prefix=/usr &&
make &&
make install

Inicializa un grupo de bases de datos con los siguientes comandos:

mkdir -p /var/pgsql/data &&
useradd -d /var/pgsql/data postgres &&
chown postgres /var/pgsql/data &&
su - postgres -c '/usr/bin/initdb -D /var/pgsql/data'

Arranca el servidor de bases de datos con el siguiente comando:

su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \
        /var/pgsql/data/logfile 2>&1 &'

Ahora podemos crear una base de datos y verificar la instalación:

su - postgres -c '/usr/bin/createdb test'
echo "create table t1 ( name varchar(20), state_province varchar(20) );" \
                | (su - postgres -c '/usr/bin/psql test ')
		
echo "insert into t1 values ('Billy', 'NewYork');" \
                | (su - postgres -c '/usr/bin/psql test ')
echo "insert into t1 values ('Evanidus', 'Quebec');" \
	        | (su - postgres -c '/usr/bin/psql test ')
echo "insert into t1 values ('Jesse', 'Ontario');" \
                | (su - postgres -c '/usr/bin/psql test ')
		
echo "select * from t1;" | (su - postgres -c '/usr/bin/psql test')

Explicación de los comandos

useradd -d /var/pgsql/data postgres : Añade un usuario sin privilegios para lanzar el servidor de bases de datos. Ejecutar el servidor como root es peligroso, y por otro lado, simplemente no funcionará.

su - postgres -c '/usr/bin/initdb -D /var/pgsql/data' : Inicializa el espacio de tablas de las bases de datos. Este comando no debe ejecutarse como root.

su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \ /var/pgsql/data/logfile 2>&1 &' : Inicia el servidor de bases de datos. Este comando debe ejecutarse también por el usuario postgres.

createdb test, create table t1 , insert into t1 values..., select * from t1 : Crea una base de datos, le añade una tabla, inserta varias filas en la tabla y las selecciona para comprobar que la instalación funciona correctamente.

Configuración de PostgreSQL

Ficheros de configuración

$PGDATA/pg_ident.con, $PGDATA/pg_hba.conf, $PGDATA/postgresql.conf

La variable de entorno PGDATA se usa para distinguir un grupo de bases de datos de otro al establecer su valor al directorio que contiene el grupo deseado. Los tres ficheros de configuración se encuentran en cada directorio $PGDATA/. Los detalles sobre el formato de los ficheros y las opciones que pueden usarse se encuentran en:

file:///usr/share/doc/postgresql/html/tutorial.html

Guión postgres para init.d

Crea el guión de arranque de postgres con lo siguiente:

cat > /etc/rc.d/init.d/postgres << "EOF"
#!/bin/bash
# Inicio de $rc_base/init.d/postgres

# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Iniciando el demonio PostgreSQL..."
                su - postgres -c '/usr/bin/pg_ctl start -W -D /var/pgsql/data \
                               -l /var/pgsql/data/logfile -o "-i" '
                evaluate_retval
                ;;

        stop)
                echo "Parando el demonio PostgreSQL..."
                /usr/bin/pg_ctl stop -m smart -D /var/pgsql/data
                evaluate_retval
                ;;

        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                /usr/bin/pg_ctl status -D /var/pgsql/data
                ;;

        *)
                echo "Uso: $0 {start|stop|restart|status}"
                exit 1
                ;;
esac

# Fin de $rc_base/init.d/

EOF
chmod 755 /etc/rc.d/init.d/postgres

Crea los enlaces simbólicos a este fichero en los directorios pertinentes de rc.d con los siguientes comandos:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/postgres ../rc0.d/K26postgres &&
ln -sf ../init.d/postgres ../rc1.d/K26postgres &&
ln -sf ../init.d/postgres ../rc2.d/K26postgres &&
ln -sf ../init.d/postgres ../rc3.d/S34postgres &&
ln -sf ../init.d/postgres ../rc4.d/S34postgres &&
ln -sf ../init.d/postgres ../rc5.d/S34postgres &&
ln -sf ../init.d/postgres ../rc6.d/K26postgres

Contenido

PostgreSQL contiene createdb, createlang, createuser, dropdb, droplang, dropuser, ecpg, initdb, initlocation, ipcclean, pg_config, pg_ctl, pg_dump, pg_dumpall, pg_passwd, pg_restore, pgaccess, pgtclsh, pgtksh, postgres, postmaster, psql y vacuumdb.

Descripciones