EXP/IMP 學習(三)
1.3 最佳化
1. 加快exp速度
加大 large_pool_size,可以提高 exp的速度 採用直接路徑的方式(direct=y),資料不需要經過記憶體進行整合和檢查. 設定較大的 buffer,如果匯出大物件,小 buffer會失敗。
export檔案不在 ORACLE使用的驅動器上 不要 export到 NFS檔案系統
UNIX環境:用管道模式直接匯入匯出來提高 imp/exp的效能
2. 加快imp速度
建立一個 indexfile,在資料 import完成後在建立索引
將 import 檔案放在不同的驅動器上 增加 DB_BLOCK_BUFFERS
增加 LOG_BUFFER
用非歸檔方式執行 ORACLE:ALTER DATABASE NOARCHIVELOG; 建立大的表空間和回滾段,OFFLINE其他回滾段,回滾段的大小為最大表的 1/2 使用 COMMIT=N
使用 ANALYZE=N
單使用者模式匯入
UNIX環境:用管道模式直接匯入匯出來提高 imp/exp的效能
3. 透過unix/Linux PIPE管道加快exp/imp速度
透過管道匯出資料:
1.透過 mknod -p 建立管道
$ mknod /home/exppipe p // 在目錄/home下建立一個管道 exppipe注意引數 p
2.透過 exp和 gzip匯出資料到建立的管道並壓縮
$ exp test/test file=/home/exppipe & gzip < /home/exppipe > exp.dmp.gz
$ exp test/test tables=bitmap file=/home/newsys/test.pipe &
gzip < /home/newsys/test.pipe > bitmap.dmp.gz
3.匯出成功完成之後刪除建立的管道
$ rm -rf /home/exppipe
匯出指令碼:
###UNIX下 ORACLE資料庫透過 PIPE管道進行備份
###### using "export" and "tar" command to bakup oracle datebase #######
trap "" 1 #nohup
LOGFILE=/opt/bakup/log/bakup_ora.log
export LOGFILE
DUMPDIR=/archlog_node1
export DUMPDIR
exec >$LOGFILE 2>&1
echo
echo ' Begin at ' `date`
echo
# clear old result file
cd $DUMPDIR
if [ -f exp.dmp.Z ]
then
echo "clear old result file"
rm exp.dmp.Z
fi
#make pipe
mkfifo exp.pipe
chmod a+rw exp.pipe
#gain the dmp.Z file
compress < exp.pipe > exp.dmp.Z &
su -u oracle -c "exp userid=ll/ll file=$DUMPDIR/exp.pipe full=y buffer=20000000"
echo
echo ' exp end at '`date`
echo
# rm pipe
rm exp.pipe
#tar the dmp.Z file to tape
mt -f /dev/rmt/0 rew
tar cvf /dev/rmt/0 exp.dmp.Z
echo
echo 'tar end at '`date`
echo
透過管道匯入生成的檔案:
1.透過 mknod -p 建立管道
$ mknod /home/exppipe p
2.匯入生成的壓縮檔案
$ imp test/test file=/home/exppipe fromuser=test touser=macro &
gunzip < exp.dmp.gz > /home/exppipe
3.刪除管道
$ rm –fr /home/exppipe
4. 全庫匯入的一般步驟
注意:在匯出時,需要透過toad或其他工具提取源資料庫建立主鍵和索引的指令碼
1. 先全庫加 rows=n 把結構導進去
$ imp system/manager file=exp.dmp log=imp.log full=y rows=n indexes=n
2. 使業務使用者的觸發器失效/刪除主鍵和唯一索引
spool drop_pk_u.sql
select 'alter table '||table_name||' drop constraint '||constraint_name||';'
from user_constraints
where constraint_type in ('P','U');
/
spool off
spool disable_trigger.sql
select 'alter trigger '||trigger_name||' disable;'
from user_triggers;
/
spool off
@drop_pk_u.sql
@disable_trigger.sql
3. 以 ignore=y全庫匯入
$ imp system/manager file=exp.dmp log=imp.log full=y ignore=y
4. 透過 toad或其他工具提取源資料庫建立主鍵和索引的指令碼,在目標資料庫中建立主鍵和索引。使觸發器生效。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-666323/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- EXP/IMP 學習(五)
- EXP/IMP 學習(四)
- EXP/IMP 學習(二)
- EXP/IMP 學習(一)
- EXP/IMP 學習(六)
- 關於exp/imp的總結學習
- exp/imp工具
- Oracle imp/expOracle
- 【EXP/IMP】使用EXP /IMP工具“模糊”匯出和匯入
- oracle exp和impOracle
- oracle imp和expOracle
- exp imp資料
- oracle exp imp 用法Oracle
- EXP&IMP PIPE
- 【exp/imp不同版本】Oracle不同版本的exp/imp使用注意事項Oracle
- exp和imp詳解
- 淺談exp/imp(上)
- 淺談exp/imp(下)
- exp/imp命令詳解
- exp/imp工具的使用
- IMP和EXP筆記筆記
- exp_imp實戰
- Oracle的exp/imp詳解Oracle
- exp,imp 遷移資料
- imp/exp資料遷移
- oracle exp_imp小記Oracle
- 大表exp/imp遷移
- imp/exp命令 詳解(1)
- 理解exp, imp 使用direct=y 及imp commit=yMIT
- ORACLE exp/imp匯入報錯IMP-00009&IMP-00028&IMP-00015Oracle
- exp,imp相關工具說明
- RMAN與exp / imp的區別
- expdp\impdp及exp\imp 詳解
- Oracle Exp/Imp常見問題Oracle
- 轉:Exp/Imp工具效能調優
- 老外的EXP&IMP總結
- exp和imp的詳細操作
- 24.EXP和IMP(筆記)筆記