¿Es posible hacer una copia de seguridad y restaurar parte de una base de datos en sql-server?

19

Tenemos una base de datos sql-server 2005 que transferimos regularmente de nuestro sitio cliente al nuestro. Esto lleva mucho tiempo porque no tenemos una conexión directa y tenemos que transferir el archivo a través de su aplicación de transferencia de archivos basada en la web. La base de datos actualmente es de aproximadamente 10 GB, sin embargo, no necesitamos todos los datos, la mayor parte se encuentra en tablas de auditoría y tablas que contienen valores calculados que se pueden volver a generar.

He buscado crear un grupo de archivos para contener las tablas de auditoría y esperaba poder hacer una copia de seguridad y restaurar el grupo de archivos principal. Puedo hacer una copia de seguridad, pero al restaurar recibo un error que dice que no la estoy restaurando en la misma base de datos. ¿Es posible restaurar parte de una base de datos a un servidor diferente usando grupos de archivos? ¿Hay una mejor manera de hacer esto?

Adam Butler
fuente
1
Podría beneficiarse al leer esta pregunta: la copia de seguridad más pequeña posible ... con SQL Server , y especialmente la respuesta de Brent.
Marian
Dado que esto no parece posible sin mucho hackery Creo que podemos fijarnos en mover todas las mesas de registro de auditoría a una base de datos independiente
Adam Butler,
¿No requeriría esto un cambio de código en la aplicación? Eso es un poco pedirle al cliente que pase.
Shawn Melton

Respuestas:

15

Para ser honesto, esto es más fácil:

  • copia de seguridad / restaurar una copia localmente
  • eliminar datos no deseados de la copia (con DELETE o TRUNCATE TABLE, no DROP ...)
  • enviar la copia

No me molestaría con los grupos de archivos debido a la complejidad adicional que notó ...

gbn
fuente
1
Sugiero cambiar esta base de datos recientemente restaurada a un modelo de recuperación simple. msdn.microsoft.com/en-CA/library/ms189272.aspx
datagod
7

La forma en que habla de solo necesitar el grupo de archivos principal, me parece que solo desea la estructura de la base de datos y una cantidad muy pequeña de datos. Sugeriría si solo desea una actualización de la estructura de la base de datos (objetos, tablas, etc.) para simplemente crear un script de la base de datos con todos los objetos. Esto se puede hacer rápida y fácilmente con PowerShell.

Luego, los datos que realmente necesita, que no se pueden regenerar, simplemente expórtelos (un script de PowerShell también podría hacerlo). Estoy seguro de que el archivo de exportación se puede comprimir a un tamaño pequeño y luego transferir a través de la conexión a su sitio.

Por supuesto, al igual que este, la sugerencia de @gbn podría ser programada, por lo que dependerá de usted determinar qué opción lleva la menor cantidad de tiempo.

Shawn Melton
fuente
2

Esto es posible usando la restauración gradual . Los objetos y los grupos de archivos de la base de datos de origen deben organizarse de manera que sea compatible. RESTORE requiere palabras clave específicas adicionales.

Si bien el concepto puede tomar un poco de tiempo para acostumbrarse, la cantidad de secuencias de comandos para implementar no es más que eso para otras soluciones sugeridas.

Michael Green
fuente
-1

Haga clic derecho y genere scripts, luego cambie el nombre de la base de datos a destino (USE db).

Explicado aquí

Judas
fuente
¿Qué tiene de malo?
Jude