Cómo instalar PostgreSQL 10 usando código fuente en Linux


PostgreSQL también llamado Postgres es un sistema de base de datos relacional de objetos de fuente abierta y potente. Es una base de datos de nivel empresarial que tiene características como el registro de escritura anticipada para la tolerancia a fallas, la replicación asíncrona, el Control de concurrencia de múltiples versiones (MVCC), las copias de seguridad en línea/en caliente, la recuperación en un punto en el tiempo, el planificador/optimizador de consultas, los espacios de tabla, las transacciones anidadas (puntos de salvaguarda). ) etc.

Postgres tiene su última versión 10 lanzada el 5 de octubre de 2017 por el grupo de desarrollo global de postgres.

Las características de la nueva versión son las siguientes:

  • Logical Replication: This feature enables replication of individual database objects (be it rows, tables, or selective databases) across standby servers. It provides more control over data replication. Implemented by using publisher-subscriber model.
  • Quorum Commit for Synchronous Replication: In this feature, dba can now specify the number of standby’s that acknowledge that the changes to database has done, so that data can be considered safely written.
  • SCRAM-SHA-256 authentication: Improved security that existing MD5-based password authentication and storage.
  • Improved parallel query execution.
  • Declarative table partitioning.
  • Full text search support for JSON and JSONB.

En este artículo, explicaremos cómo instalar PostgreSQL 10 utilizando la instalación de código fuente en sistemas Linux. Aquellos que buscan una instalación fácil desde el administrador de paquetes de distribución pueden seguir estas guías a continuación.

  1. How to Install PostgreSQL 10 on CentOS/RHEL and Fedora
  2. How to Install PostgreSQL 10 on Debian and Ubuntu

Instalar PostgreSQL utilizando código fuente

Como postgres es una base de datos de código abierto, se puede crear a partir del código fuente de acuerdo con las necesidades/requisitos de cada uno. podemos personalizar el proceso de compilación e instalación al proporcionar una o más opciones de línea de comandos para varias características adicionales.

La principal ventaja de usar la instalación del código fuente es que puede ser altamente personalizado durante la instalación.

1. Primero instale los requisitos previos requeridos, como gcc , readline-devel y zlib-devel usando el administrador de paquetes como se muestra .

# yum install gcc zlib-devel readline-devel     [On RHEL/CentOS]
# apt install gcc zlib1g-dev libreadline6-dev   [On Debian/Ubuntu]

2. Descargue el archivo tar del código fuente desde el sitio web oficial de postgres utilizando el siguiente comando wget directamente en el sistema.

# wget https://ftp.postgresql.org/pub/source/v10.0/postgresql-10.0.tar.bz2

3. Use el comando tar para extraer el archivo tarball descargado. Se creará un nuevo directorio llamado postgresql-10.0 .

# tar -xvf postgresql-10.0.tar.bz2
# ll
total 19236
-rw-------. 1 root root      933 Mar 18  2015 anaconda-ks.cfg
-rw-r--r--. 1 root root     8823 Mar 18  2015 install.log
-rw-r--r--. 1 root root     3384 Mar 18  2015 install.log.syslog
drwxrwxrwx  6 1107 1107     4096 Oct  3  2017 postgresql-10.0
-rw-r--r--  1 root root 19639147 Oct  3  2017 postgresql-10.0.tar.bz2

4. El siguiente paso para el procedimiento de instalación es configurar el código fuente descargado eligiendo las opciones de acuerdo con sus necesidades.

# cd postgresql-10.0

use ./configure --help para obtener ayuda sobre varias opciones.

# ./configure --help

Defaults for the options are specified in brackets.
Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local/pgsql]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

5. Ahora cree un directorio en el que desee instalar archivos postgres y use la opción de prefijo con configure.

# mkdir /opt/PostgreSQL-10/
# ./configure --prefix=/opt/PostgreSQL-10
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking which template to use... linux
checking whether NLS is wanted... no
checking for default port number... 5432
checking for block size... 8kB
checking for segment size... 1GB
checking for WAL block size... 8kB
checking for WAL segment size... 16MB
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc supports -Wdeclaration-after-statement... yes
checking whether gcc supports -Wendif-labels... yes
checking whether gcc supports -Wmissing-format-attribute... yes
checking whether gcc supports -Wformat-security... yes
checking whether gcc supports -fno-strict-aliasing... yes
checking whether gcc supports -fwrapv... yes
checking whether gcc supports -fexcess-precision=standard... no
....

6. Después de la configuración, a continuación, comenzaremos a construir postgreSQL utilizando el siguiente comando de make .

# make

Una vez que finaliza el proceso de compilación, ahora instale postgresql usando el siguiente comando.

# make install

Postgresql 10 se ha instalado en el directorio /opt/PostgreSQL-10 .

7. Ahora cree un usuario y directorio de postgres que se usará como directorio datos para inicializar el clúster de la base de datos. El propietario de este directorio de datos debe ser usuario de postgres y los permisos deben ser 700 y también establecer la ruta de acceso de los archivos binarios de postgresql para nuestra facilidad.

# useradd postgres
# passwd postgres
# mkdir /pgdatabase/data
# chown -R postgres. /pgdatabase/data
# echo 'export PATH=$PATH:/opt/PostgreSQL-10/bin' > /etc/profile.d/postgres.sh

8. Ahora inicie la base de datos con el siguiente comando como usuario de postgres antes de usar cualquier comando de postgres.

# su postgres
$ initdb -D /pgdatabase/data/ -U postgres -W

Donde -D es la ubicación de este grupo de bases de datos o podemos decir que es el directorio de datos donde queremos inicializar el grupo de bases de datos, -U para el nombre de superusuario de la base de datos y - W para la solicitud de contraseña para db superuser.

Para obtener más información y opciones, podemos consultar initdb –help .

9. Después de inicializar la base de datos, inicie el grupo de bases de datos o si necesita cambiar el puerto o la dirección de escucha del servidor, edite el archivo postgresql.conf en el directorio de datos del servidor de la base de datos.

$ pg_ctl -D /pgdatabase/data/ -l /pglog/db_logs/start.log start

10. Después de iniciar la base de datos, verifique el estado del proceso del servidor de Postgres usando los siguientes comandos.

$ ps -ef |grep -i postgres
$ netstat -apn |grep -i 51751

Podemos ver que el clúster de la base de datos funciona bien y los registros de inicio se pueden encontrar en la ubicación especificada con la opción -l al iniciar el clúster de la base de datos.

11. Ahora conéctese al clúster de la base de datos y cree la base de datos con los siguientes comandos.

$ psql -p 51751
postgres=# create database test;
postgres=# \l to list all databases in cluster
postgres=# \q to quit form postgres console

¡Eso es! En nuestros próximos artículos, cubriré la configuración, la configuración de la replicación y la instalación de la herramienta pgAdmin, hasta que estemos atentos a Tecmint.