Ottimizza l'interazione del database tramite VPN

1

Devo sviluppare una procedura batch con VB.NET. Questa semplice procedura leggerà alcuni dati da un database MS SQL, eseguirà alcune elaborazioni e scriverà i risultati su un altro database Oracle SQL situato su una rete remota raggiungibile tramite VPN. La VPN è "sempre attiva", non abbiamo bisogno di un client per gestire la connessione perché è stata creata firewall per firewall.

I dati che devo scrivere sono atomici, quindi devo usare una transazione.

Puoi dirmi cosa succede se la connessione VPN crolla quando una transazione è aperta e COMMIT non è stato eseguito? Hai qualche suggerimento / miglior pratica da seguire per evitare questo scenario?

    
posta AngeloBad 03.09.2013 - 18:01
fonte

2 risposte

2

Can you tell me what happen if the VPN connection fall down when a transaction is open and the COMMIT was not executed? Do you have some suggestion/best practice to follow to avoid this scenario?

Potrebbero venire fuori due risultati generali:

  1. La procedura di rollback nel codice sql (o sproc, se ne usi uno) catturerà la transazione non impegnata e impedirà il danneggiamento dei dati.

  2. Oppure finirai con dati danneggiati di base, con record orfani.

Per farla breve, l'applicazione ha bisogno di una buona gestione delle transazioni per ripristinare il set di transazioni non impegnate.

La procedura di rollback dovrebbe essere in atto per gestire problemi come il blocco, la connessione persa, ecc. Queste procedure impediranno l'inserimento di dati danneggiati nel sistema di database e preserveranno l'integrità dei dati dell'intero banca dati.

Esistono numerosi libri Oracle che forniscono esempi su come eseguire il roll-back delle transazioni e registrare i problemi. Basta verificare la versione del database che si sta utilizzando e trovare linee guida specifiche per quel database.

Riferimenti da Oracle:

risposta data 03.09.2013 - 18:15
fonte
0

SQL Server e Oracle possono gestire la transazione di rollback. La connessione VPN sarà un problema. Rompere questo processo per fare affidamento il meno possibile.

  1. Fai tutto il lavoro sui dati di SQL Server e posiziona i risultati in un gruppo di tabelle SQL_Staging.
  2. Trasferisci i dati da SQL_Staging a Oracle_Staging. Si verifica un'interruzione, che può essere ripetuta senza eseguire nuovamente tutti i calcoli.
  3. Utilizza il codice locale per importare i dati di Oracle_Staging su tutte le tabelle necessarie con la possibilità di eseguire il rollback. Questo non richiede affatto la VPN. La risoluzione dei problemi è più semplice poiché non sarà necessario ritrasferire tutti i dati da SQL Server. Davvero utile se questa non è la fonte del problema.

Idealmente, avresti sempre una buona connessione VPN e potresti lasciare che sia RDBMS a gestirlo, ma come programmatore (o sei un DBA?) probabilmente vuoi un po 'più di controllo.

    
risposta data 03.09.2013 - 21:29
fonte

Leggi altre domande sui tag