Premessa
Ho un numero di server di database (diverse istanze DBMS, installazioni in diverse posizioni fisiche), ognuno di essi contiene dati e utilizza lo stesso schema. La maggior parte dei dati è completamente uguale su tutti i database, ma sfortunatamente non in tutti i casi.
Ho bisogno di scrivere un'applicazione che emetterà query ( seleziona solo , non inserisce, aggiorna o cancella) su una tabella attraverso tutti i database, recupera tutti i risultati in modo che lo strumento possa confrontarli per essere in grado di segnalare eventuali discrepanze agli utenti.
Usa caso
Ad esempio, immagina di avere un modulo basato sul Web, in cui gli utenti inseriscono i dettagli della società. L'invio del modulo rilascerà un inserto contro la stessa tabella in tutti i database (tramite connessione al database diversa, ciascuno separato). Mentre gli utenti digitano il nome dell'azienda, l'applicazione deve essere in grado di verificare che il valore inserito non esista in tutti i database. Se esiste o non esiste nei database tutti , tutto va bene. O il nome dell'azienda è preso o può essere utilizzato dall'utente. Tuttavia se il valore esiste su alcuni database, ma non su altri, devo generare un errore di convalida.
Il mio piano
Lo strumento che sto scrivendo è un'applicazione Java, che utilizza JDBC (che si connette a più database Oracle), quindi ora penso che creo una Connessione verso ciascuno dei miei server di database. Emetti la stessa query in parallelo, attendi i risultati e confrontali. Il mio caso d'uso riguarda una manciata di utenti e 5-10 diversi server di database (la migrazione del database o la replica slave / master è completamente fuori questione).
Domanda
Quali sono i modi possibili per gestire uno scenario come questo?