investigación

11
PRACTICA 5 Documentación de generalidades INSTITUTO TECNOLÓGICO DE MORELIA “JOSÉ MARÍA MORELOS Y PAVÓN” Profesor: Eduardo Alcaraz Chávez. Alumno: Osvaldo González Núñez.

Upload: perla-lopez

Post on 23-Jan-2016

212 views

Category:

Documents


0 download

DESCRIPTION

inv

TRANSCRIPT

Page 1: Investigación

Documentación de generalidades

INSTITUTO TECNOLÓGICO DE MORELIA

“JOSÉ MARÍA MORELOS Y PAVÓN”

Profesor: Eduardo Alcaraz Chávez.

Alumno: Osvaldo González Núñez.

Page 2: Investigación

POSTMASTER

Postmaster es el servidor de base de datos multiusuario PostgreSQL. Para que una aplicación cliente pueda acceder a una base de datos, post master se conecta ( a través de una red o localmente ) a un postmaster en ejecución. Postmaster entonces comienza un proceso de servidor independiente ( "postgres" ) para manejar la conexión. Postmaster también gestiona la comunicación entre los procesos del servidor .

Por defecto, postmaster se inicia en el primer plano e imprime mensajes de registro de la secuencia de error estándar. En las aplicaciones prácticas el postmaster debe iniciarse como un proceso en segundo plano, tal vez en el momento del arranque.

Un postmaster siempre maneja los datos de exactamente un clúster de base de datos . Un cluster de base de datos es un conjunto de bases de datos que se almacenan en una ubicación del sistema de archivos común (el " área de datos ") . Más de un proceso postmaster puede ejecutarse en un sistema de una sola vez , siempre y cuando se utilizan diferentes áreas de datos y diferentes puertos de comunicación. Un área de datos se crea con initdb.

Cuando se inicia el postmaster este necesita saber la ubicación del área de datos. La ubicación debe ser especificado por la opción D- o la variable de entorno PGDATA , no hay por defecto. Típicamente, - D o PGDATA apunta directamente al directorio de área de datos creado por initdb

Estructura del comando postmaster:

postmaster [-A 0 | 1 ] [-B nbuffers] [-c name=value] [-d debug-level] [-D datadir] [-F] [-h hostname] [-i] [-k directory] [-l] [-N max-connections] [-o extra-options] [-p port] [-S] [--name=value] [-n | -s]

-A 0 | 1

Permite comprobaciones de aserción en tiempo de ejecución , lo que es una ayuda para la depuración para detectar errores de programación. Esta opción sólo está disponible si se han habilitado las afirmaciones cuando PostgreSQL fue compilado. Si es así , por defecto está activada.

-B nBuffers

Establece el número de buffers compartidos para el uso de los procesos del servidor. El valor predeterminado de este parámetro se elige automáticamente por initdb.

-c nombre = valor

Establece un parámetro de tiempo de ejecución con nombre. La mayor parte de las otras opciones de la línea de comandos son en realidad formas cortas de una

Page 3: Investigación

asignación de este tipo de parámetros. -c puede aparecer varias veces para ajustar varios parámetros.

-d nivel de depuración

Establece el nivel de depuración . Cuanto más alto es este valor, mas salidas de depuración se escriben en el registro del servidor. Los valores son de 1 a 5 .

-D datadir

Especifica la ubicación del sistema de archivos del archivo ( s ) o la configuración del directorio de datos.

-F

Desactiva las llamadas fsync para mejorar el rendimiento , con el riesgo de corrupción de datos en caso de un fallo del sistema. Especificar esta opción equivale a deshabilitar el parámetro de configuración fsync.

- fsync = true tiene el efecto opuesto a esta opción.

-h hostname

Especifica el nombre de host o la dirección IP en la que esta el postmaster para escuchar las conexiones TCP / IP de las aplicaciones cliente. El valor también puede ser una lista separada por comas de direcciones , o * para especificar la escucha en todas las interfaces disponibles . Un valor vacío indica que no escucha en todas las direcciones IP , en cuyo caso sólo sockets de dominio UNIX se puede utilizar para conectar con el administrador de correo . Por defecto es escucha sólo en localhost. Especificar esta opción equivale a establecer el parámetro de configuración listen_addresses.

- i

Permite a los clientes remotos conectarse a través de conexiones TCP / IP ( dominio de Internet ). Sin esta opción, sólo se aceptan las conexiones locales. Esta opción es equivalente a establecer listen_addresses a * en postgresql.conf o vía -h .

Esta opción es obsoleta , ya que no permite el acceso a todas las funciones de listen_addresses . Por lo general es mejor establecer directamente listen_addresses .

- k directorio

Especifica el directorio del socket Unix - dominio en el que el postmaster está para escuchar las conexiones desde las aplicaciones cliente. El valor predeterminado es normalmente / tmp , pero se puede cambiar en tiempo de compilación .

Page 4: Investigación

- L

Permite conexiones seguras mediante SSL. PostgreSQL tiene que haber sido compilado con soporte para SSL para que esta opción esté disponible.

-N Max-connections

Establece el número máximo de conexiones de cliente que este postmaster aceptará. De forma predeterminada , este valor es 32 , pero se puede configurar tan alta como el sistema soportará. (Tenga en cuenta que -B tiene la obligación de tener por lo menos dos veces –N) Especificar esta opción equivale a establecer e l parámetro de configuración max_connections.

-o extracomunitarios opciones

Las opciones de estilo de línea de comandos especificados en -opciones adicionales se pasan a todos los procesos del servidor iniciadas por este postmaster. Si la cadena de opciones contiene espacios, la cadena completa deberá ser citado .

puerto -p

Especifica el puerto TCP / IP o el local de Unix socket de dominio en el que el jefe de correos es para escuchar las conexiones desde las aplicaciones cliente. El valor predeterminado es el valor de la variable de entorno PGPORT , o si PGPORT no se ha establecido, por defecto el valor establecido durante la compilación ( normalmente 5432 ) . Si especifica un puerto distinto del puerto por defecto , entonces todas las aplicaciones cliente deben especificar el mismo puerto utilizando cualquiera de las opciones de línea de comandos o PGPORT .

- S

Especifica que el proceso postmaster debe arrancar en modo silencioso. Es decir , será desvincularse de la terminal del usuario ( control ), inicie su propio grupo de procesos , y redirigir la salida estándar y el error estándar a / dev / null .

El uso de este conmutador descarta toda salida de registro , lo que probablemente no es lo que quieres, ya que hace que sea muy difícil de solucionar problemas.

- en modo silencioso = false tiene el efecto opuesto a esta opción.

- name = valor

Establece un parámetro de tiempo de ejecución llamado ; una forma más corta de -c.

Page 5: Investigación

Dos opciones adicionales de línea de comandos están disponibles para la depuración de problemas que hacen que un proceso de servidor que muera de forma anormal. La estrategia común en esta situación es que a todos los demás procesos del servidor que deben terminar y luego reinicializar la memoria compartida y los semáforos . Esto se debe a un proceso de servidor errante podría haber dañado algunos estado compartido antes de terminar. Estas opciones seleccionan conductas alternativas del administrador de correo en esta situación. Ninguna de las opciones es para uso en la operación normal.

Estas opciones de casos especiales son:

- N

postmaster no reinicializar estructuras de datos compartidas. Un programador de sistemas con conocimientos puede entonces utilizar un depurador para examinar la memoria compartida y el estado del semáforo .

- s

postmaster detendrá todos los otros procesos de servidor mediante el envío de la SIGSTOP señal, pero no va a hacer que se terminan . Esto permite que los programadores del sistema para recolectar volcados del núcleo de todos los procesos de servidor con la mano.

BITACORAS

En muchos DBMS la bitácora incluye todo tipo de consulta incluyendo aquellas que no modifican los datos.

La operación ROLLBACK está basada en el uso de una bitácora. El Sistema Manejador de Bases de Datos mantiene una bitácora o diario en cinta o en disco, comúnmente, en el cual se registran los detalles de todas las operaciones de actualización, en particular, los valores iniciales y final del objeto modificado. Por tanto, si resulta necesario anular alguna modificación específica, el sistema puede utilizar la entrada correspondiente de la bitácora para restaurar el valor original del objeto restaurado.

Particiones

A veces cuando estamos manejando tablas con un número grande de registros, varios millones o más es necesario particionar las tablas para obtener un mejor desempeño a la hora de consultar dichas tablas. A este proceso se le suele

Page 6: Investigación

denominar "Partitioning" y es le método usado para descomponer una enorme tabla (father) en un conjunto de tablas hijas (child).

Algunas de las enormes ventajas son:

* Desempeño mejorado para la obtención de registros (Querys).

* Desempeño mejorado para la actualización (update).

* Índices más pequeños para cada tabla hija contra índices grandes y difíciles de colocar en memoria en una tabla grande.

* Eliminación rápida de registros. Empleando DROP TABLE en vez de DELETE.

* Los datos pueden ser migrados o respaldados en medios económicos y pequeños como DVDs, discos duros extraíbles, etc.

En postgresql el tipo de partitioning soportado se denomina particionado mediante herencia de tablas. Cada partición puede ser creada como una tabla hija de una única tabla padre. La tabla padre normalmente debe de ser una tabla vacía, que representara a todo el conjunto de datos.

Los dos tipos de particionado más comunes en postgresql son:

1. Particionar por rangos. La tabla es particionada mediante rangos definidos en base a la columna de llave primary o cualquier columna que no se solape entre los rangos de valores asignados a diferentes tablas hijas.

2. Particionar por lista. La tabla es particionada listando los valores de cada una de las llaves en cada partición.

ESPACIOS PRIVADOS

Un «espacio privado» permite que los administradores y redactores gestionen el conjunto de datos del sitio. Algunas bases de datos tienen estos espacios privados llamados comúnmente paneles de control, que son formularios que aparecen al abrir la base de datos.

Los paneles de control sirven de "puerta principal" o "recibidor" de una base de datos en el sentido de que dirigen a las personas hacia determinadas tareas, como

Page 7: Investigación

introducir o buscar datos. Sirven también para mantener alejados a los usuarios de las tablas que contienen los datos en tiempo real.

Cuando reciba una base de datos, debe adentrarse más allá del panel de control para averiguar cómo están estructurados los datos, pero merece la pena echar un vistazo inicial al panel de control. Le puede ofrecer algún indicio sobre las tareas que el diseñador de la base de datos consideró que realizarían los usuarios habitualmente con los datos.

ESPACIOS PARA OBJETOS PRIVADOS

Los DBMS se basan en archivos para almacenar datos, y estos archivos, o conjuntos de datos, residen en medios de almacenamiento, o dispositivos. Una buena parte del trabajo del DBA implicará la planificación para el almacenamiento real de la base de datos.

Algunas tecnologías de almacenamiento son más adecuadas que otras. Sin embargo, la naturaleza mecánica de la unidad de disco los hace más vulnerables al fracaso de los componentes de otro equipo. Además, las formas en que las unidades de disco son utilizados por las bases de datos pueden hacer que la gestión del almacenamiento impredecibles, como la barra lateral "Modern DBMS de uso de disco“ Puede usarse RAID para mejorar la seguridad de los datos.

Para aplicaciones de misión crítica la integridad de los datos puede ser más importante que la disponibilidad de datos. Si el soporte es poco fiable y un fallo de las causas de corrupción de datos, los datos perdidos puede ser más de un problema que el tiempo de inactividad. Es imperativo, por tanto, que las soluciones de almacenamiento de base de datos para protegerlos a toda costa. La recuperación de datos desde medios de almacenamiento lleva mucho más tiempo en completarse que la recuperación de datos desde la memoria caché o la memoria.

El rendimiento de la base de datos depende de la entrada y salida a disco. La cantidad de datos almacenados es mayor que nunca antes, y los datos se almacenados por más tiempo.

Algunos DBMS permiten al tamaño de los archivos temporales de expandirse y contraerse de forma automática. Dependiendo del tipo y la naturaleza de las operaciones de base de datos en proceso, esta fluctuación puede provocar picos de uso del disco

El crecimiento de la capacidad de almacenamiento aumenta aún más la complejidad de la gestión de datos y bases de datos. Muchas organizaciones están implementando nuevas tecnologías de almacenamiento, tales como almacenamiento en red (NAS) y redes de área de almacenamiento (SAN), para ayudar a controlar la cantidad cada vez mayor de almacenamiento necesario para

Page 8: Investigación

los usos modernos. La gestión del almacenamiento en el entorno dinámico de hoy es una tarea difícil DBA.

SEGMENTOS

Un segmento contiene un tipo específico de objetos de la base de datos, como por ejemplo una tabla. Un segmento está compuesto de extensiones que definen el tamaño disponible para el segmento. A medida que se llenan las extensiones se van añadiendo nuevas extensiones, es aquel espacio reservado por la base de datos, dentro de un datafile, para ser utilizado por un solo objeto. Así una tabla (o cualquier otro objeto) está dentro de su segmento, y nunca podrá salir de él, ya que si la tabla crece, el segmento también crece con ella.

Físicamente todo objeto en base de datos no es más que un segmento dentro de un datafile. Se puede decir que, un segmento es a un objeto de base de datos, lo que un datafile a un tablespace; el segmento es la representación física del objeto en base de datos (el objeto es solo una definición lógica).

Los segmentos son los equivalentes físicos de los objetos que almacenan datos. El uso efectivo de los segmentos requiere que el DBA conozca los objetos, que utiliza una aplicación, cómo los datos son introducidos en esos objetos y el modo en que serán recuperados.

Un segmento está constituido por secciones llamadas extensiones, que son conjuntos contiguos de bloques. Una vez que una extensión existente en un segmento no puede almacenar más datos, el segmento obtendrá del espacio de tabla otra extensión. Este proceso de extensión continuará hasta que no quede más espacio disponible en los ficheros del espacio de tablas, o hasta que se alcance un número máximo de extensiones por segmento.

Existen 5 tipos de segmento:

•De datos.

•De índices.

•De rollback.

•Temporales.

•De bootstrap.

Page 9: Investigación

MEMORIA COMPARTIDA

La memoria compartida contiene todos los datos intervenidos, como:

• Grupo de memorias intermedias

• Tabla de bloqueos

• Memoria intermedia del registro, que contiene las entradas del registro que esperan a ser volcadas en el almacenamiento estable

• Planes de consulta en caché, que se pueden reutilizar si se envía de nuevo la misma consulta

La exclusión mutua se puede implementar por medio de funciones del sistema operativo llamadas semáforos. Implementaciones alternativas, con menos sobrecargas, utilizan instrucciones atómicas especiales soportadas por el hardware de la computadora; un tipo de instrucción atómica comprueba una posición de la memoria y la establece a uno automáticamente. Los mecanismos de exclusión mutua también se utilizan para implementar pestillos.

INSTANCIAS MÚLTIPLES

Se llama instancia múltiple al hecho de poder ejecutar un programa más de una vez al mismo tiempo. Hay programas que no admiten más que una sola instancia, es decir que si ya se está ejecutando, por más que lo cliquees de nuevo en el icono o en el menú no aparecerá un nuevo ejemplar del programa. Con las bases de datos se complica un poco porque si un usuario modifica un registro que otro usuario tiene también abierto, la modificación que se haga en una instancia debe reflejarse de inmediato (actualizarse) en cualquier otra instancia abierta de la misma base de datos.

Sin embargo, en las bases de datos se puede seleccionar la opción en el diseño de la BD, y se reflejarán de inmediato las modificaciones en todas las instancias abiertas

En programación, una instancia se produce con la creación de un objeto perteneciente a una clase (se dice que se instancia la clase). El objeto que se crea tiene los atributos, propiedades y métodos de la clase a la que pertenece. Los objetos y sus características se usan en la construcción de programas, ya sea como contenedores de datos o como partes funcionales del programa. Los objetos también puede ser ocurrencia de las clases.