Sigueme por RSS! RSS

Administración básica de PostgreSQL [parte1 ]


El presente post es una recopilación sobre la administración básica de base de datos con PostgreSQL, aclaro que no soy un experto en la materia, mi intención es que el siguiente material pueda servir a quienes se inician en el tema.

Algunos enlaces oficiales:
http://www.postgresql.org -> sitio oficial
http://www.enterprisedb.com -> soporte comercial
http://pgmag.org -> revista
http://www.postgresql.org.es -> comunidad española

nota
las pruebas del post están testeadas sobre Ubuntu (GNU/Linux).

La descarga
las descargas la hacemos desde el apartado download de postgresql.org.
Seleccionas tu plataforma, la arquitectura(32/64bits) y descargas..

También puedes ir directo a enterprisedb.com para descargar el instalador:
- http://www.enterprisedb.com/downloads/postgres-postgresql-downloads

La instalación (para el ejemplo nos bajamos el instalador postgresql-9.1.4-1-linux-x64.run de enterprisedb.com).

1.- primero verificamos si esta instalado,
* echando un vistazo a los procesos:
ps auxww | grep ^postgres

* o chequeando el status, si lo esta, nos mostrara el process ID:
/etc/init.d/postgresql-9.1 status
pg_ctl: server is running (PID: 4449)

nos indica el PID del servidor que esta levantado contra el cluster.

si no, muestra algo similar a lo siguiente:
root@3ODI-009:/# /etc/init.d/postgresql-9.1 status
bash: /etc/init.d/postgresql-9.1: No existe el archivo o el directorio

2.- nos movemos al directorio donde se encuentre, en mi caso está en el escritorio
cd /home/usuario/Escritorio

- lo hacemos ejecutable
chmod +x postgresql-9.1.4-1-linux-x64.run

(ejecutar la versión de 32 bits o la de 64 dependiendo del sistema operativo instalado)

- lo ejecutamos
sudo ./postgresql-9.1.4-1-linux-x64.run

Clic aquí para mostrar/ocultar imágenes de la instalación
- Se inicia el proceso de configuración previo al de instalación:

- seleccionamos la ruta donde instalaremos PostgreSQL, por defecto lo envía a /opt/

- seleccionamos la ruta donde se instalará el clúster (nuestro directorio de datos):

- se introduce la contraseña que tendrá el usuario postgres:
- se setea el puerto que usara el servidor:

- se selecciona la configuración regional o se deja la que viene por defecto:

-se inicia el proceso de instalación:
-esperamos que culmine..
- listo!!

- luego de que termina el proceso de instalación, se inicia el servidor y se crea el desinstalador (uninstall-postgresql)

- Directorio de instalación: si nos vamos al directorio donde instalamos el servidor, veremos lo siguiente:
root@3ODI-009:~# ls /opt/PostgreSQL/9.1
bin   doc      installer  pgAdmin3   scripts  stackbuilder
data  include  lib      pg_env.sh  share    uninstall-postgresql

- veamos una descripción de los directorios en /opt/PostgreSQL/9.1:
- bin: almacena los archivos ejecutables del sistema, psql, postgres, pg_ctl, etc.
- doc: documentación del sistema.
- include: almacena archivos (de extensión .h) para C/C++
- lib: librerías del sistema
- man: manuales de los comandos
- share: archivos adicionales
- data: donde reside el cluster de PostgreSQL

- el cluster:
root@3ODI-009:~# ls /opt/PostgreSQL/9.1/data
base     pg_hba.conf    pg_multixact  pg_stat_tmp  pg_twophase    postgresql.conf
global     pg_ident.conf    pg_notify     pg_subtrans  PG_VERSION    postmaster.opts
pg_clog  pg_log        pg_serial     pg_tblspc    pg_xlog    postmaster.pid

dos archivos que tocaremos mucho ya sea para configurar PostgreSQL o el nivel de acceso, serán postgresql.conf y pg_hba.conf respectivamente.

- postgresql.conf: define la configuración por defecto del servidor
- puerto de escucha
- parámetros de uso de memoria
- configuración del log
- configuración del idioma
- etc.

