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.

viernes, 3 de mayo de 2013

mirroring

Que es Espejeo?

Database Mirroring es una solución alternativa de Alta Diponibilidad, nueva en SQL Server 2005, que puede verse como la evolución natural de Log Shipping (tecnología disponible en ediciones anteriores de SQL Server, basada en la entrega de Logs de Transacciones sobre una copia de la base de datos en un servidor secundario en espera, es decir, hacer RESTORE LOG WITH NORECOVERY a "tutti" ;-). Así, existen varias diferencias entre Database Mirroring y Log Shipping, por ejemplo, Log Shipping permite funcionar.
 Database Mirroring es una tecnología de Alta Disponibilidad basada en un modo de funcionamiento Activo / Pasivo. Es decir, mientras una Instancia realiza un papel de Servidor Principal (Activo) para una base de datos en particular, la otra instancia realiza el papel de Servidor Espejo o Secundario (Pasivo) para dicha base de datos.


 Beneficios del espejeo de Datos en un DBMS?

A diferencia de Log Shipping, Database Mirroring ofrece recuperación automática ante fallos (automatic failover) sin necesidad de disponer de ninguna solución hardware especial ni propietaria, con lo cual, se muestra como una alternativa de bajo coste a las soluciones basadas en Microsoft Cluster (o Server Clustering). Además, para casos de balanceo (failover), es posible desarrollar las aplicaciones cliente para que se re-conecten automáticamente a la base de datos activa (es decir, a la que actúe como base de datos principal), como se indica más adelante en el capítulo de Administración y Mantenimiento de Database Mirroring (ver la sección Redirección de Cliente: ADO.NET / SQL Native Client automatic redirection).

como se hace una Activación de espejeo en un DBMS?

La comunicación entre los diferentes servidores SQL Server de una topología Database Mirroring, se realiza a través de Extremos o Endpoints de SQL Server específicos para Database Mirroring, un tipo de objeto de servidor nuevo en SQL Server 2005, que permiten la creación de caminos de comunicación con Instancias de SQL Server. La ventaja de la utilización de Extremos o Endpoints, es que permiten configurar sus requisitos de Autenticación y Cifrado, ofreciendo así un camino de comunicación más o menos seguro (en función de las necesidades de cada caso). Por defecto, la creación de Extremos o Endpoints (CREATE ENDPOINT) para Database Mirroring a través del Asistente incluido en SQL Server 2005, implicará la creación de Extremos o Endpoints con Autenticación y Cifrado.
los posibles papeles o roles que puede desempeñar una instancia de SQL Server en una solución de Database Mirroring son:
  • Servidor Principal. Mantiene la copia activa de la base de datos (base de datos principal), a través de la cual, se ofrece el servicio a los usuarios. Todas las transacciones son enviadas al Servidor Espejo antes de aplicarlas en la base de datos principal.
  • Servidor Espejo (Mirror). Mantiene una copia de la base de datos principal (base de datos espejo o mirror database), y aplica todas las transacciones enviadas por el Servidor Principal, manteniendo sincronizada la base de datos espejo.
  • Servidor Testigo (Witness). Se trata de un elemento opcional. No es obligatorio o necesario implementar un Servidor Testigo (Witness) en una solución de Database Mirroring.

ejmplos de Creación de espacios de disco con espejo.


puedes usar los siguientes pasos para colocar la BD operativa inmediatamente en el servidor Mirror.

USE
master
GO

ALTER DATABASE NombredelaBD SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS
GO

/////////////////////////////
creacion:
1. Primeramente preparamos nuestra base de datos espejo en nuestro server o instancia que fungirá como tal, aquí dos puntos importantes: Que la base datos que restauremos sea el ultimo backup realizado desde la principal. A la hora de restaurarla tenemos que marcar la opción de NON RECOVERY.



2. En el Management Studio, Explorador de Objetos, Seleccionamos una base de datos, hacemos click derecho sobre ella en la opción, Task, Mirror.





3. El primer paso sería configurar la seguridad, para lo cual vamos a seguir un asistente.


En el primer paso del asistente nos preguntara si queremos tener una instancia de testigo, para este primer ejempo le diremos que No.

4. Luego definiremos el servidor principal
5. Ahora definiremos nuestra instancia o servidor espejo
6. En este paso se definen las cuentas de usuario que utilizaran tanto el servidor principal como el espejo que estén en un dominio. Para nuestro ejemplo dejaremos en blanco esta opción.


7. Finalmente terminanos de configurar el asistente de seguridad.
8. Una vez finalizado nos pedirá si deseamos iniciar el mirroring, le diremos iniciar.

9. Ya tendremos configurado nuestro mirroring como se muestra en la pantalla siguiente, desde aquí podemos iniciar el mirroring, y podemos configurar el tipo de operación que deseamos, tal y cual se planteo al inicio del articulo. Hacemos click en OK.


La Redirección Automática del cliente en una infraestructura de Database Mirroring, es una funcionalidad muy apreciada, y en este caso, es tan fácil como utilizar una sintaxis determinada en la cadena de conexión a SQL Server, como se muestra en el siguiente:


"Data Source=PORTATIL;Failover Partner=PORTATIL\MIRROR;Initial Catalog=Demo;Integrated Security=True;"