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.outSi quiere usted conservar las identificación de los objetos (oids), utilice la opción -o al ejecutar pg_dumpall. Sin embargo, a no ser que tenga usted una razón especial para hacer esto, como podría ser utilizar estos identificadores como claves en las tablas, no lo haga.
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.
Atención |
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 postmasterEsto debería listar los números de proceso para una serie de procesos, de un modo similar a:
263 ? SW 0:00 (postmaster) 777 p1 S 0:00 grep postmasterTeclee la siguiente línea, reemplazando pid con el identificador (id) del proceso postmaster (263 en el caso anterior). (No utilice el id del proceso "grep postmaster".) (N. del T. también puede hacerlo con la línea
$ ps ax | grep postmaster |grep -v grepque le dará la misma salida, pero sin incluir la línea correspondiente al mismo proceso "grep". Fin de la N. del T.)
$ kill pid
Sugerencia: 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
$ /etc/rc.d/init.d/postgres.init stopfuncione correctamente para parar la base.
También deberá trasladar los directorios anteriores a otro sitio. Teclee lo siguiente:
$ mv /usr/local/pgsql /usr/local/pgsql.oldcon sus propias rutas particulares.
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:
$ ./configureseguido de todas las opciones que desee usted dar. Para una primera instalación, debería ir todo bien sin dar ninguna. Para obtener una lista completa de las opciones, teclee:
./configure --helpAlgunas de las opciones que se utilizan más a menudo son:
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:
$ gmakeEl proceso de compilación ocupará entre 10 minutos y una hora, variando en función de la máquina y de las opciones elegidas.
La última línea que se muestre por el proceso debería ser:
All of PostgreSQL is successfully made. Ready to install.Recuerde que "gmake" se puede llamar "make" en su sistema.
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_PATHQuizá quiera usted poner estas dos líneas en un script de arranque de su shell, como ~/.bash_profile.
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/libY ahora corra el comando /sbin/ldconfig.
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 directoryentonces es que todo lo anterior era necesario. Símplemente realice este paso de nuevo.
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/dataEsto arrancará el servidor en primer término. Para mandarlo a segundo plano, utilice la opción -S.
Si está usted actualizando desde una instalación anterior, extraiga sus datos con:
$ /usr/local/pgsql/bin/psql < db.outY haga también una copia de seguridad de su anterior fichero pg_hba.conf, así como de todos los demás ficheros que pueda usted haber creado para la autenticación, tales como ficheros de claves de acceso.
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 installEsto instalará ficheros bajo /usr/local/pgsql/doc y /usr/local/pgsql/man. Para permitir a su sistema encontrar la documentación man, necesitará añadir una línea como la siguiente en el fichero de arranque de la shell:
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 | lprAquí tiene lo que debería hacer usted si tiene Ghostscript en su sistema y está escribiendo en una impresora lasejet:
$ 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.hpEn caso de dudas, refierase a sus manuales o a su experto local.
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' }Usted puede colocar las rupturas de líneas como se muestra antes. La shell es capaz de seguir traduciendo más allá del final de la línea si no se ha terminado una expresión. El exec salva un nivel de shell bajo el proceso postmaster, de modo que el padre es init.
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.