pg_hba.conf: permite restringir el acceso según:
- dirección IP del cliente.
- bases de Datos.
- nombre de usuarios y grupos.
- Requiere un reload para los cambios.

- Los binarios:
root@3ODI-009:~# ls /opt/PostgreSQL/9.1/bin/
clusterdb   ecpg           pg_controldata  pg_test_fsync  psql
createdb    initdb           pg_ctl           pg_upgrade     psql.bin
createlang  oid2name           pg_dump           pltcl_delmod   reindexdb
createuser  pg_archivecleanup  pg_dumpall      pltcl_listmod  vacuumdb
dropdb        pg_basebackup      pg_resetxlog    pltcl_loadmod  vacuumlo
droplang    pgbench           pg_restore      postgres
dropuser    pg_config           pg_standby      postmaster


psql es el cliente interactivo de línea de comandos de PostgreSQL.

Luego de que termina la instalación, podemos acceder a psql colocando la ruta donde se encuentra instalado e indicandole con que usuario deseamos loguearnos:
/opt/PostgreSQL/9.1/bin/psql -U postgres

es necesario declarar las variables de entorno requeridas por PostgreSQL, para eso, editamos el archivo de configuración del interprete de comandos (.bashrc) y conseguiremos no sólo lo primero, sino, poder acceder a psql colocando unicamente "psql" en la consola y el password del usuario por defecto.

¿Qué pasa si coloco psql en la consola sin haber editado el .bashrc?
hay que indicarle al interprete de comandos donde se encuentra el psql instalado o nos mostrará un bonito mensaje:

root@3ODI-009:~# psql
El programa «psql» no está instalado.  Puede instalarlo escribiendo:
apt-get install postgresql-client-common

en este caso, el psql si se encuentra instalado, pero el interprete de comandos no sabe donde se encuentra, así que (en el caso de Ubuntu) nos vamos a /home/tu_usuario/, y presionamos CTRL+H, o nos vamos a menú -> ver -> mostrar los archivos ocultos y buscamos el archivo .bashrc.

.bashrc: es el archivo de configuración de la terminal, se ejecuta cuando abrimos la consola, en el podemos indicar entre otras cosas, atajos a determinados comandos, automatizar procesos, etc.

si no encuentras el archivo .bashrc en la carpeta indicada, no hay problema, creamos uno nuevo, abrimos el gedit y agregamos la siguiente linea:
# le indicamos donde están nuestras variables de entorno
. /opt/PostgreSQL/9.1/pg_env.sh

guardamos y listo, como hemos editado el archivo de configuración, ahora debemos cerrar la terminal y abrirla de nuevo para poder correr los cambios, así que lo hacemos y continuamos:
root@3ODI-009:~# psql
Password:
psql.bin (9.1.4)
Type "help" for help.

postgres=#

ya podemos interactuar con PostgreSQL a través del cliente psql.

Dentro del pg_env.sh encontraremos algo similar a lo siguiente:
#!/bin/sh
# The script sets environment variables helpful for PostgreSQL

export PATH=/opt/PostgreSQL/9.1/bin:$PATH
export PGDATA=/opt/PostgreSQL/9.1/data
export PGDATABASE=postgres
export PGUSER=postgres
export PGPORT=5432
export PGLOCALEDIR=/opt/PostgreSQL/9.1/share/locale
export MANPATH=$MANPATH:/opt/PostgreSQL/9.1/share/man

al tener las variables definidas en el pg_env.sh, nos evitamos tener que exportarlas siempre que sean requeridas, en cualquier momento se puede acceder a su contenido con un simple echo:
root@3ODI-009:~# echo $PGDATA;
/opt/PostgreSQL/9.1/data


Instalando el pgAdmin3 (Sistema de Gestión de Bases de Datos SGBD) Ver imagen.
sudo apt-get install pgadmin3

Fuentes:
http://www.postgresql.org/
http://es.wikipedia.org/wiki/PostgreSQL

0 comentarios: Suscribete a los comentarios por RSS

Publicar un comentario

- Los comentarios están siendo moderados y serán publicados en la brevedad posible.