¿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.% rman TARGET / CATALOG usuario_catalog/pwd@cat_tns_alias
% rman TARGET SYS/pwd@target_str
Este comando inicia RMAN sin conectarse a una base de datos:
% rman
¿Cómo se muestra respaldo?
- 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.)
- 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.