Sinronizzare 2 database

mercoledì 25 febbraio 2015 - 11.25
Tag Elenco Tags  VB.NET  |  SQL Server Express

pedro8a Profilo | Junior Member

Buongiorno a tutti,
voglio sincronizzare 2 db sql server express.
L'obiettivo sarà in seguito sincronizzare il db locale sql server con azure sql.

Nel sincro di 2 db sql server ho trovato qualche esempio con synk framework.
Dopo qualche test e correzione al codice ottengo questo errore:
"impossibile completare l'operazione perchè non è stato eseguito il provisioning..."

Sono sulla strada giusta??

________________________
Pedro8a
Sviluppo per passione

alx_81 Profilo | Guru

>Buongiorno a tutti,
ciao

>Sono sulla strada giusta??
Prova a seguire questo tutorial: https://www.youtube.com/watch?v=fPvSZPy6Amg
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/en-us/mvp/Alessandro%20Alpi-4014222

pedro8a Profilo | Junior Member

Ciao Alessandro,
grazie, ma ho già tentato questa strada e non riesco ad installare l'agent.

Premessa: test effettuati su SQL Server Express 2005 fino alla 2014
Mi chiede di scaricare alcuni componenti, che scarico e installao, ma stesso errore...

498x403 48Kb


Un altra cosa, nel video, nel db locale ci sono le tabelle DataSync.
Quelle tabelle sono indispensabili e io non le ho create, ma come si creano?

________________________
Pedro8a
Sviluppo per passione

alx_81 Profilo | Guru

>Ciao Alessandro,
ciao

>grazie, ma ho già tentato questa strada e non riesco ad installare
>l'agent.
mi spiace, ma proprio non so aiutarti ulteriormente. Non l'ho praticamente mai fatto, ti direi delle cose un po' superficiali.
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/en-us/mvp/Alessandro%20Alpi-4014222

pedro8a Profilo | Junior Member

Ciao Alessandro,
invece hai esperienza di synkframework?
Ho provato a creare un progettino, ma ho qualche difficoltà con la creazione delle tabelle per la sincronizzazione.

Grazie

________________________
Pedro8a
Sviluppo per passione

alx_81 Profilo | Guru

>Ciao Alessandro,
ciao

>invece hai esperienza di synkframework?
essendo caduto un po' in disuso, non ho seguito molto nemmeno questa problematica. Mi spiace.
di solito mi servo di repliche o comunque strumenti forniti da SQL Server a basso livello.
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/en-us/mvp/Alessandro%20Alpi-4014222

pedro8a Profilo | Junior Member

Stiamo parlando di SQL server express?
puoi indirizzarmi?

Replica? Come?

grazie

________________________
Pedro8a
Sviluppo per passione

alx_81 Profilo | Guru

>Stiamo parlando di SQL server express? puoi indirizzarmi?
Express di suo può fare solo da sottoscrittore. Oltre a questo problema, non è dotato del servizio Agent che ti consentirebbe di schedulare direttamente sull'istanza i processi.
Ora, dobbiamo fare un po' di valutazioni..
Secondo me c'è da capire un po' di cose.

1) entrambi sono SQL Server Express?
2) con che periodicità dovrai sincronizzare?
3) puoi dare un minimo di down?

perchè potresti seguire anche altre vie, come backup e cose simili.
Quando ti parlavo di replica, parlavo in linea generale. La sincronia tra due SQL Server Express l'ho affrontata addirittura con, passami il termine, delle "mirror insert" dall'applicazione. A volte anche dei trigger cross database.
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/en-us/mvp/Alessandro%20Alpi-4014222

pedro8a Profilo | Junior Member

>>Stiamo parlando di SQL server express? puoi indirizzarmi?
>Express di suo può fare solo da sottoscrittore. Oltre a questo
>problema, non è dotato del servizio Agent che ti consentirebbe
>di schedulare direttamente sull'istanza i processi.
>Ora, dobbiamo fare un po' di valutazioni..
>Secondo me c'è da capire un po' di cose.
>
>1) entrambi sono SQL Server Express?
Il DB di partenza si è sql 2005/08/14 express. Il DB di destinazione è/potrebbe essere un BD sql Azure.
>2) con che periodicità dovrai sincronizzare?
Diciamo che la cosa è flessibile, quindi 1-2 volte al giorno.
>3) puoi dare un minimo di down?
Per "down" intendi che i db devono essere "fermi"? Nel senso che nessuno ci deve lavorare mentre si fa l'operazione?
>
>perchè potresti seguire anche altre vie, come backup e cose simili.
Il Backup? e come??
>Quando ti parlavo di replica, parlavo in linea generale. La sincronia
>tra due SQL Server Express l'ho affrontata addirittura con, passami
>il termine, delle "mirror insert" dall'applicazione. A volte
Vuol dire che hai fatto a "mano" gli insert? E per i campi chiave o addirittura auto-increment?
>anche dei trigger cross database.
trigger cross database? Arabo per me...

