Newsgroup: it.comp.software.database
Titolo: mirrorare dati oracle su DB locale mysql, come?

Ho un Db Oracle di produzione e vorrei mirrorare alcune tabelle su un
serverino intranet dove girano mysql e apache (vorrei consentire la
consultazione di tali tabelle via Web).
Finora facevo queste cose con access in ambiente W98, da access lanciavo
periodicamente una query di aggiornamento che leggeva le tabelle oracle
via ODBC e aggiornava delle tabelle locali Access, che poi manipolavo in
sicurezza senza inetrferire col sistema in produzione.
Ma sotto mysql non ho ODBC, come accedo in sicurezza alle tabelle oracle
da Mysql? 
Devo usare php? ringrazio chi mi potesse indirizzare all'approccio piu'
corretto. NB la sicurezza e' piu' importante dell'efficienza.
TIA
P. Bianchi

 da Mysql? 
Fai un'export da Oracle, ti fai mandare il file (o lo recuperi) usando
ftp, importi in MySQL. Se vuoi, ho un'accrocchio scritto in Java che puo'
importare dati scritti in un file ASCII con vario formato in un 
database 'X'. Basta configurarlo e dargli in pasto i dati.
Davide

 ftp, importi in MySQL. 
1) non ho accesso come dba sul server oracle, e lo voglio toccare il
meno possibile
2) se faccio export mi dumpa quantomeno una intera tabella, vorrei una
cosa incrementale
3) preferirei che fosse il serverino mysql a fare un pull delle tabelle
oracle al bisogno anziche' il server oracle a fare un push. Sono dati
che si aggiornano ogni 5', non posso fare  un export ogni 5'
4) una cosa piu' leggera?
Tnx comunque
B.

> 4) una cosa piu' leggera?
c'è una cosa sicura... ma più complicata...
prendi il tuo dba oracle e frustalo ben bene (se sei tu il dba
frustati da solo)... appena vedi il primo accenno i sangue:
1) fatti creare delle viste materializzate (o snapshot dipende
dalla versione di oracle) sulle tabelle che ti interessano
sarebbe una finezza se te le fai costuire su uno schema
diverso da quello di appartenenza (es: crei un utente mysql
con grant appositi su quelle tabelle) delle tabelle vere
(sicurezza prima di tutto)
PS: se non sai che sono le viste materializzate o snapshot
ti consiglio un ottima lettura... il manuale
2) ti crei un job, o tramite Oracle o scheduli un batch o
un cron (dipende dal OS che usi) che esporti i dati in
formato testo piatto... e nel frattempo azzera anche la
vista (cfr punto 1)
3) fai un push dei dati verso il server mysql (sempre
push!!!! specialmente se il server che pubblica i dati
sta su una DMZ)
4) importi i dati su mysql
puoi migliorare la cosa facendo *azzerare* le viste
materializzate dopo l'import... (sicurezza della
distribuzione delle informazioni) ma devi gestirti il
feedback a Oracle dopo l'import da mysql...
(più che fattibile direi)
1) hai i dati *incrementali* come dici tu
2) è automatico e ti puoi gestire l'allarmistica se le cose
non vanno a buon fine
3) è sicuro nel senso che il flusso dei dati va dalla
sorgente alla destinazione (perchè ca%%o mai fare il
contrario?)
4) a occhio e croce ci metti mezza giornata
/G

 contrario?)
Sto studiando la tua risposta, intanto rispondo qui:
preferirei che fosse il sistema mirror a interrogare il server di produzione
(pull) perche' i lsist. informativo e' un sistema client server e tutti i
terminali, pardon i clienti, che fra parentesi sono scritti in VB, fanno delle
query al sever. Il mysql mirror che facesse un pull di dati dal server di
produzione sarebbe "yet another query", esattamente come quando vado a fare
query con applicazioni ACCESS che usano ODBC.
E' l'uso inteso del sistema, non se ne accorge nessuno. Mentre se chiedo al
fornitore dell'applicazione (che ha configurato il server) delle cose fuori
contratto, o me le fattura una cifra o semplicemente si rifiuta di toccarlo,
dato che per quanto modeste sarebbero appunto soluzioni custom
extracontrattuali.
Ciao

 extracontrattuali.
[...]
ogghey... capito... tutto chiaro...
ma in questo modo significa che tu ti devi occupare di tutto!!!
cioè leggere i dati da Oracle... leggere solo i nuovi insert...
etc etc...
per non parlare del problema sicurezza... se il tuo mysql
sta su una DMZ e il SI si trova in una intranet in pratica
lasci aperta una porta di entrata critica per un potenziale
intruder...
eniuei... prova a vedere se qualcuno si è inventato un mysql
gateway per oracle... o meglio il contrario un oracle gateway per
mysql...
/G

 da Mysql?
installalo :))
ciao

 installalo :))
Che cosa installo? Dove? esiste ODBC sotto linux?
Adesso ho gia' gli ODBC per Windows sia per oracle sia per mysql, funziona
tutto e in Access riesco a fare senza problemi
"collega tabella sorgente Oracle"
"collega tabella destinazione Mysql"
"query di accodamento che accoda i record nuovi da O. a M.".
O a mano con un bottone, o con un timer, la query viene lanciata ogni tot
minuti e mi consegue lo scopo, infatti adesso sto facendo cosi'.
Ma sto prototipando, appunto devo tener acceso un PC intermedio con Access e
far transitare i dati da li', mi sembra un accrocco e volevo evitarlo. Volevo
accodare direttamente da server a server.
Grazie, ciao
B.

 
http://www.mysql.com/downloads/api-myodbc-3.51.html
Questi sono gli ODBC per vedere mysql sul linuxbox, operando da un PC
sotto windows. Li ho gia'.
Io devo replicare un pezzo di database oracle di produzione copiandolo
in ambiente mysql per consentire l'interrogazione via web su questa
copia, e cercavo il modo di vedere oracle direttamente da mysql.
Adesso gia' faccio un trasferimento tramite un bridge windows
(programmillo access con due odbc che periodicamente legge oracle e
scrive mysql), volevo evitare di dipendere dal bridge e leggere oracle
direttamente da linux.
Ciao
B.