Copias de seguridad físicas y lógicas: Métodos y herramientas

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,58 KB

Física:

Realizar un respaldo de todos los ficheros de la base de datos. Generalmente se realiza en frío, es necesario parar el motor de la base de datos.

Lógica:

Exportar los datos del esquema de la base de datos a un fichero SQL o a un fichero de texto. Es bastante lenta pero tiene la ventaja de que se pueden intercambiar datos entre los diferentes sistemas gestores de bases de datos. Este proceso se conoce como importación de datos cuando se restaura una copia de seguridad lógica en un SGBD. Las copias lógicas generalmente se hacen en caliente, no es necesario parar el motor de la base de datos.

Mysqldump: Realiza un volcado de las instrucciones SQL necesarias para crear las tablas o las bases de datos que se quieran copiar. El archivo creado se puede ver en cualquier editor de texto. Las copias de seguridad se almacenan en bin si no se indica lo contrario. Tres maneras de usarlo: mysqldump [opciones] nombre_de_base_de_datos [tablas], mysqldump [opciones] --databases DB1 [DB2 DB3...], mysqldump [opciones] --all-databases.

Si no se nombra ninguna tabla o se utiliza la opción --databases o --all-databases, se vuelcan bases de datos enteras. Opciones a destacar:

  • --add-drop-table: Añade un comando DROP TABLE antes de cada comando CREATE TABLE.
  • --add-locks: Rodea cada volcado de tabla con los comandos LOCK TABLES y UNLOCK TABLES. Esto provoca inserciones más rápidas cuando el fichero volcado se recarga.
  • --all-databases, -A: Vuelca todas las tablas en todas las bases de datos. Es como utilizar la opción --databases y nombrar todas las bases de datos en la línea de comando.
  • --databases, -B: Vuelca varias bases de datos. Normalmente, trata el primer argumento de la línea de comandos como un nombre de base de datos y los siguientes como nombres de tablas. Trata todos los argumentos como nombres de bases de datos. Los comandos CREATE DATABASE IF NOT EXISTS nombre_de_base_de_datos y USE nombre_de_base_de_datos están incluidos en la salida.
  • --quick, -q: Vuelca tablas grandes. Recibe los registros de una tabla del servidor uno a uno.
  • --result-file=fichero, -r fichero: Redirige la salida a un fichero dado. Debe usarse en Windows.
  • --tables: Tiene mayor prioridad que --databases o -B. Todos los argumentos que vienen después de esta opción se tratan como nombres de tablas.
  • --user=nombre_de_usuario, -u nombre_de_usuario: Nombre de usuario MySQL a usar al conectar con el servidor.
  • --verbose, -v: Modo explícito. Muestra más información sobre lo que hace el programa.
  • --where='condición_where', -w 'condición_where': Vuelca registros seleccionados por la condición WHERE. Las comillas de la condición son obligatorias si contienen espacios o caracteres especiales. Ejemplo: mysqldump -u root -p --where='campo1=juan' concesionario tabla 2 > c:/copia.copia3.sql: Se limita el volcado de registros en la tabla 2 de la bd concesionario a todos aquellos que cumplen que campo1='juan'. myqldump -u root -p concesionario tabla > c:/copia.copia.sql: Copia de seguridad de la tabla 'tabla' de la bd concesionario y se vuelca el archivo copia.sql en directorio copia. mysqldump -u root -p concesionario > c:/copia.copia2.sql: Copia de seguridad de toda la bd concesionario.

Restaurar copia de seguridad: mysqldump -u root -p concesionario < c:/copia.copia1.sql, también se puede recuperar mediante: source nombrearchivo.sql.

Copias de seguridad lógicas con select into:

SELECT ... INTO OUTFILE 'ruta y nombre del archivo'. Restaurar una copia creada con select into: LOAD DATA INFILE 'nombredearchivo' INTO TABLE nombre_tabla.

Problemas en la restauración:

  • No se tienen permisos para leer archivos del servidor.
  • No se ha utilizado los mismos caracteres y terminadores de cierre en select into que en load data.
  • El nombre de la ruta y del archivo no se ha especificado correctamente.
  • No es posible sobreescribir un archivo existente.

Restaurar copia con mysqlimport: mysqlimport nombredelabasededatos rutaarchivo -u root -p.

Optimización y monotorización de MySQL:

Si algo funciona mal: Optimizar las sentencias SQL o la configuración del servidor a partir de las variables de las que dispone MySQL. Los problemas no siempre son del servidor, también puede ser por el estado de la red o el SO.

Entradas relacionadas: