190 likes | 321 Views
UNIVERSIDAD LATINA. VI. MANTENIMIENTO DE LA INFORMACIÓN. E.I. L.E. Prof. Ramón Castro Liceaga. Detener , arrancar y reiniciar las Bases de Datos (Generación de scripts ).
E N D
UNIVERSIDAD LATINA VI. MANTENIMIENTO DE LA INFORMACIÓN E.I. L.E. Prof. Ramón Castro Liceaga
Detener, arrancar y reiniciar las Bases de Datos (Generación de scripts). • Detener, arrancar y reiniciar las BD y el uso de scripts son varias de las actividades o necesidades en la administración de la Base de Datos. • Detener y activar el servicio ya sea para hacer algún mantenimiento o respaldo o por alguna contingencia como la perdida de energía eléctrica, etc. • Este proceso puede ser realizado como un servicio de Windows (detener, pausa y reiniciar) o a través de un usuario con el privilegio SHUTDOWN. Por ejemplo ejecutando la orden mysqladminshutdown o utilizando una herramienta como “MySQLAdministrator” .
Las opciones de arranque del servidor cambian según el manejador de BD de que se trate. Por ejemplo en MYSQL utilizando el comando mysqld tenemos: Para iniciar por primera vez el servicio mysqld y generar la base de datos inicial (mysql), utilizar: /sbin/service mysqld start Para reiniciar el servicio mysqld, utilice: /sbin/service mysqld restart Para detener el servicio mysqld, utilice: /sbin/service mysqld stop Agregar el servicio mysqld al arranque del sistema. Para hacer que el servicio de mysqld esté activo con el siguiente inicio del sistema, en todos los niveles de corrida (2, 3, 4, y 5), se utiliza lo siguiente: /sbin/chkconfig mysqld on
Detener, arrancar y reiniciar las Bases de Datos (Generación de scripts). Una vez configurado el servidor de Base de Datos se puede iniciar el demonio del dbms a través del comando "mysqld" o alguna de sus variantes "safe_mysqld", "mysqld-max" Esto se puede hacer desde cualquier terminal y se pueden pasar como parametros algunas de las mismas variables disponibles para configuración (en caso de necesitar alguna opción particular) Terminación del manejador Se puede hacer de 2 maneras • a) Usando el comando "mysqladmin shutdown" • b) Matando el proceso asociado
Detener, arrancar y reiniciar las Bases de Datos (Generación de scripts). Los scripts son programas cortos, generalmente escritos en lenguaje SQL, (.sql) para ejecutar procesos o rutinas que se realizan en una Base de Datos Un esquema generado como script se puede utilizarse para realizar las siguientes tareas: copia de seguridad que permita al usuario volver a crear todos los usuarios, grupos, inicios de sesión y permisos. Crear o actualizar código para el desarrollo de una base de datos. Crear un entorno de pruebas o de desarrollo a partir de un esquema existente. Procesos de respaldo y recuperación de información, etc.
Ejemplo de script de respaldo DECLARE @name VARCHAR(50) -- database name DECLARE @path VARCHAR(256) -- path for backup files DECLARE @fileName VARCHAR(256) -- filename for backup DECLARE @fileDate VARCHAR(20) -- used for file name -- specify database backup directory SET @path = 'C:\Backup\' -- specify filename format SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) DECLARE db_cursor CURSOR FOR SELECT name FROM master.dbo.sysdatabases WHERE name NOT IN ('master','model','msdb','tempdb') -- exclude these databases OPEN db_cursor FETCH NEXT FROM db_cursor INTO @name WHILE @@FETCH_STATUS = 0 BEGIN SET @fileName = @path + @name + '_' + @fileDate + '.BAK' BACKUP DATABASE @name TO DISK = @fileName FETCH NEXT FROM db_cursor INTO @name END CLOSE db_cursor DEALLOCATE db_cursor
Mantenimiento rutinario Una base de datos requiere de un mantenimiento rutinario, de lo contrario puede desarrollar problemas en una o más estructuras, lo cual a largo plazo puede provocar un mal rendimiento de la aplicación, llegando incluso a perdidas de datos. Existen actividades que el administrador del sistema gestor de bases de datos debe realizar habitualmente como son: - mantenimiento de los identificadores internos y de las estadísticas de planificación de las consultas, - una reindexación periódica de las tablas, - y tratamiento de los archivos de registro.
Mantenimiento rutinario : Vacuum Es el proceso que realiza una limpieza a la base de datos en PostgreSQL. Se eliminan definitivamente tuplas marcadas para borrar y se efectúa una reorganización de datos a nivel físico. El VACUUM se realiza periódicamente para: •Recuperar espacio en disco perdido por datos borrados o actualizados. •Actualizar las estadísticas de datos utilizados por el planificador de consultas SQL. •Protegerse ante la pérdida de datos por reutilización de identificadores de transacción.
Mantenimiento rutinario : Vacuum sintaxis VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table ] VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ] Ejemplo: Se ejecuta VACUUM sobre una base de datos existente. demo=# VACUUM; VACUUM
Mantenimiento rutinario : Reindexación Para facilitas la obtención de información de una tabla se utilizan índices. El índice de una tabla permite encontrar datos rápidamente. Sin índice se debería recorrer secuencialmente toda la tabla para encontrar un registro. Es muy útil para bases de datos que posee mucha información. Una tabla se indexa por un campo o varios. Es importante identificar el o los datos por lo que sería útil crear un índice, aquellos campos por los cuales se realizan operaciones de búsqueda con frecuencia.
Mantenimiento rutinario : Reindexación Hay distintos tipos de índice: •primary key: clave primaria, los valores deben ser únicos y además no pueden ser nulos. •index: crea un índice común, los valores no necesariamente son únicos y aceptan valores nulos. •unique: crea un índice para los cuales los valores deben ser únicos y diferentes, aparece un mensaje de error si intentamos agregar un registro con un valor ya existente.. La reindexación completa de la base de datos no es una tarea muy habitual, pero puede mejorar sustancialmente la velocidad de las consultas complejas en tablas con mucha actividad.
Mantenimiento rutinario : Reindexación Ejemplo: demo=# reindex database demo; NOTICE: table "pg_class" was reindexed NOTICE: table "pg_type" was reindexed NOTICE: table "pg_statistic" was reindexed NOTICE: table "sql_features" was reindexed NOTICE: table "sql_implementation_info" was reindexed NOTICE: table "sql_languages" was reindexed NOTICE: table "sql_packages" was reindexed Se utiliza las palabras reservadas reindex database agregando el nombre de la base de datos “demo”.
Mantenimiento rutinario : Archivos de registro Una buena práctica es mantener archivos de registro de la actividad del servidor, al menos de los errores que origina. Durante el desarrollo de aplicaciones se puede disponer de un registro de las consultas efectuadas, aunque disminuye el rendimiento del gestor en bases de datos de mucha actividad, y puede no ser de mucha utilidad. De igual modo es conveniente disponer de mecanismos de rotación de los archivos de registro; es decir, que periódicamente se mantenga un respaldo de estos ficheros y se empiecen unos nuevos, lo que permite tener un historial.
Mantenimiento rutinario : tuning Una parte importante del mantenimiento de una Base de Datos es la afinación (tuning) de la configuración, rendimiento y desempeño del funcionamiento de los datos. El primer paso es detectar los cuellos de botella que se manifiesta en prolongados tiempos de ejecución (la BD es lenta) El siguiente paso es los querys y su plan de consulta para lo cual es necesario: - optimizar el query - crear o reindezar - cargar parcialmente la tabla o tablas a la memoria - cargar el indice a la memoria - cambiar el esquema de bloqueos - particionar la tabla - considerar el rediseño de la Base de Datos
Rediseño de la Base de Datos Con frecuencia los problemas detectados se deben a un mal diseño de la Base de Datos para resolver este problema se debe aplicar los niveles de normalizacion
Problemas de bloqueo. Cuando se debe a que los procesos estan esperando a que se liberen recursos para poder aplicar cambios o seleccionar datos de las tablas y se observan procesos bloqueados por el uso de recursos de otro usuario, es necesario considerar y analizar las concurrencias a las tablas involucradas
Uso optimo de recursos Una de las actividades finales de la afinacion de ejecución de procesos es analizar la configuración actual del manejador de BDs de acuerdo al hardware en el que esta montado y optimizar los parámetros de configuración, distribuir las cargas de IO de acurdo al hardware con el que se cuenta, redistribuir el uso de memoria RAM, redistribuir la información en diferentes dispositivos, limitar las IO a usuarios no criticos, optimizar las conexiones de la red.
Administración del catalogo (Tablas, vistas del sistema) El catalogo contiene elementos como son las tablas, Los indices, las vistas (views) y los stores procedures que se encuentran almacenados dentro de cada Base de Datos. El DBA debe identificar los elementos del sistema para darles el correcto mantenimiento. Por ejemplo la administración de tablas tablas de mysql
Diccionario de datos Es un conjunto de metadatos que contiene las características lógicas y puntuales de los datos que se van a utilizar en el sistema que se programa, incluyendo nombre, descripción, alias, contenido y organización. Identifica los procesos donde se emplean