arquitectura del gestor
TRANSCRIPT
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
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.
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.
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)
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.
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).
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/
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
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