2010-05-24 8 views
6

Tengo un sitio de demostración donde cualquiera puede iniciar sesión y probar una interfaz de administración.La mejor manera de restaurar automáticamente una base de datos cada hora

Cada hora me gustaría eliminar todos los datos en la base de datos SQL 2008 y restaurarlos desde el original.

Red Gate Software tiene algunas herramientas increíbles para esto, sin embargo, están más allá de mi presupuesto en este momento.

Podría simplemente hacer una copia de seguridad del archivo de datos de la base de datos, luego tener una aplicación de consola C# que lo borre y copie sobre el original. Entonces puedo tener una tarea de programación de Windows para ejecutar el .exe cada hora.

Es simple y gratis ... ¿funcionaría?

estoy usando SQL Server 2008 R2 edición Web

entiendo que Red Gate Software es técnicamente mejor porque puedo configurarlo para analizar el PP y sólo actualizar los registros que se han alterado, y el enfoque que tengo arriba es como un "martillo".

+0

No estoy seguro si su versión es compatible con esto, pero también puede ver instantáneas. Puede crear una instantánea de su base de datos y restaurarla regularmente. La base de datos debe estar en modo de usuario único cuando la restaure. – flup

Respuesta

9

Es simple y gratis ... ¿Esto funcionaría?

Sí, podría hacerlo así, sólo recuerda que poner la base de datos en modo de usuario único antes de restaurarlo de lo contrario su restauración fallará

script de ejemplo

USE master 
GO 

ALTER DATABASE YourDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
GO 



RESTORE DATABASE YourDB FROM DISK=N'D:\Backup\Pristine.BAK' WITH FILE = 1, 
NOUNLOAD, REPLACE, STATS = 10 
GO 

ALTER DATABASE YourDB SET MULTI_USER 
GO 
+0

Impresionante, voy a configurar un trabajo programado en SQL para ejecutar esto cada hora. ¡Gracias! – aron

1

Esto se puede programar con SQL y programar como un trabajo en el servidor para ejecutar una vez por hora. Ya que tiene una copia de seguridad, supongo, que es prístina, entonces todo lo que tiene que hacer es desconectar la base de datos, restaurar desde la copia de seguridad, poner de nuevo la base de datos en línea. Todo esto puede ser guionado. ¿Necesitas los guiones?

+0

Hola websch01ar, sí, por favor envíemelas por correo electrónico. Gracias aron {at} uswebpro (period) com – aron

0

Usted podría también separe la base de datos, sobrescriba los datos y los archivos de registro de su plantilla (previamente separada) y luego vuelva a adjuntar.

+0

correcto, pero eso no es automático – aron

+0

@aron Se puede automatizar de la misma manera que una restauración. Puede usar un paquete SSIS programado, un script usando xp_cmdshell o un script de comando de Windows externo con sqlcmd para las operaciones SQL. –

Cuestiones relacionadas