• No se han encontrado resultados

Capítulo 9. Gestión de la seguridad de los datos

N/A
N/A
Protected

Academic year: 2021

Share "Capítulo 9. Gestión de la seguridad de los datos"

Copied!
19
0
0

Texto completo

(1)

Capítulo 9

Gestión de la seguridad

de los datos

(2)

ÍNDICE CAPÍTULO 9

‰

Tipos de fallos

‰

Copias de seguridad de bases de datos

Tipos de copias

Copias en MySQL

Exportación/importación de datos

(3)

Tipos de fallos

‰

Fallo del sistema operativo

‰

Fallo en la alimentación

‰

Fallo en el sistema de ficheros

‰

Fallo de algún elemento de hardware

‰

Fallo humano que conlleva pérdida o

(4)

Copias de seguridad de bases de

datos

Tipos de copias de seguridad

‰

Frio/Caliente

‰

Física/lógica

‰

Completa/incremental

‰

Local/remota

(5)

Copias de seguridad en MySQL

Copias físicas: copia en frio I

Ejemplo

Para hacer una copia de todos los datos en un sistema Linux en frio. Detenemos el servidor:

#>mysqladmin shutdown

Comprimimos y empaquetamos los datos en un nuevo fichero llamado copia.tar.gz.

#>tar –czvf copia.tar.gz /var/lib/mysql/

Copiamos el fichero a un nuevo directorio:

(6)

Copias de seguridad en MySQL

Copias físicas: copia en frio II

Para la restauración haríamos el proceso inverso deteniendo previamente el servidor:

#>cd /var/lib/

#>tar –zvxf copia.tar.gz

Este fichero también nos sirve para migrar los datos a otro servidor mysql.

(7)

Copias de seguridad en MySQL

Copias físicas: copia en caliente

Ejemplo mysqlhotcopy

Para hacer una copia en caliente de las tablas MyISAM de la base de datos mysql en Linux en el directorio backup.

#>mysqlhotcopy –user root –password root mysql /backup/

Para hacer una copia y, seguidamente empaquetarla:

#>mysqlhotcopy –user root –password root mysql /backup/ ; tar –cvzf copia.tar.gz /backup/mysql/

Si además queremos incluir la fecha:

#>mysqlhotcopy –user root –password root mysql /backup/ ; tar –cvzf copia`date +%d%m%y`.tar.gz /backup/mysql/

Para restaurar los datos debemos detener primero el servidor y copiarlos al directorio correspondiente como en el ejemplo anterior.

(8)

Copias de seguridad en MySQL

Copias lógicas: mysqldump

Sintaxis básica:

#>mysqldump [options] db_name [tbl_name ...] #>mysqldump [options] --databases db_name ... #>mysqldump [options] --all-databases

.

Ejemplo

Para hacer una copia completa de todas las bases de datos:

#>mysqldump –uroot –proot –all-databases

Este comando vuelva la copia por pantalla. Si preferimos enviar la salida a un archivo:

(9)

Copias de seguridad en MySQL

Copias incrementales I

Variable log-bin activa el registro binario

Registra sólo operaciones de modificación sobre la

base de datos

Sirve como copia incremental de datos

El programa mysqlbinlog permite leer ficheros

binarios

Los registros se deben reiniciar (purgar) cada cierto

tiempo

(10)

Copias de seguridad en MySQL

Copias incrementales II

Ejemplo

Para hacer copias periódicas todas las semanas, los domingos a las 10:00h de la mañana.

Si además, queremos usar registros binarios (log-bin=regbin) para copias incrementales y queremos que se eliminen en cada copia de seguridad.

En el fichero my.cnf, en la sección [mysqld] agregamos la línea:

log-bin=regbin

Añadimos a crontab (crontab -e) la línea:

(11)

Copias de seguridad en MySQL

Copias incrementales III

El fichero csegbases.sh es un shell script que contiene lo siguiente:

#!/bin/bash

mysqldump –uroot –proot --single-transaction --flush-logs --all-databases --delete-master---flush-logs > copia`date +%d%m%y`.sql

Supongamos que tenemos un fallo catastrófico el miércoles a las 8 AM que requiere restauración de las copias de seguridad. Para recuperarnos, primero restauramos la última copia de seguridad completa que tenemos (la del domingo a las 10:00 AM). El

archivo de copia completo es tan solo una serie de sentencias SQL, así que restaurarlo es muy fácil:

(12)

Copias de seguridad en MySQL

Copias incrementales IV

En este punto, el estado de los datos ha sido restaurado hasta el domingo a las 10:00 AM.

Para restaurar los datos generados desde entonces, debemos usar las copias incrementales, es decir los archivos de registro binario que tengamos en nuestro directorio de datos.

Si no hemos generado otros por cualquier motivo tendremos un solo fichero llamado regbin.000001 que recargaríamos con el siguiente comando:

(13)

Exportación/importación de datos

LOAD DATA I

• Permite cargar datos de un fichero de texto a tablas Sintaxis:

LOAD DATA [LOW PRIORITY | CONCURRENT][LOCAL] INFILE 'fichero'

[REPLACE | IGNORE] INTO TABLE tbl_name

[PARTITION (partition_name,...)] [{FIELDS | COLUMNS}

[TERMINATED BY 'string']

[[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char']]

[LINES

[STARTING BY 'string'] [TERMINATED BY 'string'] [IGNORE number LINES]

(14)

Exportación/importación de datos

LOAD DATA II

Ejemplo

Disponemos de un fichero con datos de partidos llamado

partidos.txt y situado en la unidad C del servidor. En él cada fila o registro está separado por un salto de línea y cada campo por un punto y coma.

Indica el comando necesario para cargar los datos en la tabla de partidos omitiendo los errores en la repetición de claves, así como las dos primeras líneas.

LOAD DATA INFILE ‘C:\\partidos.txt’ IGNORE INTO TABLE partido FIELDS TERMINATED BY ‘;’ LINES TERMINATED BY ‘\n’;

(15)

Exportación/importación de datos

SOURCE

• Podemos ejecutar ficheros de comandos para ejecutar un conjunto de instrucciones INSERT del siguiente modo

C:\> mysql –uusuario –ppassword < ruta_fichero_de_comandos

También disponemos del comando SOURCE ejecutable desde el cliente mysql:

mysql> source ruta_fichero_de_comandos

O equivalentemente con \.:

(16)

Exportación/importación de datos

LOAD XML I

• Para exportar datos en formato XML usamos la opcion xml de

mysqldump

C:\>mysql –xml –e “SELECT * FROM tabla” > fichero.xml

Para importar datos con formato XML en una tabla, proceso contrario al anterior, usamos LOAD XML

Sintaxis:

LOAD XML [LOCAL] INFILE 'file_name' [REPLACE | IGNORE] INTO TABLE [db_name.]tbl_name

[ROWS IDENTIFIED BY '<tagname>'] [IGNORE number [LINES | ROWS]] [(column_or_user_var,...)]

(17)

Exportación/importación de datos

Exportar datos

Mediante la cláusula SELECT

SELECT…[INTO OUTFILE 'file_name'

export_options

| INTO DUMPFILE 'file_name'

Mediante mysqldump

mysqldump [opciones]

nombre_de_base_de_datos [tablas]

mysqldump [opciones] --databases DB1 [DB2

DB3...]

(18)

Gestión de datos con MySQL

Workbench

La mayoría de operaciones de seguridad de datos pueden realizarse mediante la herramienta Workbench

(19)

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

En conclusión, con la puesta en marcha del sistema de información se pretende agilizar y homogenizar el tratamiento de los datos administrativos y clínicos del paciente en

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

La determinación molecular es esencial para continuar optimizando el abordaje del cáncer de pulmón, por lo que es necesaria su inclusión en la cartera de servicios del Sistema

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

La siguiente y última ampliación en la Sala de Millones fue a finales de los años sesenta cuando Carlos III habilitó la sexta plaza para las ciudades con voto en Cortes de

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

La Ley 20/2021 señala con carácter imperativo los procesos de selección. Para los procesos de estabilización del art. 2 opta directamente por el concurso-oposición y por determinar