Instalación de PostgreSQL
Para una instalación de nuevas, o una actualización desde una versión previa de PostgreSQL:
Cree la cuenta de superusuario PostgreSQL. Éste es el usuario bajo el que corre el servidor. Para el uso en producción, deberá usted crear una cuenta de usuario diferente, sin privilegios (habitualmente se utiliza (postgres). Si no tiene usted acceso como root, o quiere evitarse este paso, su propia cuenta de usuario es suficiente.
Ejecutar PostgreSQL como root, bin, o cualquier otra cuenta con permisos de acceso especiales es un riesto de seguridad, y por ello está permitido.
No necesitará usted compilar e instalar bajo esta cuenta (aunque puede hacerlo). Se le dirá cuando necesite conectarse como el superusuario de la base de datos.
Si no está usted actualizando un sistema existente, salte a paso 4.
Ahora necesitará usted realizar una copia de seguridad (backup) de su base de datos existente. Si tiene una instalación razonablemente reciente de su base de datos (posterior a la 6.0), conseguirá un vaciado de la misma tecleando:
$ pg_dumpall > db.out |
Asegurese de utilizar el comando pg_dumpall de la versión que está usted ejecutando actualemente. Pero no utilice el script de 6.0 o el superusuario PostgreSQL tomará la propiedad de todo. Si es esta la versión que tiene usted, debería usted utilizar el comando pg_dumpall de una versión 6.x.x posterior. El correspondiente a la versión 7.0 no trabajará en bases de datos anteriores. Si está usted actualizando desde una versión previa a Postgres95 v1.09, deberá usted realizar un backup de su base de datos, instalar Postgres95 v1.09, restaurar su base de datos, y realizar el backup de nuevo.
Debe usted asegurarse de que su base de datos no se actualiza durante su backup. Si es necesario, pare el postmaster, edite los permisos del fichero /usr/local/pgsql/data/pg_hba.conf para permitirle a usted sólo su uso, y relance de nuevo postmaster. |
Si está usted actualizando un sistema existente, mate ahora el servidor de la base de datos. Teclee:
$ ps ax | grep postmaster |
263 ? SW 0:00 (postmaster) 777 p1 S 0:00 grep postmaster |
$ ps ax | grep postmaster |grep -v grep |
$ kill pid |
En sistemas que arrancan PostgreSQL en el durante la secuencia de arranque de la máquina, probáblemente se encontrara un fichero startup que cumplirá el mismo cometido. Por ejemplo, en un sistema Linux RedHat, se debería encontrar que
|
También deberá trasladar los directorios anteriores a otro sitio. Teclee lo siguiente:
$ mv /usr/local/pgsql /usr/local/pgsql.old |
Configure el código fuente para su sistema. Este es el paso en el que puede usted especificar su ruta de instalación actual para el proceso de construcción, y hacer elecciones sobre lo que tenga usted instalado. Cambiese al subdirectorio src y teclee:
$ ./configure |
./configure --help |
Selecciona un directorio base diferente para la instalación de PostgreSQL. La opción de defecto es /usr/local/pgsql.
Si quiere usted utilizar locales.
Le permitirá utilizar páginas de caracteres multibyte. Se emplea principalmente para lenguajes como japonés, coreano o chino.
Construye la interface Perl. Note por favor que la interface Perl se instalará en el lugar habitual de los módulos Perl (habitualmente bajo /usr/lib/perl), de modo que deberá usted tener acceso root para realizar esta opción correctamente.
Construye el paquete del driver ODBC.
Construye las librerías de interface y los programas que requieren Tcl/Tk, incluyendo libpgtcl, pgtclsh y pgtksh.
Compile el programa. Teclee:
$ gmake |
La última línea que se muestre por el proceso debería ser:
All of PostgreSQL is successfully made. Ready to install. |
Instale el programa. Teclee:
$ gmake install |
Dígale a su sistema como encontrar las nuevas librerías compartidas. Cómo hacer esto varía de unas plataformas a otras. Lo que tiende a trabajar en todas partes es fijar la variable de entorno LD_LIBRARY_PATH:
$ LD_LIBRARY_PATH=/usr/local/pgsql/lib $ export LD_LIBRARY_PATH |
En algunos sistemas se prefiere el siguiente método, pero debe usted tener acceso root. Edite el fichero /etc/ld.so.conf y añada una línea
/usr/local/pgsql/lib |
En la duda, diríjase a las páginas de manual de su sistema. Si recibe usted más tarde un mensaje como
./psql: error in loading shared libraries libpq.so.2.1: cannot open shared object file: No such file or directory |
Cree la instalación de la base de datos. Para hacer esto, debe usted conectarse como su cuenta de superusuario de PostgreSQL. No trabajará como root.
$ mkdir /usr/local/pgsql/data $ chown postgres /usr/local/pgsql/data $ su - postgres $ /usr/local/pgsql/initdb -D /usr/local/pgsql/data |
La opción -D especifica la situación donde se almacenarán los datos. Puede usted utilizar cualquier otro path, porque no tiene porqué estar bajo el directorio de la instalación. Sólo asegúrese de que la cuenta del superusuario puede escribir en el directorio (o crearlo) antes de arrancar initdb. (Si estaba usted siguiendo los pasos de la instalación hasta ahora como el superusuario de PostgreSQL, puede que tenga usted que conectarse como root temporalmente para crear el directorio de datos.)
Los pasos previos deberían haberle indicado como arrancar el servidor de la base de datos. Ahagamos ahora:
$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data |
Si está usted actualizando desde una instalación anterior, extraiga sus datos con:
$ /usr/local/pgsql/bin/psql < db.out |
Con todo esto concluímos la instalación propiamente dicha. Para hacer su vida más productiva y agradable, debería mirar los siguientes pasos y sugerencias opcionales.
La vida será más conveniente si fija usted algunas variables de entorno. Primero, probablemente quiera usted incluir /usr/local/pgsql/bin (o su equivalente) en su PATH. Para hacer esto, añada lo siguiente en su fichero de arranque de la shell, tal como ~/.bash_profile (o /etc/profile, si quiere usted que afecte a todos los usuarios):
PATH=$PATH:/usr/local/pgsql/bin |
Aún más, si usted fija la variable PGDATA en el entorno del superusuario de PostgreSQL, podrá usted omitir la opción -D para postmaster y initdb.
Probáblemente quiera usted instalar la documentación man y HTML. Teclee
$ cd /usr/src/pgsql/postgresql-7.0/doc $ gmake install |
MANPATH=$MANPATH:/usr/local/pgsql/man |
La documentación está también disponible en formato Postscript. Si tiene usted una impresora Postscript, o tiene su impresora ya preparada para aceptar ficheros Postscript utilizando un filtro de impresión, podrá imprimir la Guía de Usuario simplemente tecleando
$ cd /usr/local/pgsql/doc $ gunzip -c user.ps.tz | lpr |
$ alias gshp='gs -sDEVICE=laserjet -r300 -dNOPAUSE' $ export GS_LIB=/usr/share/ghostscript:/usr/share/ghostscript/fonts $ gunzip user.ps.gz $ gshp -sOUTPUTFILE=user.hp user.ps $ gzip user.ps $ lpr -l -s -r manpage.hp |
Probáblemente debería empezar por leer la Guía del Administrador si es usted completamente nuevo en PostgreSQL, porque contiene información sobre como declarar usuarios y la autenticación a la base de datos.
Habitualmente, querrá usted modificar su computadora de modo que arranque el servidor de base de datos siempre que se ponga en marcha. Esto no es necesario; el servidor PostgreSQL se puede ejecutar normalmente desde cuentas no privilegiadas sin intervención de root.
Diferentes sistemas tienen diferentes convenciones para arrancar demonios en el momento de la puesta en marcha, de modo que deberá usted familiarizarse primer con ellos. La mayoría de los sitemas tienen un fichero /etc/rc.local o /etc/rc.d/rc.local que en la mayoría de los casos no es un mal lugar para situar este comando. Siempre que lo haga, el postmaster deberá ser ejecutado por el superusuario de PostgreSQL (postgres) y no por root o cualquier otro usuario. Por ello, probáblemente quiera usted formar las líneas de comando iniciandolas con su -c '...' postgres.
Podría ser interesante mantener un registro de las salidas del servidor. Para arrancar de esta forma el servidor, intente:
nohup su -c 'postmaster -D /usr/local/pgsql/data > server.log 2>&1' postgres & |
Aquí tenemos algunas otras sugerencias específicas del sistema operativo:
Edite el fichero rc.local en NetBSD o el fichero rc2.d en SPARC Solaris 2.5.1 para que contenga la siguiente línea:
su postgres -c "/usr/local/pgsql/bin/postmaster -S -D /usr/local/pgsql/data" |
En FreeBSD RELEASE-2.2 editE /usr/local/etc/rc.d/pgsql.sh para que contenga las siguientes líneas y hégale chmod 755 y chown root:bin.
#!/bin/sh [ -x /usr/local/pgsql/bin/postmaster ] && { su -l pgsql -c 'exec /usr/local/pgsql/bin/postmaster -D/usr/local/pgsql/data -S -o -F > /usr/local/pgsql/errlog' & echo -n ' pgsql' } |
En Linux RedHat, añada un fichero /etc/rc.d/init.d/postgres.init que se basará en el ejemplo que se encuentra en contrib/linux/. Y a continuación haga in link simbólico a este fichero desde /etc/rc.d/rc5.d/S98postgres.init.
Ejecute los test de regresión. Los test de regresión son un conjunto de pruebas que verifican que PostgreSQL corre en su máquina en la forma en que los desarrolladores esperan que lo haga. Debería hacer esto definitivamente antes de poner una servidor en uso en producción. El fichero /usr/src/pgsql/postgresql-7.0/src/test/regress/README contiene instrucciones detalladas para correr e interpretar los tests de regresión.