Grazie...

Pietro


________________________
Pedro8a
Sviluppo per passione

alx_81 Profilo | Guru

>Il DB di partenza si è sql 2005/08/14 express. Il DB di destinazione è/potrebbe essere un BD sql Azure.
ok la replica non è possibile, siccome la source è express (solo sottoscrittore).

>Diciamo che la cosa è flessibile, quindi 1-2 volte al giorno.
perfetto, questo ci dà una grande libertà

>Per "down" intendi che i db devono essere "fermi"? Nel senso che nessuno ci deve lavorare mentre si fa l'operazione?
Nel senso che il db non è raggiungibile in nessun modo

>Il Backup? e come??
automatizzando un processo di backup/restore per quelle 1/2 volte al giorno

>Vuol dire che hai fatto a "mano" gli insert? E per i campi chiave o addirittura auto-increment?
a mano due insert, ad esempio, decidendo un db con gli identity e l'altro senza identity definiti forzando il valore usato nel primo, oppure accettando il fatto che gli identity siano diversi (non è detto che la chiave primaria naturale sia l'identità). Dipende dai casi reali, ci sono tante soluzioni possibili.

>trigger cross database? Arabo per me...
si tratta di operazioni che vengono effettuate durante o dopo la transazione di inserimento/update/cancellazione e che eseguono codice t-sql, nel quale a sua volta, puoi puntare ad altri database, o, addirittura, ad altri server. Ovvio che la cosa degrada le performance.

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/en-us/mvp/Alessandro%20Alpi-4014222

pedro8a Profilo | Junior Member

>>Il DB di partenza si è sql 2005/08/14 express. Il DB di destinazione è/potrebbe essere un BD sql Azure.
>ok la replica non è possibile, siccome la source è express (solo
>sottoscrittore).
>
>>Diciamo che la cosa è flessibile, quindi 1-2 volte al giorno.
>perfetto, questo ci dà una grande libertà
>
>>Per "down" intendi che i db devono essere "fermi"? Nel senso che nessuno ci deve lavorare mentre si fa l'operazione?
>Nel senso che il db non è raggiungibile in nessun modo
Si i DB sono raggiungibili, sia azure che in casa, che su server esterni
>
>>Il Backup? e come??
>automatizzando un processo di backup/restore per quelle 1/2 volte
>al giorno
Ma il backup è totale? Si potrebbe fare di una singola tabella?
>
>>Vuol dire che hai fatto a "mano" gli insert? E per i campi chiave o addirittura auto-increment?
>a mano due insert, ad esempio, decidendo un db con gli identity
>e l'altro senza identity definiti forzando il valore usato nel
>primo, oppure accettando il fatto che gli identity siano diversi
>(non è detto che la chiave primaria naturale sia l'identità).
>Dipende dai casi reali, ci sono tante soluzioni possibili.
Io credo che la soluzione migliore sia avere un DB con i propri indici e un campo "Indice di provenienza"
In questo modo posso fare tutti gli insert sul db destinazione che voglio e quando voglio
Certo bisognerà gestire l'aggiornamento di 2 db, però a questo punto farei quello che voglio.
Che ne pensi?
>
>>trigger cross database? Arabo per me...
>si tratta di operazioni che vengono effettuate durante o dopo
>la transazione di inserimento/update/cancellazione e che eseguono
>codice t-sql, nel quale a sua volta, puoi puntare ad altri database,
>o, addirittura, ad altri server. Ovvio che la cosa degrada le
>performance.
>
>Alessandro Alpi | SQL Server MVP
>MCP|MCITP|MCTS|MCT
>
>http://blogs.dotnethell.it/suxstellino
>http://suxstellino.wordpress.com
>http://mvp.microsoft.com/en-us/mvp/Alessandro%20Alpi-4014222


________________________
Pedro8a
Sviluppo per passione

alx_81 Profilo | Guru

>Si i DB sono raggiungibili, sia azure che in casa, che su server esterni
intendo durante il processo di sincronizzazione.. non se si vedono in rete

>Ma il backup è totale? Si potrebbe fare di una singola tabella?
No, in quel caso è meglio un processo SQL Schedulato con windows o addirittura un'applicazione in .net.

>Io credo che la soluzione migliore sia avere un DB con i propri
>indici e un campo "Indice di provenienza"
>In questo modo posso fare tutti gli insert sul db destinazione
>che voglio e quando voglio
>Certo bisognerà gestire l'aggiornamento di 2 db, però a questo
>punto farei quello che voglio.
se ti serve sapere la provenienza, segna tutti gli id che ti servono, tanto il processo sarebbe comunque manuale e quindi, customizzabile.

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/en-us/mvp/Alessandro%20Alpi-4014222
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5