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
ASP.NET 2.0 / 3.5 / 4.0
Backup/Restore dati da database solo per singolo utente
martedì 19 aprile 2011 - 10.37
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 3.5
|
Windows Server 2003
|
Visual Studio 2008
|
SQL Server 2008
igorbaldacci
Profilo
| Newbie
18
messaggi | Data Invio:
mar 19 apr 2011 - 10:37
Salve a tutti,
ho realizzato un sito in cui gli utenti iscritti hanno una propria area riservata e con il proprio pannello di controllo possono fare tutte le loro operazioni di gestione. Tutto si poggia su DB MS SQL Server 2008.
Volevo ora offrire la possibilità agli utenti di poter fare in autonomia un proprio backup/ripristino del database MA SOLO PER I DATI CHE LI RIGUARDANO.
Mi spiego meglio: invece di fare un backup/ripristino di TUTTO il database (che inevitabilmente coinvolgerebbe i dati di TUTTI gli utenti) vorrei poter far eseguire queste operazioni solo sui dati dell'utente che le vuole fare. In questo modo, se l'utente X fa il ripristino dei suoi dati non ripristina anche i dati di tutti gli altri utenti.
Qual è la strada migliore da seguire per fare una cosa del genere? Come si imposta la questione?
Grazie per ogni consiglio.
Igor
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 21 apr 2011 - 12:43
>Salve a tutti,
Ciao
>Qual è la strada migliore da seguire per fare una cosa del genere?
Con le normali operazioni di backup e restore non c'è modo. Per fortuna aggiungerei
Questo tipo di operazioni sono a carico di amministratori di sistema, non degli utenti i cui dati sono salvati in anagrafiche all'interno del database stesso (tipici end user).
Di conseguenza, l'unica strada che percorrerei è quella dell'implementazione di un export di dati dedicato sul server. L'esportazione, che farei batch se i dati sono tanti (altrimenti anche un servizio, ma rischi di richiedere troppo tempo per la risposta ed una conseguente occupazione di banda enorme sul client e sul server), potrebbe ad esempio essere un file flat di testo in cui rispetti un formato comune.
L'utente finale poi potrebbe reimportare il file con una ulteriore procedura scritta apposta per fare merge dei dati.
>Grazie per ogni consiglio.
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
igorbaldacci
Profilo
| Newbie
18
messaggi | Data Invio:
gio 21 apr 2011 - 13:12
Ciao, e grazie per la tua risposta.
Guarda a cosa ho pensato:
BACKUP
---------
- SE NON ESISTE: creo "onfly" una tabella di backup con un nome del tipo "ID_DATA_NOMETABELLA", dove ID è l'ID dell'utente che fa il backup dei suoi dati, DARA è la data del backup, NOMETABELLA è la tabella da backuppare.
- SE GIA' ESISTE: elimino tutti i dati della tabella
- Copio i dati dalla tabella master alla tabella di backup
RESTORE
-----------
- Cancello i dati dalla tabella master di quell'utente
- Copio i dati dalla tabella di backup alla tabella master
L'unico cruccio è che utilizzo lo stesso database per eseguire il backup, ma poi facendo il backup giornaliero DI TUTTO IL DATABASE sto tranquillo.
Che dici, può andare come procedura? In fondo è quello che mi suggerisci anche tu di far con un file di testo di appoggio se non ho capito male.
PS: che intendi per procedura batch?
GRAZIE
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 21 apr 2011 - 18:19
>Che dici, può andare come procedura? In fondo è quello che mi
>suggerisci anche tu di far con un file di testo di appoggio se
>non ho capito male.
Sì, il file di testo ti consente di controllare i dati anche dopo tempo, una volta prodotti sono quelli. La tabella, trattata come dici tu, rischia di essere un inutile perdita di spazio e risorse su database, ma alla fine il concetto è il medesimo
>PS: che intendi per procedura batch?
schedulata, non on demand, ogni "tot", per non appesantire l'operatività del database e garantire un accesso monoprocesso e non multiutente.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
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 !