Com instal·lar PostgreSQL 10 utilitzant el codi font a Linux


PostgreSQL també anomenat Postgres és un sistema de bases de dades relacional objectes potent i de codi obert. És una base de dades a nivell empresarial que té funcions com ara el registre d'escriptura anticipada per a la tolerància a errors, la replicació asíncrona, el control de concurrència multiversió (MVCC), còpies de seguretat en línia/calentes, recuperació de moments, planificador/optimitzador de consultes, espais de taula, transaccions imbricades (punts de desat). ) etc.

Postgres té la seva darrera versió 10 publicada el 5 d'octubre de 2017 pel grup de desenvolupament global de postgres.

Les característiques de la nova versió són les següents:

  • Replicació lògica: aquesta característica permet la replicació d'objectes de bases de dades individuals (ja siguin files, taules o bases de dades selectives) entre servidors en espera. Proporciona més control sobre la replicació de dades. Implementat mitjançant l'ús del model editor-subscriptor.
  • Commit de quòrum per a la replicació síncrona: en aquesta funció, dba ara pot especificar el nombre de persones en espera que reconeixen que s'han fet els canvis a la base de dades, de manera que les dades es poden considerar escrites de manera segura.
  • Autenticació SCRAM-SHA-256: s'ha millorat la seguretat que l'autenticació i l'emmagatzematge de contrasenyes existents basats en MD5.
  • Execució de consultes paral·leles millorada.
  • Particionament de taules declaratives.
  • Compatibilitat de cerca de text complet per a JSON i JSONB.

En aquest article, explicarem com instal·lar PostgreSQL 10 mitjançant la instal·lació del codi font als sistemes Linux. Aquells que busquen una instal·lació fàcil des del gestor de paquets de distribució poden seguir aquestes guies següents.

  1. Com instal·lar PostgreSQL 10 a CentOS/RHEL i Fedora
  2. Com instal·lar PostgreSQL 10 a Debian i Ubuntu

Instal·leu PostgreSQL mitjançant el codi font

Com que postgres és una base de dades de codi obert, es pot construir a partir del codi font segons les necessitats/requisits d'un. podem personalitzar el procés de creació i instal·lació proporcionant una o més opcions de línia d'ordres per a diverses funcions addicionals.

El principal avantatge d'utilitzar la instal·lació del codi font és que es pot personalitzar molt durant la instal·lació.

1. Instal·leu primer els requisits previs necessaris com ara gcc, readline-devel i zlib-devel mitjançant el gestor de paquets tal com es mostra.

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

2. Baixeu el fitxer tar del codi font des de l'ordre oficial wget directament al sistema.

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

3. Utilitzeu l'ordre tar per extreure el fitxer tarball descarregat. Es crearà un nou directori anomenat 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 següent pas per al procediment d'instal·lació és configurar el codi font descarregat escollint les opcions segons les vostres necessitats.

# cd postgresql-10.0

utilitzeu ./configure --help per obtenir ajuda sobre diverses opcions.

# ./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. Ara creeu un directori on voleu instal·lar fitxers postgres i utilitzeu l'opció de prefix amb 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. Després de la configuració, a continuació començarem a construir postgreSQL utilitzant la següent comanda make.

# make

Un cop finalitzi el procés de compilació, ara instal·leu postgresql mitjançant l'ordre següent.

# make install

Postgresql 10 s'ha instal·lat al directori /opt/PostgreSQL-10.

7. Ara creeu un usuari i un directori de postgres que s'utilitzaran com a directori de dades per inicialitzar el clúster de bases de dades. El propietari d'aquest directori de dades hauria de ser l'usuari de postgres i els permisos haurien de ser 700 i també establir el camí per als binaris de postgresql per a la nostra facilitat.

# 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. Ara inicialitzeu la base de dades amb l'ordre següent com a usuari de postgres abans d'utilitzar qualsevol ordre de postgres.

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

On -D és la ubicació d'aquest clúster de bases de dades o podem dir que és el directori de dades on volem inicialitzar el clúster de bases de dades, -U per al nom del superusuari de la base de dades i - W per sol·licitar la contrasenya per al superusuari db.

Per a més informació i opcions podem consultar initdb –help.

9. Després d'iniciar la base de dades, inicieu el clúster de bases de dades o, si necessiteu canviar el port o l'adreça d'escolta del servidor, editeu el fitxer postgresql.conf al directori de dades del servidor de bases de dades.

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

10. Després d'iniciar la base de dades, verifiqueu l'estat del procés del servidor Postgres mitjançant les ordres següents.

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

Podem veure que el clúster de bases de dades funciona bé i els registres d'inici es poden trobar a la ubicació especificada amb l'opció -l mentre s'inicia el clúster de bases de dades.

11. Ara connecteu-vos al clúster de bases de dades i creeu la base de dades mitjançant les ordres següents.

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

Això és! en els nostres propers articles, parlaré de la configuració, la configuració de la rèplica i la instal·lació de l'eina pgAdmin, fins aleshores estigueu atents a Tecmint.