Estoy usando SQL Server 2014 y esta es la situación:
- Tengo el servidor A y el servidor B.
- Durante la noche ETL se procesa en el servidor A.
- Una vez que se completa el proceso de carga, se realiza una copia de seguridad de la base de datos X (con
CHECKSUM
yRESTORE VERIFYONLY
para garantizar la confiabilidad) y luego se envía al servidor B. - El servidor B recibe el
bak
archivo y luego restaura la base de datos allí.
Quiero usar una estrategia de respaldo diferencial para que:
La copia de seguridad completa solo se realiza el sábado,
es decir, la copia de seguridad completa en el servidor A el sábado -> enviar al servidor B -> Restaurar la copia de seguridad completa en el servidor BEl resto de los días será una copia de seguridad diferencial,
es decir, una copia de seguridad diferencial en el servidor A -> enviar al servidor B -> Restaurar la copia de seguridad diferencial en el servidor B
Lo intenté pero recibí un error que decía:
el registro o la copia de seguridad diferencial no se pueden restaurar porque no hay archivos listos para avanzar.
No estoy seguro de por qué. Revisé sys.database_files
el servidor A y el servidor B, y puedo ver que differential_Base_LSN
y differential_base_GUID
son iguales. ¿En cualquier lugar / algo más para verificar?
Por cierto, en el paso 2 anterior, cuando estoy restaurando la copia de seguridad diff en el servidor B, ¿siempre necesito restaurar tanto la copia de seguridad completa + la copia de seguridad diferencial cada vez?
Solo restauré la copia de seguridad diferencial WITH RECOVERY
(y recibí ese mensaje de error) porque la copia de seguridad completa ya se restauró el día anterior.
Para aclarar: Sí, quiero que la base de datos en el servidor B sea legible entre diferenciales. ¿Cómo puedo evitar eso? ¿Es mi única opción RESTORE FULL (WITH NORECOVERY)
+ RESTORE DIFF (WITH RECOVERY)
secuencia combinada cada noche?
Cualquier orientación será muy apreciada.
fuente