Export Files più grandi di 2GB con split |
Nel caso in cui stiamo di fronte ad un database molto grande, in ambiente Unix, è possibile utilizzare la compressione del datafile sia in export che in import del database, limitando anche la grandezza del file di export sotto i 2Giga.. |
|
|
Verificare che la variabile d'ambiente ORACLE_SID sia settata in modo corretto. Sia tramite comando
unix e sia tramite collegamento a sqlplus. (su unix echo $ORACLE_DBSID)
sqlplus /nolog SQL*Plus: Release 10.2.0.4.0 - Production on Tue March 20 11:26:23 2008 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. SQL> connect sys/sys as sysdba SQL> select name from v$database; NAME --------------------------------------- DBSID Verificare la grandezza dell'export che si andrebbe a produrre. SQL> select tablespace_name, sum(bytes)/1024/1024 from dba_segments where owner in ( 'USER' , 'SYSTEM' ) and segment_type != 'INDEX' group by tablespace_name; TABLESPACE_NAME SUM(BYTES)/1024/1024 ------------------------------ -------------------- USER_DATA 6966.7676 - circa 7Giga SYSTEM 12.1875 |
Export #!/bin/ksh # +-------------------------------------------------------+ # | Posizionarsi nella directory dove eseguire l'export. | # +-------------------------------------------------------+ cd /filesystem/DB/export pwd # +-------------------------------------------------------+ # | Rimuovere le pipe ( se esistenti ) | # +-------------------------------------------------------+ rm -f pipeCompress rm -f pipeExp # +-------------------------------------------------------+ # | Creare con comando unix due pipe per split e Compress | # +-------------------------------------------------------+ mknod pipeCompress p mknod pipeExp p chmod 666 pipeExp pipeCompress # +-------------------------------------------------------+ # | Attiva lo Split e Compress in backgroud | # +-------------------------------------------------------+ nohup split -b 1024m < pipeExp & nohup compress < pipeCompress > pipeExp & # +-------------------------------------------------------+ # | Esegui l'export su pipe. | # +-------------------------------------------------------+ exp userid=system/manager file=pipeCompress full=yes log=exportDBSID.log # +-------------------------------------------------------+ # | Rimuovere le pipe. | # +-------------------------------------------------------+ rm -f pipeCompress rm -f pipeExpImport #!/bin/ksh # +-------------------------------------------------------+ # | Posizionarsi nella directory dove eseguire l'export. | # +-------------------------------------------------------+ cd /filesystem/DB/export pwd # +-------------------------------------------------------+ # | Rimuovere la pipe ( se esistente ) | # +-------------------------------------------------------+ rm -f pipeImp # +-------------------------------------------------------+ # | Creare con comando unix due pipe per split e compress | # +-------------------------------------------------------+ mknod pipeImp p chmod 666 pipeImp # +-------------------------------------------------------+ # | Attiva l'Uncompress in backgroud | # | Lo split è dato da xaa...xac | # +-------------------------------------------------------+ nohup cat xaa xab xac | uncompress - > pipeImp & # +-------------------------------------------------------+ # | Si attiva l'import sulla pipe dello split | # +-------------------------------------------------------+ imp userid=system/manager file=pipeImp full=yes ignore=yes log=importDBSID.log # +-------------------------------------------------------+ # | Rimuovere la pipe | # +-------------------------------------------------------+ rm -f pipeImp