Arquitectura Del Gestor

11
ARQUITECTURA DEL GESTOR (POSTGRESQL) 2.1 CARACTERISTICAS DE POSTGRESQL La última serie de producción es la 9.1. Sus características técnicas la hacen una de las bases de datos más potentes y robustas del mercado. Su desarrollo comenzo hace más de 16 años, y durante este tiempo, estabilidad, potencia, robustez, facilidad de administración e implementación de estándares han sido las características que más se han tenido en cuenta durante su desarrollo. PostgreSQL funciona muy bien con grandes cantidades de datos y una alta concurrencia de usuarios accediendo a la vez a el sistema. Generales Es una base de datos 100% ACID . Soporta distintos tipos de datos: además del soporte para los tipos base, también soporta datos de tipo fecha, monetarios, elementos gráficos, datos sobre redes (MAC, IP ...), cadenas de bits, etc. También permite la creación de tipos propios. Incluye herencia entre tablas, por lo que a este gestor de bases de datos se le incluye entre los gestores objeto- relacionales. Copias de seguridad en caliente (Online/hot backups) Unicode Juegos de caracteres internacionales Regionalización por columna Multi-Version Concurrency Control (MVCC) Multiples métodos de autentificación Acceso encriptado via SSL SE-postgres

Transcript of Arquitectura Del Gestor

Page 1: Arquitectura Del Gestor

ARQUITECTURA DEL GESTOR

(POSTGRESQL)

2.1 CARACTERISTICAS DE POSTGRESQL

La última serie de producción es la 9.1. Sus características técnicas la hacen una de las bases de datos más potentes y robustas del mercado. Su desarrollo comenzo hace más de 16 años, y durante este tiempo, estabilidad, potencia, robustez, facilidad de administración e implementación de estándares han sido las características que más se han tenido en cuenta durante su desarrollo. PostgreSQL funciona muy bien con grandes cantidades de datos y una alta concurrencia de usuarios accediendo a la vez a el sistema.

Generales

Es una base de datos 100% ACID.

Soporta distintos tipos de datos: además del soporte para los tipos base, también soporta datos de tipo fecha, monetarios, elementos gráficos, datos sobre redes (MAC, IP ...), cadenas de bits, etc. También permite la creación de tipos propios.

Incluye herencia entre tablas, por lo que a este gestor de bases de datos se le incluye entre los gestores objeto-relacionales.

Copias de seguridad en caliente (Online/hot backups)

Unicode

Juegos de caracteres internacionales

Regionalización por columna

Multi-Version Concurrency Control (MVCC)

Multiples métodos de autentificación

Acceso encriptado via SSL

SE-postgres

Completa documentación

Licencia BSD

Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) y Windows 32/64bit.

Alta concurrenciaMediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una

Page 2: Arquitectura Del Gestor

tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit.

2.1.1 ESTRUCTURA DE MEMORIA Y PROCESOS DE LA INSTANCIA

La arquitectura de POSTGRESQL tiene tres componentes elementales, la estructura de memoria para almacenar los datos y el código ejecutable, los procesos que corre el sistema de base de datos y las tareas de cada usuario conectado a la base de datos, y los archivos que sirven para el almacenamiento físico, en disco, de la información de la base de datos.

Estructura de memoriaHay dos clases de memoria, una de ellas compartida por todos los usuarios conectados y otra dedicada al trabajo de cada uno de ellos

El área global del sistema o SGA (Systen Global Area) es el área compartida por todos los usuarios y se divide en tres partes:

Fondo común compartido (Shared Spool), en ella se conserva el diccionario de datos y las áreas compartidas de las órdenes SQL que se solicitan para su procesamiento.

Área de memoria rápida (Database Buffer Cache), donde permanecen los datos traídos por las órdenes SQL de los usuarios conectados a la base de datos.

Área de registros restaurados (Redo Log Buffer), aquí se registran los cambios hechos a la base de datos.

Page 3: Arquitectura Del Gestor

Por cada sesión de usuario se crea también, en memoria, un área específica llamada área global de programa o PGA (Programa Global Area), esta área no se comparte con las otras sesiones de usuario

PROCESOS DE LA INSTANCIA

Se denomina instancia al conjunto de estructuras de memoria y procesos de fondo que acceden a los archivos de base de datos. Es posible que una misma base de datos sea accedida por múltiples instancias; cada una de ellas reside en servidores.

Como Postgres es orientado al objeto, la idea fundamental es la de una clase, donde todas las instancias de esa clase tienen los mismos atributos y cada atributo es de un tipo específico. Además, cada instancia posee un identificador de objeto único (OID). La relación que se hace entre SQL y el modelo de programación orientada a objetos es como sigue: una tabla corresponde a una clase, una fila corresponde a una instancia de una clase y las columnas a los atributos.

Creación de una nueva Clase

Para crear una clase debemos especificar el nombre de la clase, adem´as de los nombre de los atributos y sus tipos de la siguiente forma:

CREATE TABLE guitarras(marca varchar(20),precio int,num_frets int,num_cuerdas int,origen varchar(30));

debemos cuidarnos del hecho de que el sistema distingue entre mayúsculas- minúsculas.

Llenar una Clase con instancias

La declaración insert es para llenar una clase con instancias, es decir, desde el punto de vista de SQL es llenar una tabla con datos. Su sintaxis es la siguiente:

INSERT INTO guitarrasVALUES('Gibson', 650000, 22, 6, 'USA');

Actualizaciones

Update nos permite realizar actualizaciones de instancias que ya existen.

Page 4: Arquitectura Del Gestor

2.1.2 ESTRUCTURAS FÍSICAS DE LA BASE DE DATOS

Es como se guardan los datos en disco. Solo es importante conocerlos si es DBA o desarrollador del motor.

Zona Memoria Compartida

Uno de los aspectos más importantes es que PostgreSQL “no debería” compartir acceso a disco con el sistema operativo, esto es, si es posible que PostgreSQL esté en una partición distinta a “root” (incluso un disco separado, de ser recomendable); por lo que la opción “instalar y usar” no debería ser para instalaciones en producción de PostgreSQL 9.2.

Socket de TCP/IP

Sus opciones de conectividad abarcan TCP/IP, sockets Unix y sockets NT, además de soportar completamente ODBC.

El puerto de escucha TCP del servidor; 5432 de forma predeterminada. Tenga en cuenta que el mismo número de puerto se utiliza para las direcciones IP de todo el servidor. Este parámetro sólo se puede configurar en el arranque del servidor.

Almacenamiento en disco

Algunos de los límites de PostgreSQL son:

Límite Valor

Máximo tamaño base de datoIlimitado (Depende de tu sistema de almacenamiento)

Máximo tamaño de tabla 32 TB

Máximo tamaño de fila 1.6 TB

Máximo tamaño de campo 1 GB

Máximo numero de filas por tabla Ilimitado

Máximo numero de columnas por tabla

250 - 1600 (dependiendo del tipo)

Page 5: Arquitectura Del Gestor

Máximo numero de indices por tabla

Ilimitado

Ficheros Ficheros WAL: PostgreSQL utiliza los denominados ficheros WAL (Write Ahead Log / REDO) para guardar toda la información sobre las transacciones y cambios realizados en la base de datos.

Gestor de ficheros (File Manager o File System).Encargado de asignar espacio en disco y mantener la estructura de los ficheros donde se almacenarán los datos. Además es el responsable de localizar el bloque de información que se requiere solicitándoselo al Gestor de discos del S.O. y proporcionándoselo al Gestor de Datos. Puede implementarse simplemente como un interfaz al Gestor de Ficheros del Sistema Operativo o el SGBD puede tener uno propio.

Gestor de datos (Data Manager).Es el principal componente del SGBD. Entre sus funciones podemos citar:

Acceso a los datos interactuando con el gestor de ficheros propio o del S.O. Asegura que se cumplen los requisitos para mantener la integridad y consistencia

de los datos, además de controlar la seguridad. Sincroniza las operaciones de los usuarios que están accediendo

concurrentemente a la BD. Interviene también en operaciones de respaldos y recuperaciones.

2.1.3 REQUERIMIENTOS PARA INSTALACIÓN.

Un descompresor de ficheros Zip Windows XP los maneja automáticamente; si no tienes uno disponible, instálate WinZip,

Microsoft Installer.

Presente por defecto en Windows 2000, Me y XP, Windows 8 Puedes comprobar si lo tienes instalado seleccionando "Ejecutar..." en el menú Inicio y escribiendo MSIEXEC. Si no aparece un cuadro de diálogo informándote de la versión, debes instalar una versión apropiada:

Sistema operativo: Windows 95/98/Me, NT/2000/XP, Windows 8.

Page 6: Arquitectura Del Gestor

Otro tipo de sistema operativo: GNU/Linux (*),cualquier Unix (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64)

Anda a partir de 512 MB RAM pero de 2GB en adelante será funcional.

30 megabytes de espacio en disco duro para el cogido fuente.

5 megabytes de espacio en disco duro para la instalacion de los ejecutables.

1 megabyte extra para las bases de datos basicas.

