Replica db sql

venerdì 02 dicembre 2005 - 18.13

d@dora Profilo | Senior Member

grana del venerdi sera: devo allineare due db sql su due server diversi e remoti.Ho pensato di farlo a richiesta.
L'utente che deve aggiornare il db si collega ad una pagina asp, e richiede l'aggirnamento. Leggo la prima tabella del db principale in un recordset e..... come aggiorno il db destinazione ??? Se devo farlo rec. per rec. ci mette 6 mesi, come posso farlo tabella per tabella ?? E' possibile o mi sono sognato una soluzione non attuabile ????

Ciao e grazie

micto27 Profilo | Senior Member

Potresti provare a sfruttare il servizio di replica fornito da SQL Server.
In estrema sintesi:
i tipi di replica previsti sono 3 (Snapshot, Merge e Transactional) e di questi il secondo e il terzo, al di là di una replica completa iniziale ti consentono di trasmettere, ad ogni replica, solo le "differenze" rispetto alla replica precedente.

Ogni replica prevede il ruolo del Distributor (il server SQL che distribuisce la replica), il Publisher (il server SQL che espone i dati da replicare), il Subscriber (il server SQL che si "iscrive" per ricevere i dati di una certa replica), al limite i 3 ruoli potrebbero coincidere.

Ogni replica prevede un insieme di Articoli da replicare (le tabelle) e su tali articoli possono essere definiti dei filtri.

L'esecuzione effettiva delle repliche viene effettuata da Job di SQL Server definiti automaticamente configurando la replica con l'apposito wizard (è anche possibile fare tutto da script T-SQL).

Ciao, Michele.

totti240282 Profilo | Guru

mi interessa sta cosa hai qualche doc in merito ??

Grazie....

C'è solo un capitano !!!!!!

Jumpa Profilo | Junior Member

io personalmente... forse sarò sfigato ma con la replica di sql server 2000 ho sempre avuto grane...
ed alla fine ho deciso di implementarla uando mi occorre da me....
.. in particolare c'è da notare che il servizio di replica aggiunge ad ogni tabella una colonna per l'identificatore univoco, il che a qualche applicazione che gia gira sopra il db può creare dei problemucci!!

aggiungerei che quando i due server sono "remoti" tra loro.. iniziano ad esserci dei problemi legati alla sicurezza...
che facciamo lasciamo le porte di sql aperte al pubblico?? naaaaaaaaaaa
magari un discorso di VPN tra i due server magari bloccando i firewall in modo che possano accettare chiate olo da i ben definiti... cosi il discorso si fa dentro la vpn.
Per quanto riguarda l'efficienza del todo.. tutto dipende dalla mole di dati e dalla quantità di transazioni alla quale è soggetta il db!



-------------------------
191 for ever.....................
Follow the White Rabbit...

http://www.jumpa.org
-------------------------

micto27 Profilo | Senior Member

Giustissimo porsi la domanda sul tema della sicurezza ed organizzarsi di conseguenza, per quanto riguarda invece il funzionamento del sistema di replica sono piuttosto soddisfatto.
Ho alcune repliche che lavorano già da qualche anno e stanno facendo egregiamente il loro lavoro.

In effetti certi tipi di replica necessitano di disporre, per la tabelle trattate di una colonna di tipo uniqueidentifier (GUID) che eventualmente viene aggiunta automaticamente ma ciò non dovrebbe interferire con eventuali applicazioni in quanto si tratta di una colonna il cui valore viene gestito direttamente dal server (al volo non mi vengono in mente casi in cui ciò possa dare fastidio ad applicativi che utilizzano il database.

Comunque se il db remoto va allineato in qualche modo i dati bisogna portarceli e se entrambi i server sono SQL Server il servizio integrato di replica credo sia la cosa migliore.

Ovviamente per poter valutare è necessario conoscere meglio il caso specifico.

Per quanto riguarda eventuale documetazione mi spiace ma non ho nulla di specifico da segnalare.

Ciao, Michele.

Jumpa Profilo | Junior Member

un tipo di app sul quale può dare problemi, è quando vengno fatte delle insert del tipo

insert into tabella values (valore1,.....,valoreN)

in questo caso non specificando i campi sui quali va ad agire la insert, il db assume che i valori rispecchino la sequenza dei campi che strutturano la tabella, quindi se è stata aggiutna la tabella rowguid, verra generata un eccezione!



-------------------------
191 for ever.....................
Follow the White Rabbit...

http://www.jumpa.org
-------------------------

marf259 Profilo | Newbie

Io ho cercato di metter in piedi una replica prima attraverso una connessione adsl poi per evitare complicanze sono tornato sui miei passi e ho provato tra due macchine in rete ma il risultato non cambia, sembra tutto a posto la replica dalla parte diciamo "server" cioè il database pubblicato è su l'agente snapshot è attivo (anche se dopo un pò lo trovo stoppsto e lo faccio riaprtire a mano) ma il problema più grande (anche avendo dato l'autorizzazione a creare un Subscriver anonimo) è che il server che si deve allineare se vado a vedere gli eventi mi dice sempre server inesistente o accesso negato, ma la subscrition me la crea senza problemi, al momento di sincronizzarsi mi da sto cavolo di errore, ho creato utentiu ad hoc controllato le porte 1433 e 1434 anche attraverso telnet ma nulla sembra tutto ok il telent passa se faccio un attachment della base dati in remoto funziona e vedo i dati quindi problemi di permessi o di porta non dovrebbero esserci ma la replica non va, hai qualche suggerimento??? Per me è molto importante riuscire farla andare, poi della sicurezza mi occupo dopo, un passo per volta.
Grazie e ciao
marco

micto27 Profilo | Senior Member

>Io ho cercato di metter in piedi una replica prima attraverso
>una connessione adsl poi per evitare complicanze sono tornato
>sui miei passi e ho provato tra due macchine in rete ma il risultato
>non cambia, sembra tutto a posto la replica dalla parte diciamo
>"server" cioè il database pubblicato è su l'agente snapshot è
>attivo (anche se dopo un pò lo trovo stoppsto e lo faccio riaprtire
>a mano) ma il problema più grande (anche avendo dato l'autorizzazione
>a creare un Subscriver anonimo) è che il server che si deve allineare
>se vado a vedere gli eventi mi dice sempre server inesistente
>o accesso negato, ma la subscrition me la crea senza problemi,
>al momento di sincronizzarsi mi da sto cavolo di errore, ho creato
>utentiu ad hoc controllato le porte 1433 e 1434 anche attraverso
>telnet ma nulla sembra tutto ok il telent passa se faccio un
>attachment della base dati in remoto funziona e vedo i dati quindi
>problemi di permessi o di porta non dovrebbero esserci ma la
>replica non va, hai qualche suggerimento??? Per me è molto importante
>riuscire farla andare, poi della sicurezza mi occupo dopo, un
>passo per volta.
>Grazie e ciao
>marco

Hai già verificato le credenziali impostate nei pannelli di configurazione
attivabili dal menù rappresentato nella figura allegata?

Che tipo di replica hai impostato?

Il problema deve essere ricondotto a qualche dettaglio che sfugge in quanto il sistema di repliche
direi che funziona bene.

Ciao, Michele


628x336 19Kb
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