Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Sql Server 2005 - Snapshot Parziali
sabato 15 marzo 2008 - 10.23
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
lolic
Profilo
| Newbie
37
messaggi | Data Invio:
sab 15 mar 2008 - 10:23
Ciao a tutti!
Nell'applicazione che sto sviluppando è emersa l'esigenza di poter effettuare delle variazioni ad database ed eventualmente annullare le modifiche ripristinando la situazione. (Non sto parlando a livello di Transazione)
La base di dati attuale è SqlServer Express Edition (v. 2005).
Ho visto che tra le funzionalità di SqlServer 2005 vi è la possibilità di effettuare degli Snapshot di un DB ed di utilizzarli per ripristinare la base di dati.
Essendo l'applicazione parzialmente utilizzata putroppo non posso usare snapshot a livello di DB ma piuttosto mi servirebbe qualcosa table level. Immagino una funzionalità che possa permettere di creare degli snapshot di un gruppo di tables.
Non ho capito però se questo è attualmente fattibile.
Se non è possibile come posso risolvere il problema?(Possibilmente che impieghi mezzi già esistenti e funzionalità presenti già nella base di dati)
Ringrazio Anticipatamente
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
sab 15 mar 2008 - 16:16
>Essendo l'applicazione parzialmente utilizzata putroppo non posso
>usare snapshot a livello di DB ma piuttosto mi servirebbe qualcosa
>table level. Immagino una funzionalità che possa permettere di
>creare degli snapshot di un gruppo di tables.
>Non ho capito però se questo è attualmente fattibile.
Ciao Andrea,
i Database Snapshot introdotti con SQL Server 2005 lavorano a livello di data page. Prima che una pagina venga modificata per la prima volta nel database sorgente, viene copiata nel database snapshot.
Lo snapshot memorizza la pagina originale, preservando le righe al momento della creazione dello snapshot stesso. Gli aggiornamenti successivi alla stessa pagina non vengono trasferiti nello snapshot.
L'intero processo viene ripetuto per tutte le pagine modificate per la prima volta.
Capisci bene che non è possibile attivare uno snapshot a livello di tabella, visto che si introdurrebbero dei gravi problemi di consistenza dei dati.
>Se non è possibile come posso risolvere il problema?(Possibilmente
>che impieghi mezzi già esistenti e funzionalità presenti già
>nella base di dati)
Potresti definire dei triggers sulle tabelle interessate che vadano a copiare i dati prima che vengano modificati in apposite tabelle di log. Nel caso volessi ripristinare i dati originali dovresti semplicemente sovrascrivere le tabelle originali con i valori precedentemente archiviati.
>Ringrazio Anticipatamente
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !