- La prima opzione prevede di esportare il DB, trasferirlo su cassetta, trasportare fisicamente la cassetta nella nuova sede, recuperare il database da cassetta e procedere con l'importazione. Data la dimensione del database, e il trasferimento fisico della cassetta, questa modalità richiederebbe non meno di due giorni.
- La seconda opzione prevede di lavorare con uno stream di dati, effettuando tutte le varie fasi contemporaneamente. In particolare un sistema (dba) provvederà ad effettuare l'export dei dati e passarlo via NetCat ad un secondo sistema (sys) che provvederà a comprimerlo il più possibile, trasferendolo via rete geografica ad un terzo sistema (dbb) che provvederà a decomprimerlo e ad importarlo.
- exp: utility di Oracle che ci permette di esportare un database su un file;
- imp: utility di Oracle che ci permette di importare un database da un file;
- mknod: utility di Linux che ci permette di portare un file in stdin/stdout;
- nc: (NetCat) utility che ci permette di trasferire dati via rete e stdin/stdout.
- sul sistema finale (dbb) riceveremo i dati via rete e li redirigeremo su un file speciale di pipe dal quale imp importerà il database:
mknod /tmp/pipe p
imp ... file=/tmp/pipe
nc -l -p 5000 | gunzip -c -9 | tee /tmp/dump.db > /tmp/pipe - sul sistema di transito (sys) riceveremo i dati dal database server e li comprimeremo; questo sistema di transito è utile per alleviare il database primario dall'onere computazione dovuto alla compressione, velocizzando così tutto il processo:
nc -l -p 4000 | gzip -c | nc dbb.example.com 5000
- sul sistema sorgente (dba) esporteremo il database su un file speciale di pipe che sarà letto e spedito via rete per la compressione:
mknod /tmp/pipe p
cat /tmp/pipe | nc sys.example.com 4000
exp ... file=/tmp/pipe
Al termine del dump netcat non esce automaticamente, ma rimane in attesa di dati ulteriori, infatti è possibile notare che la dimensione dei due file dump.db dei sistemi sys e dbb differiscono. Occorre quindi tenere presente che il trasferimento dei dati non è ancora completato, poiché parte dei dati è rimasta nel buffer. Per svuotare tale buffer e ottenere una consistenza dei dati ci sono due possibilità:
- terminare NetCat sulla macchina dba mediante CTRL+C o "kill -1
"; - eseguire NetCat col parametro "-w10" che termina NetCat dopo 10 secondi di timeout sullo stdin.



0 commenti:
Posta un commento