Sincronizzare oppure come fare un backup ad un db creato con sql ?

giovedì 05 aprile 2012 - 08.20
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows Server 2003  |  Windows Vista  |  Visual Studio 2010  |  SQL Server 2008 R2  |  SQL Server Express  |  Office 2003  |  Internet explorer 8.0

bennygoll Profilo | Newbie

Grazie anticipatamente per tutti quelli che in qualche modo potranno aiutarmi.
Volevo fare in modo che su due notebook io possa sincronizzare un db creato con microsoft sql , (di solito non lavorano in rete) mi basterebbe se potessi fare il backup dei dati inseriti e poi fare il restore sull'altro si può fare?

lbenaglia Profilo | Guru

>mi basterebbe se potessi fare il backup dei dati inseriti e poi
>fare il restore sull'altro si può fare?

Ciao,

Se hai un database "master" su un server ed intendi copiarlo sui due notebook puoi utilizzare i comandi BACKUP DATABASE e RESTORE DATABASE:
http://msdn.microsoft.com/en-us/library/ms186865.aspx
http://msdn.microsoft.com/en-us/library/ms186858.aspx

Se utilizzi login SQL Server, ricorda che dopo il restore vanno riassociate ai corrispettivi user account mediante il comando ALTER USER...WITH LOGIN oppure tamite la cara vecchia sp_change_users_login:
http://msdn.microsoft.com/en-us/library/ms176060.aspx
http://msdn.microsoft.com/en-us/library/ms174378.aspx

Ciao!
--
Lorenzo Benaglia
http://blogs.dotnethell.it/lorenzo/

bennygoll Profilo | Newbie

Grazie per la risposta
Credo di avere due master perche è una istallazione su locale, in sostanza il db gestisce un sito di driver www.dbdriver.info (che attualmente non utilizzo) che per comodita ho installato su due notebook ed ognuno di noi si carica i suoi driver (poi dopo lo mettiamo in rete) la cartella dove vengono depositati i pacchetti driver la posso tranquillamente sincronizzare, il problema nasce con la lista degli id contenuta nel database.

lbenaglia Profilo | Guru

>Credo di avere due master perche è una istallazione su locale,
>in sostanza il db gestisce un sito di driver www.dbdriver.info
>(che attualmente non utilizzo) che per comodita ho installato
>su due notebook ed ognuno di noi si carica i suoi driver (poi
>dopo lo mettiamo in rete) la cartella dove vengono depositati
>i pacchetti driver la posso tranquillamente sincronizzare, il
>problema nasce con la lista degli id contenuta nel database.

Non ho capito, esiste un terzo db "sul sito" che viene alimentato dai dati contenuti nei db locali ad ogni portatile?
Prova a fornirci maggiori dettagli.

Ciao!

--
Lorenzo Benaglia
http://blogs.dotnethell.it/lorenzo/

bennygoll Profilo | Newbie

Ok scusa forse non sono stato molto chiaro, il sito momentaneamente è stato abbandonato, poichè aruba per la gestione di database sql di grandi dimensioni chiede troppo e quindi abbiamo deciso di caricare in locale su due notebook il sito, io carico tutti i driver che ho conservato e lui altrettanto, in sostanza ci dividiamo il lavoro, poi magari quando sincronizzeremo i nostri dati decideremo di caricare tutto su un serverino e lo mettiamo in rete.
Spero di essere stato più chiaro e grazie di nuovo.

lbenaglia Profilo | Guru

>Ok scusa forse non sono stato molto chiaro, il sito momentaneamente
>è stato abbandonato, poichè aruba per la gestione di database
>sql di grandi dimensioni chiede troppo e quindi abbiamo deciso
>di caricare in locale su due notebook il sito, io carico tutti
>i driver che ho conservato e lui altrettanto, in sostanza ci
>dividiamo il lavoro, poi magari quando sincronizzeremo i nostri
>dati decideremo di caricare tutto su un serverino e lo mettiamo
>in rete.

In questo caso potreste procedere con un metodo "artigianale":

1) Ognuno di voi esporterà via bcp.exe il contenuto delle tabelle che intendete mantenere allineate in uno o più file di testo (1 per tabella);
2) Vi scambiate i file;
3) Ognuno importerà i file dell'altro utente sempre via bcp.exe (o BULK INSERT) in tabelle di stage;
4) Mediante il comando MERGE "fonderà" nelle proprie tabelle i dati dell'altro utente prelevandoli dalle tabelle di stage, inserendo i dati mancanti (in questo caso non credo esista la possibilità di aggiornamenti sulle stesse righe).

>Spero di essere stato più chiaro e grazie di nuovo.
Anch'io

Ciao!
--
Lorenzo Benaglia
http://blogs.dotnethell.it/lorenzo/

bennygoll Profilo | Newbie

Sono comandi che non ho mai utilizzato ci provo è ti faccio sapere però prima di farlo ti volevo far vedere l'unica tabella del nostro db come è trutturata.
Come puoi vedere Esiste un unica tabella chiamata "DeviceList" con cinque colonne la prima "DeviceID" contiene tutti gli ID prelevati da dentri i file *.inf contenuti nei driver, poi viene specificato il venditore "Vendor" il sistema operativo "Version" il posto in cui verranno conservati i driver "Download" e la dimensione dei pacchetti "MB"
Aspetto un tuo ok per procedere ciao e di nuovo grazie

lbenaglia Profilo | Guru

>Aspetto un tuo ok per procedere ciao e di nuovo grazie
Puoi procedere

Ciao!
--
Lorenzo Benaglia
http://blogs.dotnethell.it/lorenzo/

bennygoll Profilo | Newbie

Ho usato questo comando per esportare:
BCP nomeDB..nometabella out file.txt -U (username) -P (pwd) -S (servername)
poi per importare dovrò usare:
BCP nomeDB..nometabella in file.txt -U (username) -P (pwd) -S (servername)

è uscito un messaggio durante l'esportazione
nome file host [bcp.fmt] avvio copia in corso tutto ok ma non trovo il file....

lbenaglia Profilo | Guru

>Ho usato questo comando per esportare:
>BCP nomeDB..nometabella out file.txt -U (username) -P (pwd) -S
>(servername)
>poi per importare dovrò usare:
>BCP nomeDB..nometabella in file.txt -U (username) -P (pwd) -S
>(servername)
>
>è uscito un messaggio durante l'esportazione
>nome file host [bcp.fmt] avvio copia in corso tutto ok ma non
>trovo il file....

Quando esporti i dati su un file devi speficare anche un formato. Nel tuo caso puoi tranquillamente utilizzare il formato nativo con l'opzione -n dato che il file verrà importato su un'altra istanza SQL Server.
Trovi tutti i dettagli sui Books Online:
http://msdn.microsoft.com/en-us/library/ms162802.aspx

Ciao!
--
Lorenzo Benaglia
http://blogs.dotnethell.it/lorenzo/

bennygoll Profilo | Newbie

bcp MSSql38579.dbo.DeviceList out c:\DeviceList.dat -N -T
Questo è il comando che ho utilizzato per esportare ed è andato a buon fine creandomi un file di circa 8Mb in formato .dat
ora per importare devo utilizzare?

lbenaglia Profilo | Guru

>bcp MSSql38579.dbo.DeviceList out c:\DeviceList.dat -N -T
>Questo è il comando che ho utilizzato per esportare ed è andato
>a buon fine creandomi un file di circa 8Mb in formato .dat
>ora per importare devo utilizzare?
Dai un'occhiata al link che ti ho indicato sopra e ti risponderai da solo.

Ciao!

--
Lorenzo Benaglia
http://blogs.dotnethell.it/lorenzo/

bennygoll Profilo | Newbie

Avevo già dato un occhiata al link ma non ero sicuro di aver ben capito come utilizzare il comando "in" si utilizza così?

bcp MSSql38579.dbo.DeviceList in c:\DeviceList.dat -N -T
Ci sono riuscito
Grazie per i tuoi consigli Ciao alla prossima
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 !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5