2010-05-24 16 views
6

Ho un sito demo in cui chiunque può accedere e testare un'interfaccia di gestione.Il modo migliore per ripristinare automaticamente un database ogni ora

Ogni ora vorrei scaricare tutti i dati nel database SQL 2008 e ripristinarlo dall'originale.

Red Gate Software ha alcuni strumenti fantastici per questo, tuttavia sono al di fuori del mio budget in questo momento.

Posso semplicemente eseguire una copia di backup del file di dati del database, quindi disporre di un'app console C# che la elimina e copia sull'originale. Quindi posso avere un'attività di pianificazione di Windows per eseguire l'exe ogni ora.

È semplice e gratuito ... funzionerebbe?

sto usando SQL Server edizione 2008 R2 Web

Capisco che Red Gate Software è tecnicamente migliore perché posso impostare per analizzare il db e aggiornare solo i record che sono stati alterati, e l'approccio che ho sopra è come un "martello da slittino".

+0

Non sicuro se la tua versione supporta questo, ma puoi anche guardare le istantanee. È possibile creare un'istantanea del proprio database e ripristinarlo regolarmente. Il database deve essere in modalità utente singolo quando lo si ripristina. – flup

risposta

9

È semplice e gratuito ... funzionerebbe?

Sì, si potrebbe fare così, basta ricordarsi di mettere il DB in modalità utente singolo prima di ripristinarlo altrimenti il ​​ripristino non riuscirà

script di esempio

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

Impressionante, mi limiterò a impostare un lavoro pianificato in SQL per eseguirlo ogni ora. Grazie! – aron

1

Questo può essere script utilizzando SQL e pianificato come lavoro sul server da eseguire una volta all'ora. Dal momento che si dispone di una copia di backup, presumo, che è incontaminata, quindi tutto ciò che dovete fare è portare il database offline, ripristinare dal backup, riportare il database online. Tutto questo può essere copiato. Hai bisogno degli script?

+0

Ciao websch01ar, sì, per favore mandameli via email. Grazie aron {at} uswebpro (periodo) com – aron

0

Si potrebbe scollegare anche il database, sovrascrivere i dati e registrare i file dal modello (precedentemente rimosso) e quindi ricollegarli.

+0

a destra, ma non è automatico – aron

+0

@aron Può essere automatizzato allo stesso modo di un ripristino. È possibile utilizzare un pacchetto SSIS pianificato, uno script che utilizza xp_cmdshell o uno script di comando Windows esterno con sqlcmd per le operazioni SQL. –

Problemi correlati