3 megabytes de espacio en disco duro para el tarball con el codigo fuente.

Procesador Intel 486 o superior

2.1.4 INSTALACIÓN DEL SOFTWARE DE BD EN MODO TRANSACCIONALUna base de datos en modo transaccional significa que la BD será capaz de que las operaciones de inserción y actualización se hagan dentro de una transacción, es un componente que procesa información descomponiéndola de forma unitaria en operaciones indivisibles, llamadas transacciones, esto quiere decir que todas las operaciones se realizan o no, si sucede algún error en la operación se omite todo el proceso de modificación de la base de datos, si no sucede ningún error se hacen toda la operación con éxito. Una transacción es un conjunto de líneas de un programa que llevan insert o update o delete. Todo aquél software que tiene un log de transacciones (que es la "bitácora" que permite hacer operaciones de commit o rollback), propiamente es un software de BD; aquél que no lo tiene (v.g. D-Base), propiamente no lo es.

En la figura se muestran los pasos (simplificados) para acceder a los datos. El interfaz de usuario está representando al procesador de consultas (usuarios online complejos), al programa de aplicación compilado o a sentencias del LDD compiladas (ADB).

Page 7: Arquitectura Del Gestor

A continuación se tiene un gráfico que ilustra de manera general los componentes más importantes en un sistema PostgreSQL.

2.1.5 VARIABLES DE AMBIENTE Y ARCHIVOS IMPORTANTES PARA INSTALACIÓN.

VARIABLES DE ENTORNO

Antes de arrancar el servidor de base de datos debemos crear la variable de

entorno PGDATA y modificar la variable PATH indispensable para que

PostgreSQL sepa donde se encuentran las datafiles del database system para el

super usuario postgres y donde se encuentran los ejecutables.

Para crear una variable de entorno tenemos que exportarla con el

comando exportseguido del nombre de la variable y su parámetro así:

postgres@debian:~$export PGDATA=/usr/local/pgsql/data/

Page 8: Arquitectura Del Gestor

postgres@debian:~$export PATH=$PATH:/usr/local/postgresql-8.4.0/bin/

Si queremos que cuando nos loguiemos como Postgres nos cargue las variables

de ambiente automáticamente para que no tengamos que hacer el export cada

vez que vamos a arrancar el servidor de bases de datos; editamos el

archivo/home/postgres/.profile e ingresamos las siguientes lineas al final del

archivo:

export export PGDATA=/usr/local/pgsql/data/export PATH=$PATH:/usr/local/postgresql-8.4.0/bin/

o escribiendo estos comandos desde la shell:

postgres@debian:~$ echo “export PGDATA=/usr/local/pgsql/data/” >> /home/postgres/.profile ; echo “export PATH=\$PATH:/usr/local/postgresql-8.4.0/bin/” >> /home/postgres/.profile

cuando hayamos editado el archivo /home/postgres/.profile recargamos los

archivos con el comando source así:

postgres@debian:~$source /home/postgres/.profile

Si queremos podemos hacer lo mismo con el archivo /home/postgres/.bachrc.

Para listar las variables de entorno usamos el comando env y para eliminar una

variable usamos unset pasándole como parámetro el nombre de la variable a

borrar.

ARCHIVOS IMPORTANTES

Los archivos principales de PostgreSQL:

pg_hba.conf: Este fichero se utiliza para definir los diferentes tipos de accesos que un usuario tiene en el cluster, es decir, para definir como, donde y desde que sitio un usuario puede utilizar nuestro cluster PostgreSQL.

pg_ident.conf: Este fichero se utiliza para definir la información necesaria en el caso que utilicemos un acceso del tipo ident en pg_hba.conf .

postgresql.conf: En este fichero podemos cambiar todos los parametros de configuracion que afectan al funcionamiento y al comportamiento de PostgreSQL en nuestra maquina.Los cambios que realicemos en este fichero afectaran a todas las bases de datos que tengamos definidas en nuestro

Page 9: Arquitectura Del Gestor

cluster PostgreSQL. La mayoria de los cambios se pueden poner en produccion con un simple 'reload' (/usr/local/bin/pg_ctl -D /var/pgsql/data reload), otros cambios necesitan que arranquemos de nuevo nuestro cluster (/usr/local/bin/pg_ctl -D /var/pgsql/data restart).

2.1.6 PROCEDIMIENTO GENERAL DE INSTALACIÓN

2.1.7 PROCEDIMIENTO PARA CONFIGURACIÓN DE UN DBMS.

2.1.8 COMANDOS GENERALES DE ALTA Y BAJA DEL DBMS