Está en la página 1de 8

INDICE

POSTGRESQL...........................................................................................................................2
DEFINICION:............................................................................................................................2
FUNCIONAMIENTO:..............................................................................................................2
CARACTERISTICAS:..............................................................................................................3
1. alta concurrencia............................................................................................................3
2. amplia variedad de tipos nativos...................................................................................3
3. Otras características.......................................................................................................3
INSTALAR POSTGRESQL SERVER EN CENTOS 8..........................................................4
CÓMO INSTALAR EL CLIENTE DE POSTGRESQL EN CENTOS 8..............................5
CÓMO ACCEDER A POSTGRESQL EN CENTOS 8..........................................................5
ACCESO REMOTO A POSTGRESQL EN CENTOS 8........................................................6
CONFIGURAR EL FIREWALL DE CENTOS 8 PARA POSTGRESQL............................7
POSTGRESQL
DEFINICION:
PostgreSQL es un sistema de gestión de bases de datos relacionales orientados a
objetos y de código abierto, publicado bajo la licencia PostgreSQL, similar a la
BSD o la MIT.
Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no
es manejado por una empresa o persona, sino que es dirigido por una comunidad
de desarrolladores que trabajan de forma desinteresada, altruista, libre o
apoyados por organizaciones comerciales. Dicha comunidad es denominada el
PGDG (PostgreSQL Global Development Group).
PostgreSQL no tiene un gestor de defectos, haciendo muy difícil conocer el
estado de sus defectos.

FUNCIONAMIENTO:
Bloques de código que se ejecutan en el servidor. Pueden ser escritos en varios
lenguajes, con la potencia que cada uno de ellos da, desde las operaciones
básicas de programación, tales como bifurcaciones y bucles, hasta las
complejidades de la programación orientada a objetos o la programación
funcional.
Los disparadores (triggers en inglés) son funciones enlazadas a operaciones
sobre los datos.
Algunos de los lenguajes que se pueden usar son los siguientes:
 Un lenguaje propio llamado PL/PgSQL (similar al PL/SQL de oracle).
 C.
 C++.
 Java PL/Java web.
 PL/Perl.
 plPHP.
 PL/Python.
 PL/Ruby.
 PL/sh.
 PL/Tcl.
 PL/Scheme.
 Lenguaje para aplicaciones estadísticas R por medio de PL/R.
PostgreSQL soporta funciones que retornan "filas", donde la salida puede
tratarse como un conjunto de valores que pueden ser tratados igual a una fila
retornada por una consulta (query en inglés).
Las funciones pueden ser definidas para ejecutarse con los derechos del usuario
ejecutor o con los derechos de un usuario previamente definido. El concepto de
funciones, en otros DBMS, son muchas veces referidas como "procedimientos
almacenados" (stored procedures en inglés).

CARACTERISTICAS:
Algunas de sus principales características son:
1. alta concurrencia
Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por
sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una
tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario
obtiene una visión consistente.
2. amplia variedad de tipos nativos
 PostgreSQL provee nativamente soporte para:
 Números de precisión arbitraria.
 Texto de largo ilimitado.
 Figuras geométricas (con una variedad de funciones asociadas).
 Direcciones IP (IPv4 e IPv6).
 Bloques de direcciones estilo CIDR.
 Direcciones MAC.
 Arrays.
Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que
pueden ser por completo indexables gracias a la infraestructura GiST de
PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el
proyecto PostGIS.
3. Otras características
 Claves ajenas también denominadas Llaves ajenas o Claves Foráneas
(foreign keys).
 Disparadores (triggers): Un disparador o trigger se define como una
acción específica que se realiza de acuerdo a un evento, cuando este
ocurra dentro de la base de datos. En PostgreSQL esto significa la
ejecución de un procedimiento almacenado basado en una determinada
acción sobre una tabla específica. Ahora todos los disparadores se
definen por seis características:
 El nombre del disparador o trigger
 El momento en que el disparador debe arrancar
 El evento del disparador deberá activarse sobre...
 La tabla donde el disparador se activará
 La frecuencia de la ejecución
 La función que podría ser llamada
 La función no es correcta
Entonces combinando estas seis características, PostgreSQL le permitirá crear
una amplia funcionalidad a través de su sistema de activación de disparadores
(triggers).
 Vistas.
 Integridad transaccional.
 Herencia de tablas.
 Tipos de datos y operaciones geométricas.
 Soporte para transacciones distribuidas. Permite a PostgreSQL integrarse
en un sistema distribuido formado por varios recursos (p.ej, una base de
datos PostgreSQL, otra Oracle, una cola de mensajes IBM MQ JMS y un
ERP SAP) gestionado por un servidor de aplicaciones donde el éxito
("commit") de la transacción global es el resultado del éxito de las
transacciones locales. Más información en inglés en
http://www.theserverside.com/discussions/thread.tss?
thread_id=21385#95297 y en
http://java.sun.com/javaee/technologies/jta/index.jsp.

INSTALAR POSTGRESQL SERVER EN CENTOS 8


Vamos a instalar PostgreSQL en CentOS 8 usando los paquetes disponibles en
los repositorios de la distribución, así que es buena idea actualizar las listas de
paquetes e incluso el software ya instalado:
~$ sudo yum update -y
Hecho esto ya podemos instalar el paquete que necesitamos, postgresql-server,
con yum:
~$ sudo yum install -y postgresql-server
Tras descargar e instalar el paquete y sus dependencias se crea un nuevo servicio
en CentOS 8, llamado postgresql.service o postgresql si prefieres el nombre
corto.
El servicio postgresql no inicia tras la instalación ni queda habilitado para iniciar
automáticamente en cada arranque de CentOS 8.
Pero aún no podemos iniciarlo, ya que es necesario inicializar las bases de datos
antes de arrancar el servicio. Para esta inicialización lanzaremos el comando
postgresql-setup:
~$ sudo postgresql-setup --initdb
Hecho esto es el momento de iniciar PostgreSQL:
~$ sudo systemctl start postgresql
Si quieres que PostgreSQL arranque automáticamente en cada inicio de CentOS
8, habrá también que habilitar el servicio:
~$ sudo systemctl enable postgresql
Podemos comprobar el estado del servicio PostgreSQL en cualquier momento
mediante el comando systemctl status postgresql.
CÓMO INSTALAR EL CLIENTE DE POSTGRESQL EN
CENTOS 8
Al instalar PostgreSQL Server se instala como dependencia el cliente. En el caso
de que sólo quieras instalar un cliente de PostgreSQL para acceder remotamente
a otro servidor, el paquete que debes instalar es postgresql:
~$ sudo yum install -y postgresql
Entre otros comandos y componentes, se instalará el cliente de consola psql.

CÓMO ACCEDER A POSTGRESQL EN CENTOS 8


Debido al sistema de roles de PostgreSQL no es posible acceder directamente al
servicio con los usuarios del sistema. El único rol que existe de forma predeterminada
es postgres, para los que la instalación de PostgreSQL ha creado también un usuario
postgres de CentOS 8.
Por ello, una forma de conectar a PostgreSQL con el cliente de consola psql puede ser
usando sudo:
~$ sudo -u postgres -i psql
psql (10.6)
Digite «help» para obtener ayuda.
postgres=#
De esta forma, al conectar como usuario postgres de CentOS 8 el cliente psql lo
asociará al rol con el mismo nombre.
Otra forma de acceder es crear un rol y una base de datos para nuestro usuario de
trabajo. Para esto tenemos los comandos createuser y createdb.
De nuevo utilizaremos el usuario postgres para crear el rol de nuestro usuario de
trabajo:
~$ sudo -u postgres -i createuser --interactive
Ingrese el nombre del rol a agregar: chacho
¿Será el nuevo rol un superusuario? (s/n) s
~$
De la misma forma crearemos la base de datos para asociarla al rol de nuestro usuario:
~$ sudo -u postgres -i createdb chacho

Ahora ya podemos iniciar sesión con el cliente psql con nuestro usuario de trabajo, al
tener su propio rol y base de datos:
~$ psql
psql (10.6)
Digite «help» para obtener ayuda.
chacho=#

En este caso hemos creado un rol administrador, con lo que ya podremos crear otros
roles con nuestro usuario de trabajo, sin tener que volver a usar al usuario postgres con
sudo.

ACCESO REMOTO A POSTGRESQL EN CENTOS 8


Por defecto el servicio PostgreSQL sólo admite conexiones locales, así que si
queremos acceder remotamente tendremos que hacer algunos cambios en la
configuración.
Editaremos el archivo de configuración:
~$ sudo nano /var/lib/pgsql/data/postgresql.conf
Y buscaremos la directiva listen_addresses:

...
# - Connection Settings -
#listen_addresses = 'localhost'
# what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for $
# (change requires restart)
...
La directiva se encuentra desactivada, por lo que se toma el valor por defecto,
localhost. Podemos ver en los comentarios que el valor que necesitamos sería ‘*’
y que tal cambio exige reiniciar el servicio.
Así que activamos la directiva con el valor que nos interesa:
listen_addresses = '*'
Guardamos y cerramos el archivo.
No basta con este cambio, ya que hay que configurar el método de autenticación
para los usuarios remotos. Para ello editaremos el archivo pg_hba.conf:
~$ sudo nano /var/lib/pgsql/data/pg_hba.conf
Y añadimos estas líneas al final del archivo:
# Conexiones remotas IPv4
host all all 0.0.0.0/0 md5
Al especificar md5 como método de autenticación estamos indicando que los
usuarios que conecten remotamente deberán identificarse con contraseña.
Guardamos los cambios, cerramos el archivo y reiniciamos PostgreSQL:
~$ sudo systemctl restart postgresql

CONFIGURAR EL FIREWALL DE CENTOS 8 PARA


POSTGRESQL

Lo habitual es que el firewall de CentOS 8 esté activado, así que para permitir
conexiones al servicio PostgreSQL debemos añadir la excepción
correspondiente:
~$ sudo firewall-cmd --permanent --add-
service=postgresql
Y recargaremos la configuración del firewall para aplicar los cambios:
~$ sudo firewall-cmd --reload
Conectar de forma remota a PostgreSQL
Como hemos visto antes, hemos especificado el uso de contraseñas para los
usuarios remotos. Así que debemos crear esas contraseñas para los roles locales
que vayamos a usar remotamente.
Siguiendo con el ejemplo de este tutorial, antes creamos un rol para nuestro
usuario de trabajo. Si queremos acceder al servicio PostgreSQL de nuestro
sistema CentOS 8 desde otra máquina con el rol de nuestro usuario, debemos
crear una contraseña para dicho rol.
Así que conectaremos localmente al servicio PostgreSQL y crearemos la
contraseña para el rol:
~$ psql
psql (10.6)
Digite «help» para obtener ayuda.
chacho=# \password
Ingrese la nueva contraseña:
Ingrésela nuevamente:
chacho=# \q
~$
Ahora accederemos desde el sistema remoto equipado con el cliente psql,
indicando con el parámetro -h la dirección del servidor CentOS 8 y con el
parámetro -U el rol con el que queremos conectar:
~$ psql -h centos8.local -U chacho
Contraseña para usuario chacho:
psql (9.2.24, servidor 10.6)
ADVERTENCIA: psql versión 9.2, servidor versión 10.0.
Algunas características de psql pueden no
funcionar.
Digite «help» para obtener ayuda.
chacho=#
Se nos pide la contraseña del rol que queremos usar y tras facilitarla podemos
trabajar de forma interactiva como si estuviésemos haciendo en local.

También podría gustarte