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

#6 Pao
23/11/2005 - 15:56 | Informe spam
Estimado Alejandro si no es mucha molestía y no existe impedimento puedo
adicionarlo en mi messenger?

"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
#7 Alejandro Mesa
23/11/2005 - 16:28 | Informe spam
Pao,

Estimado Alejandro si no es mucha molestía y no existe impedimento puedo
adicionarlo en mi messenger?



Claro que si, no es ningun incoveniente. Aunque prefiero que las preguntas o
consultas sean hechas en este grupo, asi todos podemos aprender un poquito
mas.


AMB

"Pao" wrote:

Estimado Alejandro si no es mucha molestía y no existe impedimento puedo
adicionarlo en mi messenger?

"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
#8 Pao
23/11/2005 - 16:59 | Informe spam
y cual es tu cuenta ??
la mía

No te olvides de echarle un vistazo a lo que respondí del batch que me
pedistes.

Gracias.
"Alejandro Mesa" wrote:

Pao,

> Estimado Alejandro si no es mucha molestía y no existe impedimento puedo
> adicionarlo en mi messenger?

Claro que si, no es ningun incoveniente. Aunque prefiero que las preguntas o
consultas sean hechas en este grupo, asi todos podemos aprender un poquito
mas.


AMB

"Pao" wrote:

> Estimado Alejandro si no es mucha molestía y no existe impedimento puedo
> adicionarlo en mi messenger?
>
> "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
#9 Alejandro Mesa
23/11/2005 - 17:21 | Informe spam
Pao,

Segui el batch y cuando quiere hacer el restore desordenado falla porque
siempre busca el ultimo full backup.



Correcto, el backup diferencial no esta en concordancia con el ultimo full y
por eso da error. Fijate que cuando restauro el correcto, entonces el backup
diferencial es restaurado sin problemas.

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

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)



La opcion INIT hace que el device o archivo se sobreescriba y NOINIT que el
backup sea adicionado. Por questiones de legibilidad, muchos prefieren hacer
backups individuales con la fecha y hora como parte del nombre del archivo.
Claro esta, que cuando tienes los backups en un mismo device o archivo, debes
poner mucha atencion cual de ellos restauras y en que orden pues pudieras
tener una mezcla.

Backup type:
1 = Database
2 = Transaction Log
4 = File
5 = Differential
Database
6 = Differential File

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???



Si importa y mucho. El archivo de transacciones esta dividido en pequeñas
unidades llamadas "virtual log files" en las que sql server mantiene las
transacciones, unas activas (no se han terminado o hecho commit) y otras
inactivas (ya fueron committed). Cada transaccion es grabada de forma
sequencial y sql server mantiene una numeracion la cual es usada en el backup
para saber que transacciones incluye el backup (first_lsn y last_lsn). Esta
sequencia debe ser continua entre el grupo de backups del log y cuando esta
se rompe entonces los backups subsiguientes (de transaction log) ya no pueden
ser restaurados.

Corre este script, batch por batch y fijate que cuando trato de restaurar el
log 2 (file = 3) antes que el log 1 (file = 2) recivo el sgte error:

Server: Msg 4305, Level 16, State 1, Line 2
The log in this backup set begins at LSN 30000000008800001, which is too
late to apply to the database. An earlier log backup that includes LSN
29000000020200001 can be restored.
Server: Msg 3013, Level 16, State 1, Line 2
RESTORE LOG is terminating abnormally.

Este error me dice que el primer lsn (log sequence number) no concuerda con
el que se debe restaurar. Si despues restauro en el orden correcto, entonces
no problema.


use northwind
go

alter database northwind
set recovery full
go

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

select *
into t1
from orders
go

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

select *
into t2
from orders
go

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

use master
go

alter database northwind
set single_user with rollback immediate
go

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

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

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

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

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

alter database northwind
set multi_user
go

alter database northwind
set recovery simple
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

Te aconsejo que leas el tema de arquitectura del log de transacciones y lo
bacup y restore que estan en los libros en linea. Es complicado, pero una vez
que entiendas la arquitectura y como sql server lo trabaja, entonces
entenderas mucho mejor todo lo referente a backup y restore.


AMB


"Pao" wrote:

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
#10 Alejandro Mesa
23/11/2005 - 17:28 | Informe spam
Pao,

Mi cuenta es


AMB

"Pao" wrote:

y cual es tu cuenta ??
la mía

No te olvides de echarle un vistazo a lo que respondí del batch que me
pedistes.

Gracias.
"Alejandro Mesa" wrote:

> Pao,
>
> > Estimado Alejandro si no es mucha molestía y no existe impedimento puedo
> > adicionarlo en mi messenger?
>
> Claro que si, no es ningun incoveniente. Aunque prefiero que las preguntas o
> consultas sean hechas en este grupo, asi todos podemos aprender un poquito
> mas.
>
>
> AMB
>
> "Pao" wrote:
>
> > Estimado Alejandro si no es mucha molestía y no existe impedimento puedo
> > adicionarlo en mi messenger?
> >
> > "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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida