Estrategia Backup Diferencial

22/11/2005 - 20:43 por Pao | Informe spam
Hola a todos.
Si quiero implementar una estrategia de respaldos diferenciales de la
siguiente manera puede hacerlo o anivel de número de incrementales tengo
alguna limitante de número de archivos diferenciales u otros, como me afecta
y en donde el sqlserver controla eso?:
1 día del mes saco un full backup de mi base XX de mi SQLServer 2000. y el
resto de días saco un diferencial.
Mi base está en modo de recovery simple

Para restaurar tomo el full backup y el último diferencial.

Si quiero ser más estricta y hacer backup del transacction log todos los
días cada hora. el restore sería??? Full, último diferencial y cada uno de
los transacction log desde el último diferencial y mi base debe estar como
modo de recovery full.

Favor sus comentarios

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
22/11/2005 - 21:14 | Informe spam
Pao,

Estas en lo correcto, solo tengo que adicionar que en caso de algun problema
(hablo respecto a los backups del log de trans) debes hacer un backup del log
con la opcion "NO_TRUNCATE" para hacer backup de las transacciones activas,
luego haces el restore del full, ultimo diff, todos los logs desde el ultimo
diff (todo lo anterior con opcion NORECOVERY) y por ultimo el log final con
opcion (RECOVERY).

La estrategia que estas siguiendo no esta mala, solo que en caso de que la
db tenga muchas transacciones, el tamanio del backup diff sera grande y a la
hora de restaurarlo consumira mas tiempo. Para escoger la estrategia a
seguir, tambien es importante tomar en cuenta cuanto tiempo estas dispuesta a
tener la db offline durante el tiempo de restauracion.


AMB

"Pao" wrote:

Hola a todos.
Si quiero implementar una estrategia de respaldos diferenciales de la
siguiente manera puede hacerlo o anivel de número de incrementales tengo
alguna limitante de número de archivos diferenciales u otros, como me afecta
y en donde el sqlserver controla eso?:
1 día del mes saco un full backup de mi base XX de mi SQLServer 2000. y el
resto de días saco un diferencial.
Mi base está en modo de recovery simple

Para restaurar tomo el full backup y el último diferencial.

Si quiero ser más estricta y hacer backup del transacction log todos los
días cada hora. el restore sería??? Full, último diferencial y cada uno de
los transacction log desde el último diferencial y mi base debe estar como
modo de recovery full.

Favor sus comentarios
Respuesta Responder a este mensaje
#2 Alejandro Mesa
22/11/2005 - 21:16 | Informe spam
Se me olvido adjuntar un link.

Reducing Recovery Tim
http://msdn.microsoft.com/library/d...t_2qr7.asp


AMB

"Alejandro Mesa" wrote:

Pao,

Estas en lo correcto, solo tengo que adicionar que en caso de algun problema
(hablo respecto a los backups del log de trans) debes hacer un backup del log
con la opcion "NO_TRUNCATE" para hacer backup de las transacciones activas,
luego haces el restore del full, ultimo diff, todos los logs desde el ultimo
diff (todo lo anterior con opcion NORECOVERY) y por ultimo el log final con
opcion (RECOVERY).

La estrategia que estas siguiendo no esta mala, solo que en caso de que la
db tenga muchas transacciones, el tamanio del backup diff sera grande y a la
hora de restaurarlo consumira mas tiempo. Para escoger la estrategia a
seguir, tambien es importante tomar en cuenta cuanto tiempo estas dispuesta a
tener la db offline durante el tiempo de restauracion.


AMB

"Pao" wrote:

> Hola a todos.
> Si quiero implementar una estrategia de respaldos diferenciales de la
> siguiente manera puede hacerlo o anivel de número de incrementales tengo
> alguna limitante de número de archivos diferenciales u otros, como me afecta
> y en donde el sqlserver controla eso?:
> 1 día del mes saco un full backup de mi base XX de mi SQLServer 2000. y el
> resto de días saco un diferencial.
> Mi base está en modo de recovery simple
>
> Para restaurar tomo el full backup y el último diferencial.
>
> Si quiero ser más estricta y hacer backup del transacction log todos los
> días cada hora. el restore sería??? Full, último diferencial y cada uno de
> los transacction log desde el último diferencial y mi base debe estar como
> modo de recovery full.
>
> Favor sus comentarios
Respuesta Responder a este mensaje
#3 Pao
22/11/2005 - 22:55 | Informe spam
Gracias.
Una dudita más que pasaría si por a o b motivo alguien genera un backup full
en una hora diferente pero el mismo día que hago mis diferenciales, el sgte
diferencial que haga estará atado al full backup de quien haga hecho ese
backup, verdad. Osea que tengo que tener cuidado de que nadie haga otro
backup full durante el periodo de la estrategia de respaldo porque sino esta
se dañaría más aún si ese backup full que alguien saco no lo guardo sino que
era por efectos de pruebas.
Ejemplo:

BCk Full definido
domingo archivo: base.bak hora:10PM

Dif definido
Lunes archivo archivo: basedif.bak hora:10PM
Dif definido
Martes archivo: basedif2.bak hora:10PM
Dif definido
Miercoles archivo: basedif.bak hora:10PM
Dif definido
Jueves archivo: basedif2.bak hora:10PM
otro usuario autorizado lanza un backup full a las 5:PM baseprb.bak
Entonces este archivo basedif2.bak estará en funcion del baseprb.bak y no
del primero que saque base.bak.
Debo limitar este permiso para que no todos puedan ejecutar esta sentencia,
pero el dbo si podría, o no??? o podría activar un trace que me haga
seguimiento de esta sentencia o de que otra manera puedo asegurar que nadie
más excepto mis procesos hagan los backups a fin de que alguien no dañe la
secuencia de archivos.

"Alejandro Mesa" wrote:

Se me olvido adjuntar un link.

Reducing Recovery Time
http://msdn.microsoft.com/library/d...t_2qr7.asp


AMB

"Alejandro Mesa" wrote:

> Pao,
>
> Estas en lo correcto, solo tengo que adicionar que en caso de algun problema
> (hablo respecto a los backups del log de trans) debes hacer un backup del log
> con la opcion "NO_TRUNCATE" para hacer backup de las transacciones activas,
> luego haces el restore del full, ultimo diff, todos los logs desde el ultimo
> diff (todo lo anterior con opcion NORECOVERY) y por ultimo el log final con
> opcion (RECOVERY).
>
> La estrategia que estas siguiendo no esta mala, solo que en caso de que la
> db tenga muchas transacciones, el tamanio del backup diff sera grande y a la
> hora de restaurarlo consumira mas tiempo. Para escoger la estrategia a
> seguir, tambien es importante tomar en cuenta cuanto tiempo estas dispuesta a
> tener la db offline durante el tiempo de restauracion.
>
>
> AMB
>
> "Pao" wrote:
>
> > Hola a todos.
> > Si quiero implementar una estrategia de respaldos diferenciales de la
> > siguiente manera puede hacerlo o anivel de número de incrementales tengo
> > alguna limitante de número de archivos diferenciales u otros, como me afecta
> > y en donde el sqlserver controla eso?:
> > 1 día del mes saco un full backup de mi base XX de mi SQLServer 2000. y el
> > resto de días saco un diferencial.
> > Mi base está en modo de recovery simple
> >
> > Para restaurar tomo el full backup y el último diferencial.
> >
> > Si quiero ser más estricta y hacer backup del transacction log todos los
> > días cada hora. el restore sería??? Full, último diferencial y cada uno de
> > los transacction log desde el último diferencial y mi base debe estar como
> > modo de recovery full.
> >
> > Favor sus comentarios
Respuesta Responder a este mensaje
#4 Alejandro Mesa
23/11/2005 - 00:15 | Informe spam
Pao,

Correcto. Los backups diferenciales y de log estan muy ligado al ultimo full
o al backup full que los precede.

Corre este ejemplo batch por batch para que puedas ver que pasa cuando
restauras el primer backup full y luego el diferencial , habiendose hecho un
backup full en medio de ambos.

use northwind
go

backup database northwind
to disk = 'c:\temporthwind.bak'
with init
go

select *
into t1
from orders
go

backup database northwind
to disk = 'c:\temporthwind.bak'
with noinit
go

select *
into t2
from orders
go

backup database northwind
to disk = 'c:\temporthwind.bak'
with differential, noinit
go

restore headeronly
from disk = 'c:\temporthwind.bak'
go

use master
go

alter database northwind
set single_user with rollback immediate
go

restore database northwind
from disk = 'c:\temporthwind.bak'
with file = 1, norecovery
go

restore database northwind
from disk = 'c:\temporthwind.bak'
with file = 3, recovery
go

restore database northwind
from disk = 'c:\temporthwind.bak'
with file = 2, norecovery
go

restore database northwind
from disk = 'c:\temporthwind.bak'
with file = 3, recovery
go

alter database northwind
set multi_user
go

use msdb
go

exec sp_delete_backuphistory '20051123'
go

exec master..xp_cmdshell 'del c:\temporthwind.bak'
go

use northwind
go

drop table t1, t2
go


AMB

"Pao" wrote:

Gracias.
Una dudita más que pasaría si por a o b motivo alguien genera un backup full
en una hora diferente pero el mismo día que hago mis diferenciales, el sgte
diferencial que haga estará atado al full backup de quien haga hecho ese
backup, verdad. Osea que tengo que tener cuidado de que nadie haga otro
backup full durante el periodo de la estrategia de respaldo porque sino esta
se dañaría más aún si ese backup full que alguien saco no lo guardo sino que
era por efectos de pruebas.
Ejemplo:

BCk Full definido
domingo archivo: base.bak hora:10PM

Dif definido
Lunes archivo archivo: basedif.bak hora:10PM
Dif definido
Martes archivo: basedif2.bak hora:10PM
Dif definido
Miercoles archivo: basedif.bak hora:10PM
Dif definido
Jueves archivo: basedif2.bak hora:10PM
otro usuario autorizado lanza un backup full a las 5:PM baseprb.bak
Entonces este archivo basedif2.bak estará en funcion del baseprb.bak y no
del primero que saque base.bak.
Debo limitar este permiso para que no todos puedan ejecutar esta sentencia,
pero el dbo si podría, o no??? o podría activar un trace que me haga
seguimiento de esta sentencia o de que otra manera puedo asegurar que nadie
más excepto mis procesos hagan los backups a fin de que alguien no dañe la
secuencia de archivos.

"Alejandro Mesa" wrote:

> Se me olvido adjuntar un link.
>
> Reducing Recovery Time
> http://msdn.microsoft.com/library/d...t_2qr7.asp
>
>
> AMB
>
> "Alejandro Mesa" wrote:
>
> > Pao,
> >
> > Estas en lo correcto, solo tengo que adicionar que en caso de algun problema
> > (hablo respecto a los backups del log de trans) debes hacer un backup del log
> > con la opcion "NO_TRUNCATE" para hacer backup de las transacciones activas,
> > luego haces el restore del full, ultimo diff, todos los logs desde el ultimo
> > diff (todo lo anterior con opcion NORECOVERY) y por ultimo el log final con
> > opcion (RECOVERY).
> >
> > La estrategia que estas siguiendo no esta mala, solo que en caso de que la
> > db tenga muchas transacciones, el tamanio del backup diff sera grande y a la
> > hora de restaurarlo consumira mas tiempo. Para escoger la estrategia a
> > seguir, tambien es importante tomar en cuenta cuanto tiempo estas dispuesta a
> > tener la db offline durante el tiempo de restauracion.
> >
> >
> > AMB
> >
> > "Pao" wrote:
> >
> > > Hola a todos.
> > > Si quiero implementar una estrategia de respaldos diferenciales de la
> > > siguiente manera puede hacerlo o anivel de número de incrementales tengo
> > > alguna limitante de número de archivos diferenciales u otros, como me afecta
> > > y en donde el sqlserver controla eso?:
> > > 1 día del mes saco un full backup de mi base XX de mi SQLServer 2000. y el
> > > resto de días saco un diferencial.
> > > Mi base está en modo de recovery simple
> > >
> > > Para restaurar tomo el full backup y el último diferencial.
> > >
> > > Si quiero ser más estricta y hacer backup del transacction log todos los
> > > días cada hora. el restore sería??? Full, último diferencial y cada uno de
> > > los transacction log desde el último diferencial y mi base debe estar como
> > > modo de recovery full.
> > >
> > > Favor sus comentarios
Respuesta Responder a este mensaje
#5 Pao
23/11/2005 - 15:51 | Informe spam
Segui el batch y cuando quiere hacer el restore desordenado falla porque
siempre busca el ultimo full backup.

restore database northwind
from disk = 'c:\temporthwind.bak'
with file = 1, norecovery
go

restore database northwind
from disk = 'c:\temporthwind.bak'
with file = 3, recovery
go
Server: Msg 3136, Level 16, State 1, Line 1
Cannot apply the backup on device 'c:\temporthwind.bak' to database
'northwind'.
Server: Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.


En el ejemplo usted utiliza la opción noinit para que en el mismo archivo se
vayan acumulando los backup's que se generan, este mismo ejemplo aplicaría si
utilizará la opción init y obviamente rutear los archivos correspondientes
cuando restarures.
Cual sería la ventaja de usar init o noinit el archivo cuando esta añadido
está más comprimido o es igual que sean dos archivos independientes??? Por
cierto no hay un tope de backup diferenciales que podría sacar??(por ejemplo
maximo 5 o 10, etc)

Si quiero restaurar backup full y luego un diferencial más 5 de log, estos
de log deben ir en el orden correcto en el que se generaron o no importa??? y
obviamente lo que se va a ver afectado es el estado de la data???

Muchas gracias por toda su ayuda.

"Alejandro Mesa" wrote:

Pao,

Correcto. Los backups diferenciales y de log estan muy ligado al ultimo full
o al backup full que los precede.

Corre este ejemplo batch por batch para que puedas ver que pasa cuando
restauras el primer backup full y luego el diferencial , habiendose hecho un
backup full en medio de ambos.

use northwind
go

backup database northwind
to disk = 'c:\temporthwind.bak'
with init
go

select *
into t1
from orders
go

backup database northwind
to disk = 'c:\temporthwind.bak'
with noinit
go

select *
into t2
from orders
go

backup database northwind
to disk = 'c:\temporthwind.bak'
with differential, noinit
go

restore headeronly
from disk = 'c:\temporthwind.bak'
go

use master
go

alter database northwind
set single_user with rollback immediate
go

restore database northwind
from disk = 'c:\temporthwind.bak'
with file = 1, norecovery
go

restore database northwind
from disk = 'c:\temporthwind.bak'
with file = 3, recovery
go

restore database northwind
from disk = 'c:\temporthwind.bak'
with file = 2, norecovery
go

restore database northwind
from disk = 'c:\temporthwind.bak'
with file = 3, recovery
go

alter database northwind
set multi_user
go

use msdb
go

exec sp_delete_backuphistory '20051123'
go

exec master..xp_cmdshell 'del c:\temporthwind.bak'
go

use northwind
go

drop table t1, t2
go


AMB

"Pao" wrote:

> Gracias.
> Una dudita más que pasaría si por a o b motivo alguien genera un backup full
> en una hora diferente pero el mismo día que hago mis diferenciales, el sgte
> diferencial que haga estará atado al full backup de quien haga hecho ese
> backup, verdad. Osea que tengo que tener cuidado de que nadie haga otro
> backup full durante el periodo de la estrategia de respaldo porque sino esta
> se dañaría más aún si ese backup full que alguien saco no lo guardo sino que
> era por efectos de pruebas.
> Ejemplo:
>
> BCk Full definido
> domingo archivo: base.bak hora:10PM
>
> Dif definido
> Lunes archivo archivo: basedif.bak hora:10PM
> Dif definido
> Martes archivo: basedif2.bak hora:10PM
> Dif definido
> Miercoles archivo: basedif.bak hora:10PM
> Dif definido
> Jueves archivo: basedif2.bak hora:10PM
> otro usuario autorizado lanza un backup full a las 5:PM baseprb.bak
> Entonces este archivo basedif2.bak estará en funcion del baseprb.bak y no
> del primero que saque base.bak.
> Debo limitar este permiso para que no todos puedan ejecutar esta sentencia,
> pero el dbo si podría, o no??? o podría activar un trace que me haga
> seguimiento de esta sentencia o de que otra manera puedo asegurar que nadie
> más excepto mis procesos hagan los backups a fin de que alguien no dañe la
> secuencia de archivos.
>
> "Alejandro Mesa" wrote:
>
> > Se me olvido adjuntar un link.
> >
> > Reducing Recovery Time
> > http://msdn.microsoft.com/library/d...t_2qr7.asp
> >
> >
> > AMB
> >
> > "Alejandro Mesa" wrote:
> >
> > > Pao,
> > >
> > > Estas en lo correcto, solo tengo que adicionar que en caso de algun problema
> > > (hablo respecto a los backups del log de trans) debes hacer un backup del log
> > > con la opcion "NO_TRUNCATE" para hacer backup de las transacciones activas,
> > > luego haces el restore del full, ultimo diff, todos los logs desde el ultimo
> > > diff (todo lo anterior con opcion NORECOVERY) y por ultimo el log final con
> > > opcion (RECOVERY).
> > >
> > > La estrategia que estas siguiendo no esta mala, solo que en caso de que la
> > > db tenga muchas transacciones, el tamanio del backup diff sera grande y a la
> > > hora de restaurarlo consumira mas tiempo. Para escoger la estrategia a
> > > seguir, tambien es importante tomar en cuenta cuanto tiempo estas dispuesta a
> > > tener la db offline durante el tiempo de restauracion.
> > >
> > >
> > > AMB
> > >
> > > "Pao" wrote:
> > >
> > > > Hola a todos.
> > > > Si quiero implementar una estrategia de respaldos diferenciales de la
> > > > siguiente manera puede hacerlo o anivel de número de incrementales tengo
> > > > alguna limitante de número de archivos diferenciales u otros, como me afecta
> > > > y en donde el sqlserver controla eso?:
> > > > 1 día del mes saco un full backup de mi base XX de mi SQLServer 2000. y el
> > > > resto de días saco un diferencial.
> > > > Mi base está en modo de recovery simple
> > > >
> > > > Para restaurar tomo el full backup y el último diferencial.
> > > >
> > > > Si quiero ser más estricta y hacer backup del transacction log todos los
> > > > días cada hora. el restore sería??? Full, último diferencial y cada uno de
> > > > los transacction log desde el último diferencial y mi base debe estar como
> > > > modo de recovery full.
> > > >
> > > > Favor sus comentarios
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida