martes, 21 de mayo de 2013

Respaldos


 ¿Por qué es importante para el administrador saber hacer respaldos?
Un SGBD proporciona las herramientas necesarias para la conservación de copias de seguridad de cada fichero como prevención ante posibles caídas del sistema.
Planificar y comprobar los procedimientos de backup del sistema es la única garantía que existe contra fallas del sistema, del SO, del software o cualquier otro tipo de circunstancias.
¿Es responsabilidad del administrador hacer un respaldo periódico de los sistemas de archivos de la máquina que administra?
Los administradores de sistemas que tienen un buen entendimiento de sus sistemas, usuarios y aplicaciones deberían ser capaces de agrupar rápidamente en sus sistemas en diferentes categorías. 
La mayoría de los administradores de sistemas en este punto, ven hacia una de dos soluciones:
·         Comprar una solución desarrollada comercialmente
·         Desarrollar una solución casera de sistema de respaldo desde el principio (posiblemente integrando una o más tecnologías de código abierto)

Esta similaridad se debe al hecho de que un respaldo completo no verifica para ver si un archivo ha cambiado desde el último respaldo; ciegamente escribe todo a la media de respaldo, haya sido modificada o no.
Esta es la razón por la que los respaldos completos no se hacen todo el tiempo - cada archivo es escrito a la media de respaldo. Esto significa el uso de gran cantidad de media de respaldo aun cuando nada se haya cambiado. Respaldar 100 GB de datos cada noche cuando solamente cambió 10 MB de datos, no es una buena solución; por eso es que se crean los respaldos incrementales.

¿Cómo se hace un respaldo y ¿Cómo se restaura un respaldo ?
Procedimiento Respaldo Offline o frio
1.- Bajar la base de datos (SHUTDOWN [NORMAL,| IMMEDIATE | TRANSACTIONAL])
2.- Anote el layout físico de filesystems, podría ser necesario en caso de falla de disco
3.- Hacer copias de todos los datafiles de tablespaces con comandos del sistema operativo
4.- Hacer copias de todos los archivos de online redologs con comandos del sistema operativo
5.- Hacer copias de todos los archivos de control con comandos del sistema operativo
6.- Hacer copia del archivo de parámetros spfile o init%SID%.ora

Procedimiento Respaldo Caliente

1.- Ejecute comando archive log list. Note que el valor para Oldest online log sequence es el redolog más antiguo requerido para usar en el online backup

·                   SQL> archive log list;
·                Database log mode  Archive Mode
·                  Automatic archival  Enabled
·                  Archive destination  /u02/oradata/orion/archive
·                  Oldest online log sequence 672
·                  Next log sequence to archive 674
·                 Current log sequence 674
·                   SQL>

2.- Ejecute ALTER TABLESPACE nombre_tablespace BEGIN BACKUP desde sqlplus. Esto prepara el respaldo online de los datafiles del tablespace.

              SQL> alter tablespace users begin backup;

3.- Copie los datafiles por cada tablespace usando comandos de sistema operativos o productos de terceros. Asegúrese que las copias residan en un disco diferente al que se encuentran los datafiles de producción.

4.- Ejecute ALTER TABLESPACE nombre_tablespace END BACKUP desde sqlplus. Este paso completa el respaldo online del tablespace.

                SQL> alter tablespace users end backup;

5.- Repita pasos 2 al 4 hasta que todos los tablespaces se encuentren respaldados. (Se exceptúan los tablespaces TEMPORALES)

6.- Ejecute comando archive log list nuevamente. Esta vez, note que el valor para Current log sequence. Este es el último redolog que forma parte esencial del online backup

·                   SQL> archive log list;
·                   Database log mode Archive Mode
·                   Automatic archival Enabled
·                   Archive destination /u02/oradata/orion/archive
·                   Oldest online log sequence 672
·                   Next log sequence to archive 681
·                   Current log sequence 681
·                   SQL>

7.- Ejecute ALTER SYSTEM SWITCH LOGFILE para obligar a Oracle a archivar el Current redolog file. Este archivo debe ser almacenado en el área de destino de los archive log, en el caso del ejemplo  /u02/oradata/orion/archive. Si desea, copie los archive log que se generaron durante el proceso de respaldo (en el ejemplo secuencias 672 a 681) a la cinta junto con el resto del respaldo.

                SQL> ALTER SYSTEM SWITCH LOGFILE;

8.- Crear una copia del archivo de control.

                SQL> ALTER DATABASE BACKUP CONTROLFILE TO '/backupDir/control.bck';

Recuperación
Para ejecutar tareas de respaldo y recuperación RMAN debe conectarse a una base de datos target (con privilegios SYSDBA). RMAN también se puede conectar a una base de datos de CATALOGO DE RECUPERACION si se desea utilizar uno. Se especifica las bases de datos target y de catálogo de recuperación usando las opciones de línea de comando o usando el comando CONNECT dentro de RMAN.
Este comando conecta al RMAN a una base de datos target database y un catálogo de  recuperación:
% rman TARGET / CATALOG usuario_catalog/pwd@cat_tns_alias 
 
Este comando conecta al RMAN a una base de datos target sin usar un catálogo de recuperación:
% rman TARGET SYS/pwd@target_str 
 
Este comando inicia RMAN sin conectarse a una base de datos:
% rman

¿Cómo se muestra respaldo?
  1. Hacer una copia completa de su base de datos:
2.     shell> mysqldump --tab=/path/to/some/dir --opt db_name
O:
shell> mysqlhotcopy db_name /path/to/some/dir
También puede simplemente copiar todos los archivos de tablas (*.frm, *.MYD, y *.MYI) siempre que el servidor no esté actualizando nada. El script mysqlhotcopy utiliza este método. (Pero tenga en cuenta que estos métodos no funcionan si su base de datos contiene tablas InnoDB. InnoDB no almacena los contenidos de las tablas en directorios de base de datos, y mysqlhotcopy funciona solo para tablas MyISAM e ISAM.)
  1. Pare mysqld si se está ejecutando, y después reinicielo con la opción --log-bin[=file_name]. Consulte Sección 5.10.3, “El registro binario (Binary Log)”. Los archivos binarios de registro le dan la información que necesita para replicar los cambios que se han producido en la base de datos tras el punto en que usted ejecutó mysqldump.





Como restaurar una base de datos?
La copia de seguridad la puedes restaurar de varios modos. Te comentaré un par de ellos.

Primero, si tienes PhpMyAdmin instalado en el ordenador donde deseas restaurar la base de datos, tal vez te venga bien para recuperar la información. Simplemente utiliza la herramienta de ejecutar sentencias SQL. Incluso esta herramienta de PhpMyAdmin tiene un lugar donde subir un archivo con sentencias SQL para ejecutarlas en el servidor. Lo malo es que el archivo con el backup no puede ocupar más de 2 megas.


Otra manera de restaurar una copia de seguridad sería por medio del propio sistema de línea de comandos de MySQL. Con este sistema te puedes conectar a una base de datos en tu ordenador o a cualquier servidor MySQL que tengas permisos de acceso. La sentencia para restaurar una base de datos en el ordenador local sería:



mysql --password=tuclave --user=tuusuario mibase < ficherosentencias.sql


Si quisiéramos recuperar el backup en otro servidor, también lo podríamos hacer con la línea de comandos de MySQL, pero mediante una sentencia que incluya el host al que nos queremos conectar:



mysql --password=tuclave --user=tuusuario -h 192.168.1.134 basedatos < respaldo.sql


Tener en cuenta que el host al que deseamos conectar, en este caso el servidor con la IP 192.168.1.134, tiene que tener permitido el acceso con ese usuario y clave y para el ordenador desde donde estamos conectando. Así mismo, también este login tiene que disponer de privilegios para ejecutar las sentencias SQL del respaldo sobre la base de datos base datos.


Todo el tema de permisos y privilegios sobre bases de datos MySQL se administra fácilmente con MySQL Administrator.

No hay comentarios:

Publicar un comentario