11 ottobre 2007

Copiare datafilecopy

No, non sto parlando di spostare un datafile da un posto a un altro (procedura con il tablespace offline), ma di copiare ad esempio le copie dei datafile effettuate con RMAN in un luogo remoto.
Il mio consiglio, che può essere comunque utile per spostare file di grandi dimensioni oppure tanti file, è quello di usare il comando tar in combinazione con ssh.

Ad esempio:
# tar czf - -T <file lista> | ssh <user>@<host> 'tar xzf - -C <dest dir>'

dove <file lista> (opzionale) è un file contenente la lista dei file che volete copiare, e <dest dir> è directory in cui viene eseguita l'estrazione del tar all'arrivo.
In pratica viene creato uno stream di dati in standard output, che viene preso in standard input da ssh, trasferito sul canale sicuro, e preso in standard input da tar sulla macchina destinazione, per essere poi estratto.

I vantaggi di questa soluzione sono molteplici:
  1. Non viene usato il filesystem, quindi non ci sono limiti fisici alle dimensioni dei file trasferiti

  2. Lo stream è compresso alla sorgente con gzip, quindi il trasferimento è "da più veloce a molto più veloce"

  3. Si possono usare tutte le possibilità offerte dal tar

  4. Lo stream di dati è criptato

  5. C'è un implicito controllo di integrità nel trasporto data dall'uso di gzip


C'è ancora un vantaggio relativo: se i datafile non sono pieni al 100%, gzip sarà incredibilmente efficiente nel trasporto dei dati: si riescono ad ottenere transfer rate da GB al secondo!

Nessun commento: