Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.
...
# - 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
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.