Lecturas
Lectura: «Learning PostgreSQL» ―Juba et al.
Fuente(s):
juba-et-al.learning-postgresql_.bk.pdf
.
Procedimientos y tareas comunes
Instalación en Windows 7 a partir de una distribución binaria
Fuente(s):
Paso 1: Preparación de la instalación
- Verificar que tenemos instaladas las librerías de redistribución de Visual C++, requeridas para la versión de PostgreSQL que queremos instalar.
Paso 2: Descargar, descomprimir y preparar directorios y variables de entorno
-
Descargar la distribución binaria de PostgreSQL, desde el sitio de descargas de Enterprise DB:
C:\> cd Library C:\Library> curl -LO https://get.enterprisedb.com/postgresql/postgresql-10.4-1-windows-x64-binaries.zip
-
Descomprimir el archivo descargado en el paso anterior, y renombrar el directorio de PostgreSQL:
C:\Library> unzip -t postgresql-10.4-1-windows-x64-binaries.zip C:\Library> move pgsql PostgreSQL
Opcionalmente, podemos borrar las herramientas de valor añadido que no queramos utilizar:
C:\Library> cd PostgreSQL C:\Library\PostgreSQL> rmdir /s /q "StackBuilder"
-
Crear los directorios
data
ylog
dentro de la carpeta que usaremos para almacenar nuestro cluster y los ficheros de log. Por ejemplo:C:\Library\PostgreSQL> mkdir data C:\Library\PostgreSQL> mkdir log
-
Crear la variable de entorno
PGDATA
, con la ruta a la carpeta de nuestro cluster de base de datos creada en el paso anterior. Opcionalmente se puede crear también la variablePGLOG
con la ruta a la carpeta con nuestros ficheros de log:C:\Library\PostgreSQL> sudo setx PGDATA C:\Library\PostgreSQL\data /m C:\Library\PostgreSQL> sudo setx PGLOG C:\Library\PostgreSQL\log /m
-
Añadir la ruta de los ficheros binarios de PostgreSQL, a la variable de entorno
PATH
de nuestro sistema.C:\Library\PostgreSQL> sudo setx PATH %PATH%;C:\Library\PostgreSQL\bin /m
Paso 3: Inicializar el cluster de bases de datos
-
Para usar las variables de entorno definidas en los pasos anteriores, debemos cerrar la ventana del Símbolo del sistema, y reabrir otra nueva.
-
Con la ruta de los ficheros binarios de PostgreSQL en el
PATH
, ejecutamos ahora el siguiente comando de inicialización de las bases de datos:C:\> initdb --username=postgres --encoding=UTF8 --locale=en --lc-collate=C -D "%PGDATA%" -W
Ahora podremos editar el fichero
%PGDATA%\postgresql.conf
con el fin de ajustar la configuración de nuestros ficheros de log. Por ejemplo, incluyendo las siguientes líneas de configuración:logging_collector = on log_directory = '../log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
Paso opcional: Registrar la instancia como un servicio de Windows
-
Para esto debemos ejecutar el siguiente comando:
C:\> sudo pg_ctl register -N PostgreSQL -U "NT AUTHORITY\NetworkService" -D "%PGDATA%" -w
Notas:
En caso de ser instalado como un servicio, debemos verificar que el usuario
NT AUTHORITY\NetworkService
sea el propietario de los ficheros de nuestro cluster. Por ejemplo:C:\> sudo subinacl /file "%PGDATA%" /setowner="NT AUTHORITY\NetworkService" C:\> sudo subinacl /subdirectories "%PGDATA%\*.*" /setowner="NT AUTHORITY\NetworkService"
Para eliminar el servicio ejecutamos:
sudo pg_ctl unregister -N PostgreSQL
.
-
Finalmente, en caso de no querer registrar PostgreSQL como servicio Windows, podremos usar los siguientes comandos para iniciar y detener la instancia de manera manual:
C:\> pg_ctl start C:\> pg_ctl stop
Instalación en Windows 7 usando Scoop
Paso único: Ejecutar la instalación de PostgreSQL
C:\> scoop install -g postgresql
Notas:
En el comando anterior, el flag
-g
lo utilizo para hacer una instalación global.Scoop se encargará de inicializar nuestro cluster, en el directorio persistente de PostgreSQL; en mi caso en:
C:\Library\Scoop\persist\postgresql
.Por comodidad yo utilizo las variables
PGDATA
yPGLOG
, que he definido así:C:\> sudo setx PGDATA C:\Library\Scoop\persist\postgresql\data /m C:\> sudo setx PGLOG C:\Library\Scoop\persist\postgresql\log /m
Con la instalación vía Scoop también podremos instalar como un servicio Windows (ver Paso opcional, en la subsección anterior).