El sitio web de tnotstar

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

  1. 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

  1. 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
    
  1. 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"
    
  2. Crear los directorios data y log 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
    
  3. 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 variable PGLOG 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
    
  4. 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

  1. Para usar las variables de entorno definidas en los pasos anteriores, debemos cerrar la ventana del Símbolo del sistema, y reabrir otra nueva.

  2. 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

  1. Para esto debemos ejecutar el siguiente comando:

    C:\> sudo pg_ctl register -N PostgreSQL -U "NT AUTHORITY\NetworkService" -D "%PGDATA%" -w
    

Notas:

  1. 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"
    
  2. Para eliminar el servicio ejecutamos: sudo pg_ctl unregister -N PostgreSQL.

  1. 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:

  1. En el comando anterior, el flag -g lo utilizo para hacer una instalación global.

  2. Scoop se encargará de inicializar nuestro cluster, en el directorio persistente de PostgreSQL; en mi caso en: C:\Library\Scoop\persist\postgresql.

  3. Por comodidad yo utilizo las variables PGDATA y PGLOG, 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
    
  4. Con la instalación vía Scoop también podremos instalar como un servicio Windows (ver Paso opcional, en la subsección anterior).