Newsgroup: it.comp.software.database
Titolo: Avere 2 DB aggiornati.

Buon giorno a tutti,
ho questo problema che cercherò di descrivere il meglio possibile.
Io ho un PC dove ci sono 2 DB con SQL Server 7, su questi 2 DB gestico i
dati (Prove e Risultati) di un sistema di collaudo di elettrodomestici.
Il cliente mi ha detto che se si ferma il PC si fermerà tutta la produzione
quindi
un collega gli ha proposto di preparare un PC di BackUp collegato alla rete
con un nome e un indirizzo IP diverso, ma con lo stesso hardware e software.
Nel caso il PC principale si si dovesse fermare basterà modificare l'IP e
nome di
quello di backup per far ripartire tutto.
L'obbiezione del cliente è stata : "che fine fanno i dati del PC
principale?".
Ho pensato di proporre una qualche sequenza di backup degli archivi :
    1) La sgestico io con delle applicazioni in VB, faccio il backup e copio
i files
        in un altro PC, dove successivamente sarà fatto il restore dei DB;
    2) Con qualche store procedure di SQL Server (ma non so proprio cosa )
fare;
    3) SQL Server gestisce il tutto facendo un backup direttamente su un
altro pc dove
        c'è SQL Server;
Sapreste consigliarmi qualcosa?
E è possibile cambiare il nome di un PC dove c'è SQL Server 7 installato.
Tiziano

         direttamente su un
4) Usi transazioni distribuite ed aggiorni in contemporanea
entrambi i database
5) Usi la replicazione dei dati in modo da avere una copia
conforme del db "master"
[bastard mode=on]
6) Butti via Windows e SQL Server ed installi Linux + Oracle
[bastard mode=off]
Davide

 conforme del db "master"
Spiegati meglio perchè i DB li ho usati solo in modo superficiale
(creazione, inserimento, modifica, lettura e cancellazione tabelle)
grazie per la risposta.
Tiziano

 cancellazione tabelle)
Una transazione e' detta "distribuita" quando viene eseguita
su piu' di un database contemporaneamente, o viene eseguita
su entrambi (aka: entrambi i db sono aggiornati con gli
stessi dati allo stesso momento o non sono aggiornati per
niente).
Una "replicazione" e' quando hai un database definito
"master" o "pubblisher" ed uno o piu' database definiti
"client" o "subscriber" che reperiscono i loro dati dal
master. I "subscriber" sono in pratica dei mirror del
db principale e vengono aggiornati automaticamente.
Consulta la documentazione di SQL Server.
Davide

Prima di tutto ti ringrazione per la velocità e la chiarezza
delle tue risposte.
Potresti darmi qualche dritta come reperire velocemente
queste informaziooni sul help di SQL Server su MSDN
o su qualche sito?
Grazie mille.
Tiziano

Ho riletto meglio la tua ultima e mail e faccio queste considerazioni:
Nel caso di transazioni contemporane (i 2 DB vengono aggiornati
contemporaneamente) la mia applicazione deve avere 2 connessioni
ADO aperte contemporaneamente e una conseguenza è un leggero
appesantimento del sistema. Poi se un giorno il PC di BackUp non
funziona (es. problemi alla rete) la mia applicazione è bloccata.
Oppure l'aggiornamente contemporaneo non lo deve fare la mia
applicazione ma ci pensa SQL Server?
Nel caso della replicazione :
1) non devo modificare la mia applicazione;
2)non ho problemi dovuti alla rete o PC BackUp spento;
Credo che è questa la soluzione che più m'interessa.
Posso fare questo tramite Windows NT e non più con SQL Server?
Dato che ci sono mi copio anche dei files.
Tiziano

 Posso fare questo tramite Windows NT e non piů con SQL Server?
La replicazione e' una features di SQL Server che si applica
ai suoi dati interni, files e directory non c'entrano niente.
Nota: per questo tipo di dubbi esistenziali esistono i backup...
Davide

> Nota: per questo tipo di dubbi esistenziali esistono i backup...
Nella mia applicazione già ho fatto un utility (semi-automatica, dato
che l'operatore deve ricordarsi di premere un pulsante per fare il
backup) di backup e di restore dei DB.
Ma ora stavo pensando di fare una cosa automatica gestita
automaticamente da SQL Server.
L'operatore deve solo accendere i 2 PC.
Tiziano

Butta via quella schifezza di SQL Server
ed usa un RDBMS vero.
Usa soluzione accrocchio ha il solo vantaggio di:
far guadagnare di più il venditore del PC (2 anzichè 1),
e far lavorare un poco il consulente
Al primo crash l'azienda cliente si ritroverà
con un db non aggiornato e probabilemente farà
un mazzo tanto al "consulente"
La soluzione ideale, per contenimento dei costi
e bonta' dei risultati, è una bella coppia di
Informix 9.2 in Data Replication (Oracle costa troppo)
Se chi ha scritto l'applicazione ha pensato
all'esistenza  degli standard (ANSI SQL)
il porting sarà indolore.
/Stefano

Non posso cambiare niente, non sono io a decidere.
E poi se cambio il DBMS devo rivedere (o testare) tutto il software.
Dato che il cliente sta in Corea non posso fare cavolate.
Il sistema che hanno adesso č bello che collaudato e le eventuali
modifiche da fare riguarderanno solo una piccola parte del software
(utilitą di BackUp) o solo Enterprise Manager di SQL Server 7.
Dipende da quello che decideremo insieme al cliente.
Grazie
Tiziano

L'operatore deve solo accendere i 2 PC.
Al di la' di questo, una cosa bella che puoi fare e' modificare la
funzione che effettua la connect al database: nel caso la connessione
al master fallisca, tenti la connessione allo slave, segnalando il
problema all'amministratore. In questo modo non serve un intervento
immediato dell'amministratore e la procedura non si blocca.
Utilizzo gia' da tempo questo problema e devo dire che funziona
egregiamente.

Informix 9.2 in Data Replication 
Se non duplichi l'hardware avrai sempre un singolo punto di rottura
critico. I due PC che sconsigli io invece gli consiglio assolutamente.
Comunque se ci tieni puoi fare girare due SQL Server sulla stessa
macchina.
-- 
Tieni per te il Papero giusto se vuoi la mia email
Sito Papero 1 -> 
http://utenti.tripod.it/papero
Sito Papero 2 -> 
http://user.7host.com/papero/