Foro ZonaOracle
Septiembre 06, 2010, 09:37:18 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
Páginas: [1]
  Imprimir  
Autor Tema: Como restaurar MÁS RAPIDO con rman  (Leído 197 veces)
lmp
Newbie
*
Mensajes: 14


Ver Perfil Email
« : Julio 30, 2010, 08:27:27 »

Hola :

Primeramente agradezco la ayuda que me han dado hasta ahora .. gracias a eso he logrado implementar un conjunto de scritps con los que mantengo duplicada la base de datos en mi servidor de respaldo cada 24 horas . esto lo realizo salvando cada una hora de manera incremental y restaurando todo en la noche ... de esta manera tengo la base duplicada hasta el dia anterior y guardo en el mismo servidor todas las salvas cada hora para en caso de desastre restaurar hasta el punto más cercano posible....

Ahora tengo una duda:

Haciendo estas salvas incrementales cada hora puedo restaurar en el servidor de respaldo de alguna manera rápida ...
Hasta ahora la restaura diaria demora el mismo tiempo que la restaura semanal que es de nivel 0.

Me apresto a hacer pruebas con uan base más pequeña ya que la mía tiene 70 GB y cada prueba con su tamaño total demora 2 y 3 horas.... pero quería preguntar esto para no perder tiempo con algo que no conozco y que además puede que sea imposible .. he preguntado y me han dicho que siempre la restaura demora lo mismo porque debe recorrer todo el fichero de la salva nivel 0 .... etc

Si me pudieran ayudar .. se lo agradecería...

LMP
En línea
Orixs
Jr. Member
**
Mensajes: 70


Ver Perfil WWW Email
« Respuesta #1 : Julio 30, 2010, 11:48:23 »


Hola

Es dificil contestar sin conocer la arquitectura y los y RPO/RTO.

Que versión de Oracle es ?
Tamaño de la base ?
Cantidad de redo por día ?
Cantidad de Transacciones ?
Cantidad de Usuarios concurrentes ?
Sistema Operativo ? Versión ?
Plataforma ?
Caracteristicas de la configuración ? (Memoria, CPU, red)
Ancho de banda entre los nodos primario y secundario (de replicación manual) ?
Porque no usas Data Guard ?
Tenés idea cuales son el RTO y RPO requeridos por el negocio ?
Politica de backups ? (tipos de backup, frecuencia, a cinta o a disco, config de rman, detalle de script de backup, etc)
Tiempos de backups ?
Horario de servicio de la base de datos ?


Aclaración:
RTO (Recovery Time Objective)
Expresa el tiempo que puede tomarse el área de Adm de DB en caso de un fallo, en dejar la base
de datos dando servicio,  sin que el negocio se vea afectado.

RPO (Recovery Point Objective)
Expresa en tiempo, la cantidad de datos que es posible perder en caso de fallo sin que ello afecte
negativamente al negocio.

Cuanto más detalle des, más fácil va a ser que encontremos la solución más óptima para el caso.

En línea

Saludos

Julián
Oracle Certified Professional
Orixs Consulting
Bs.As. Argentina
www.Orixs.com.ar
lmp
Newbie
*
Mensajes: 14


Ver Perfil Email
« Respuesta #2 : Agosto 02, 2010, 11:17:40 »

 Que versión de Oracle es ?
ORACLE 11G  Patch 11.1.0.7 32-bit

Tamaño de la base ?
Cuando hago la salva completa con rman son 70 GB
Cuando exporto igual ..70 GB
El enterprise manager me dice 170 GB
Los ficheros de datos tienen:
 150GB Imagenes
 10 GB Datos
   6 GB INdices

Cantidad de redo por día ?
Cantidad de Transacciones ?
Disculpen pero no sé como sacar estas estadísticas.... redos y transacciones

Cantidad de Usuarios concurrentes ? Pueden estar accediendo a la base APROX 20 usuarios a la vez

Sistema Operativo ? Versión ? SO: Windows Server 2003 Enterprise Edition  SP2

Plataforma ? .........??????????????

Caracteristicas de la configuración ? (Memoria, CPU, red)
RAM 5GB
2 CPU DUAL CORE INtel Xeon 3.00 GHz
Red LAN TCP 100MB

Ancho de banda entre los nodos primario y secundario (de replicación manual) ?
100MB

Porque no usas Data Guard ?
Te explico:
Desde hace meses estuve tratando de configurar un DG pero despues de lograr elaborar una "guía" para
dicho proceso pude instalarlo en las bases adyacentes que alimentan mi base "CENTRAL" ...
pero al intentar ponerlo aqui luego de duplicar la BD el kernel de windows se bloquea y no puedo hacer mas nada...
he consulatdo varios blogs y amigos especialistas en Oracle... pero la solución que me han dado es mudar
a SO LINUX los servers de BD o mudar a Windows 64 Bits.... esto no lo puedo hacer ya que el servidor de BD
es a su vez servidor de aplicaciones y el sistema que se usa para la producción usa servicios windows programados
a 32 bits ...
Además no cuento con servers potentes para seguir realizando pruebas con esta base "CENTRAL". Por lo que decidí
volver al viejo conocido RMAN con el cual resuelvo el problema de la duplicidad de la BD en el server de respaldo ... el hecho de perder 1 hora de trabajo puede asimilarse....


Tenés idea cuales son el RTO y RPO requeridos por el negocio ? NO

Politica de backups ? (tipos de backup, frecuencia, a cinta o a disco, config de rman, detalle de script de backup, etc)
Tiempos de backups ?   

Duplico la base diariamente usando RMAN...
Una salva semanal level 0 DOMINGO y salvas diarias level 1 los demás días
Además salva cada una hora level 1.... que se restauran junto a la salva diaria ..en la noche


Horario de servicio de la base de datos ?
LAS 24 HORAS ... además de ser una BD de produción es consultada desde varias empresas durante todo el día...


ESPERO SU AYUDA.. GRACIAS POR ADELANTADO

LMP
En línea
Orixs
Jr. Member
**
Mensajes: 70


Ver Perfil WWW Email
« Respuesta #3 : Agosto 02, 2010, 12:39:24 »


En resumen

RAM 5GB
2 CPU DUAL CORE INtel Xeon 3.00 GHz
Red LAN TCP 100MB
Windows Server 2003 Enterprise Edition  SP2
32 bits
ORACLE 11G  Patch 11.1.0.7 32-bit
Tamaño 70gb usados
Usuarios concurrentes 20
Ancho de banda entre los nodos primario y secundario 100MB
Una salva semanal level 0 DOMINGO y salvas diarias level 1 los demás días
Además salva cada una hora level 1.... que se restauran junto a la salva diaria ..en la noche
Disponibilidad LAS 24 HORAS


Pequeña Fábula
Lo que se hace para definir las politicas de backups y alta disponibilidad es ante nada
tener la siguiente charla con el responsable funcional de la aplicación.
Nosotros
         "Su hubiera un fallo, cuanto tiempo podría tomarme para volver a dejar la base online?
         y cuanta perdida de datos podría perder en caso de no poder recuperar todo?".
Funcional
         Pero estás loco ? esta aplicación es super crítica, nunca puede haber fallos y si los
         hubiera, no podrían ser más de dos al año y tendrámos que tener la base online en menos
         de una hora sin perdida de datos alguna.
Nosotros
         Ok, para eso necesitamos instalar un ambiente de máxima disponibilidad que sería
         Oracle RAC de dos nodos con una base de datos standby también en RAC situada
         en otro database server, placas de 2gbite redundantes entre los interconnects de
         los RACs y entre la base primaria y standby, y otra placa 2gbite para la red de backup.
         Licencia de VTL para los backups.... etc
Funcional
         Cuanto sale todo eso ?
Nosotros
         Precio de lista, mmmm, unos xxxmil dólares.
Funcional
         WHAT A FUC..................?
         En realidad la aplicación no es tan crítica.
Nosotros
         Ok, pasame nuevamente los RTO y RPO acordados y te paso la propuesta ajustada.

Por eso, todo depende del SLA del negocio, es decir cuan disponible tiene que estar la base de datos.
No es lo mismo si el funcional te dice:
"En esta base se almacenan los datos de ventas de la despensa de Pepe solo de 9 a 18 y si pasa algo podemos perder hasta 48 hs de datos y tardar 48 hs en dejarla online"
que si te dice:
"Esta base almacena los datos estádisticos que requiere para funcionar el sistema refrigerante de un reactor nuclear, requiere máxima disponibilidad y si hay un fallo no vamos a sobrevivir para que nos despidan"
Obvio que las politicas de backups para los dos casos van a ser muy diferentes.

Yendo a tu política de backup
   "Duplico la base diariamente usando RMAN..."
   Usando DUPLICATE de RMAN ?

   "Una salva semanal level 0 DOMINGO y salvas diarias level 1 los demás días
    Además salva cada una hora level 1.... que se restauran junto a la salva diaria ..en la noche"

    Acá me confundí, para que los niveles 1 cada una hora ?
    OJO que tomar backups todo el tiempo no es la mejor solución. Tomar backups es un proceso
    que le pone carga a la base de datos.

    Tené en cuenta que la política de backups se hace pensando en la recuperación.
    Imaginate que se te rompe la base de datos un Domingo justo antes de comenzar el backup de
    nivel 0. Para recuperar la base necesitarías el nivel 0 del domingo anterior, más todos los niveles 1
    diarios hasta el sábado, más todos los archivelogs hasta el momento del fallo.

Me parece que tendrías que consultar al responsable funcional cuales son los horarios de servicio y demás.
Redefinir la política de backups en base a esos datos y hacer la replicación a la standby mediante la recuperación de archivelogs.


En línea

Saludos

Julián
Oracle Certified Professional
Orixs Consulting
Bs.As. Argentina
www.Orixs.com.ar
lmp
Newbie
*
Mensajes: 14


Ver Perfil Email
« Respuesta #4 : Agosto 03, 2010, 12:28:40 »

Primeramente gracias por tener tanta paciencia conmigo....

Luego de consultar varios blogs de Oracle y por último seguir tus indicaciones he entendido que hacer salvas level 1 cada una hora no es recomendable... y además (como me dices) de ocurrir algún desastre de todos modos necesitaría TODAS las salvas level1 desde el Domingo hasta el momento del problema...

Por este motivo estoy intentando diseñar la programación de las salvas para hacer una salva diaria level 1 pero ACUMULATIVA... y para eso necesito aclarar una duda :

Suponiendo que diariamente restauro la salva level 1 acumulativa en en horario de la noche ...(te adjunto los scrips que uso en el origen y el destino) puedo actualizar la base de datos de respaldo con lo ARCHIVELOGS que se generan durante el dia en la base de producción??????????

ORIGEN:

SALVA SEMANAL

run {
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default

# Para Salva Semanal

 allocate CHANNEL C1 DEVICE TYPE DISK FORMAT 'D:\SalvaDIE\Semanal_%U.bak' MAXPIECESIZE 10024 M;
 backup as compressed backupset incremental level 0 check logical database plus archivelog delete input;
 
release channel C1;
crosscheck backup;
change archivelog all crosscheck;
delete noprompt obsolete;
}

SALVA DIARIA

run {
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default

# Para Salva Diaria

 allocate CHANNEL C1 DEVICE TYPE DISK FORMAT 'D:\SalvaDIE\Diaria_%U.bak' MAXPIECESIZE 1024 M;
 backup as compressed backupset incremental level 1 check logical database plus archivelog delete input;
 
 
 
 # probando level 2
 # backup as compressed backupset incremental level 2 check logical database plus archivelog delete input;

release channel C1;
crosscheck backup;
change archivelog all crosscheck;
delete noprompt obsolete;
}
exit;

SALVA CADA UNA HORA DESDE LAS 8AM hasta las 8PM (horario de trabajo)

run {
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default

# Para Salva Cada Hora

 allocate CHANNEL C1 DEVICE TYPE DISK FORMAT 'D:\SalvaDIE\Hora_%U.bak' MAXPIECESIZE 1024 M;
 backup as compressed backupset incremental level 1 check logical database plus archivelog delete input;
 
 
release channel C1;
crosscheck backup;
change archivelog all crosscheck;
delete noprompt obsolete;
}
exit;
En línea
lmp
Newbie
*
Mensajes: 14


Ver Perfil Email
« Respuesta #5 : Agosto 03, 2010, 12:41:25 »

Disculpa pero me faltó la parte de la restaura en el sevidor de respaldo.

Aclaro que copio los backups control files en sus respectivos directorios en el servidor de respaldo .. así como los ficheros de salva en los mismo caminos que en el servidor principal ...
Tengo una serie de scripts de msdos en ambos server para organizar, depurar y resguardar los ficheros necesarios para la restaura (backups control files, etc)

Pues bien .. para la restaura tanto semanal como diaria ejecuto este scritp:

run
{
 shutdown immediate;
 startup nomount;
 restore controlfile from Autobackup;
 alter database mount;
 restore database;
 recover database;
}

al final del script me da un error porque no tengo los archivelogs copiados en el servidor de respaldo ..

por lo que lanzo otro para abrir la BD :

run
{
 alter database open resetlogs;
}



y ya... de esta manera.. voy actualizando diariamente la BD de respaldo ..

Me puedes decir hasta que punto estoy haciendo las cosas mal....

gracias de nuevo..
En línea
Orixs
Jr. Member
**
Mensajes: 70


Ver Perfil WWW Email
« Respuesta #6 : Agosto 03, 2010, 01:32:49 »


Lo que yo haría sería Configurar Data Guard jejej
porque tiene contemplada muchas cosas que vos vas a tener que ver manualmente, como el
echo de no borrar ningun archivelog que no haya sido aplicado en la standby.

Haciendo tantas cosas manuales es fácil que te equivoques y te dés cuenta recién
el día que necesites recuperar y nada funcione.

Peeeeeeeeero, si no va Data Guard.

Backup full todos los días en la ventana horaria con menos actividad.
Replicación y recuperación manual de los archivelogs al host standby.

Configuración estatica de rman
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;

Script de backup full

RUN {
BACKUP CHECK LOGICAL
AS COMPRESSED BACKUPSET
INCREMENTAL LEVEL 0
TAG = BACKUP_FULL
FORMAT '/tmp/Full_%U.bak'
DATABASE
PLUS ARCHIVELOG DELETE INPUT;
}

No hace falta que restaures todo el tiempo la base en la standby, simplemente continuá
aplicandolé los archivelogs.

En línea

Saludos

Julián
Oracle Certified Professional
Orixs Consulting
Bs.As. Argentina
www.Orixs.com.ar
lmp
Newbie
*
Mensajes: 14


Ver Perfil Email
« Respuesta #7 : Agosto 03, 2010, 02:00:14 »

PRECISAMENTE AHÍ MI MAYOR PROBLEMA....EN LA APLICACIÓN DE LOS ARCHIVE LOGS

El DATAGUARD NO LO PUDE INSTALAR POR (como ya te dije) LA IMPOSIBILIDAD DE LA APLICACIón DE LOS REDOS ... El kernel de windows se bloqueaba....

Me podrías ayudar con la aplicación de los archive logs en el servidor de respaldo ...
Como haría esto ???

Suponiendo que no pierdo ningun archive logs... y que logro manualmente ir copiandolos para el 2do servidor... cada cierto tiempo ...como actualizo mi BD de respaldo a partir de ellos ?????

Gracias nuevamanete por tu paciencia con nosotros los "lentos"

Lmp

En línea
Orixs
Jr. Member
**
Mensajes: 70


Ver Perfil WWW Email
« Respuesta #8 : Agosto 03, 2010, 02:19:12 »


Me parece que tendrás que enfocar tu esfuerzo en ver por qué se cuelga windows en la aplicación de
los archivelogs. Mirá si en un fallo crítico tenés que recuperar la base al último momento, se palma
windows en la aplicación de archivelogs y encima tu jefe se entera de que ya sabías hace rato que
esto le pasaba a windows. ups

Se cuelga en la aplicación o en la transmisión al servidor standby ?
Cual se cuelga el windows de origen o el de destino ? o ambos ?
Podrías describir los pasos exactos que ocurren antes de que windows se cuelgue ?
Dice algo el event viewer ?

También hay que tener en cuenta que 11gR1 fué el Windows Vista de Oracle :(
7 patch sets en tan poco tiempo .....
11gR2 es muchismo mejor.

La aplicación de los archivelogs la haces simplemente con un recover database en rman.


En línea

Saludos

Julián
Oracle Certified Professional
Orixs Consulting
Bs.As. Argentina
www.Orixs.com.ar
lmp
Newbie
*
Mensajes: 14


Ver Perfil Email
« Respuesta #9 : Agosto 03, 2010, 02:50:52 »

El windows se cuelga cuando ejecuto :

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT  LOGFILE DISCONNECT FROM SESSION;

luego de haber duplicado la BD y haberla abierto ...

Por eso no pude seguir con la implantación del Dataguard...

Te menciono que NUNCA he tenido que recurrir a la restaura del oracle ... todo este trabajo es previendo desastres...

Inmerso en esto tengo programada hasta una exportación full del usuario oracle diariamente..

Ahora bien ... me dices que tan solo haciendo un recover puedo aplicar los archive logs .. y para eso quisiera saber :
Si copio (por supuesto) los ficheros archive logs en el mismo camino del servidor de respaldo que el primario y suponiendo que ya hice la restaura de la salva level 0 ... como tengo que tener la base para realizar este recover ..????

es decir .. si ya ejecuté restore database y recover database....
luego abrí la base de datos...

y quiero actualizar con los archive logs .... tengo que bajar el oracle ..???

puedo hacer esto con este script???

run
{
 shutdown immediate;
 alter database mount;
 recover database;
 alter database open resetlogs;
}

una vez mas te agradezco la paciencia
En línea
Páginas: [1]
  Imprimir  
 
Ir a:  

Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC
Minerva Theme | The Simple Machines Forum Directory