小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Oracle8i/9i EXP/IMP使用經(jīng)驗

 looline 2006-11-18

Oracle8i/9i EXP/IMP使用經(jīng)驗 
轉(zhuǎn)自聚賢莊” 作者gototop 
=================================== 
一、8i EXP常用選項 
  
1
、FULL,這個用于導(dǎo)出整個數(shù)據(jù)庫,在ROWS=N一起使用時,可以導(dǎo)出整個數(shù)據(jù)庫的結(jié)構(gòu)。例如: 
  
exp sys file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y 
  
2
、BUFFERFEEDBACK,在導(dǎo)出比較多的數(shù)據(jù)時,我會考慮設(shè)置這兩個參數(shù)。例如: 
  
exp new file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000 buffer=100000000 tables=WO4,OK_YT 
  
3
、FILLLOG,這兩個參數(shù)分別指定備份的DMP名稱和LOG名稱,包括文件名和目錄,例子見上面。 
  
需要說明的是,EXP可以直接備份到磁帶中,即使用FILE=/dev/rmt0(磁帶設(shè)備名),但是一般我們都不這么做,原因有二:一、這樣做的速度會慢很多,二、現(xiàn)在一般都是使用磁帶庫的,不建議直接對磁帶進行操作。至于沒有使用磁帶庫的朋友可以考慮和UNIXTAR結(jié)合使用。 
  
如果你真想使用EXP直接到磁帶,你可以參考Metalink文章“EXPORTING TO TAPE ON UNIX SYSTEMS”(文檔號:30428.1),該文中有詳細解釋。 
  
4
、COMPRESS參數(shù)將在導(dǎo)出的同時合并碎塊,盡量把數(shù)據(jù)壓縮到initialEXTENT里,默認是N,一般建議使用。DIRECT參數(shù)將告訴EXP直接讀取數(shù)據(jù),而不像傳統(tǒng)的EXP那樣,使用SELECT來讀取表中的數(shù)據(jù),這樣就減少了SQL語句處理過程。一般也建議使用。不過有些情況下DIRECT參數(shù)是無法使用的。 
  
5
、如何使用SYSDBA執(zhí)行EXP/IMP 
  
這是一個很現(xiàn)實的問題,有時候我們需要使用SYSDBA來執(zhí)行EXP/IMP,如進行傳輸表空間的EXP/IMP,以及在9i下用SYS用戶來執(zhí)行EXP/IMP時,都需要使用SYSDBA才可。我們可以使用下面方式連入EXP/IMP 
  
exp "‘sys/sys as sysdba‘" file=1.dmp tables=gototop.t rows=n 
  
6
、QUERY參數(shù)后面跟的是where條件,值得注意的是,整個where子句需要使用""括起來,where子句的寫法和SELECT中相同,如果是UNIX平臺所有"都需要使用\u26469屏蔽它們的特殊含義: 
  
exp gototop/gototop file=1.dmp log=1.log tables=cyx.t query="where c1=20 and c2=gototop" 
  
如果是windows平臺,則使用下面的格式: 
  
exp c/c@ncn file=c.dmp log=c.log tables=t query="""where id=1 and name=‘gototop‘""" 
  
二、8i IMP常用選項 
  
1
、FROMUSERTOUSER,使用它們實現(xiàn)將數(shù)據(jù)從一個SCHEMA中導(dǎo)入到另外一個SCHEMA中。 
  
2
、IGNOREGRANTSINDEXES,其中IGNORE參數(shù)將忽略表的存在,繼續(xù)導(dǎo)入,這個對于需要調(diào)整表的存儲參數(shù)時很有用,我們可以先根據(jù)實際情況用合理的存儲參數(shù)建好表,然后直接導(dǎo)入數(shù)據(jù)。而GRANTSINDEXES則表示是否導(dǎo)入授權(quán)和索引,如果想使用新的存儲參數(shù)重建索引,或者為了加快到入速度,我們可以考慮將INDEXES設(shè)為N,而GRANTS一般都是Y。 
  
另外一個EXP/IMP都有的參數(shù)是PARFILE,它是用來定義EXP/IMP的參數(shù)文件,也就是說,上面的參數(shù)都可以寫在一個參數(shù)文件中,但我們一般很少使用。 
  
三、Oracle9i EXP功能描述 
  
Oracle9i EXP
在原有的基礎(chǔ)上新增了部分新的參數(shù),按功能主要分為以下幾個部分: 
  
1
、OBJECT_CONSISTENT - 用于設(shè)置EXP對象為只讀以保持對象的一致性。默認是N。 
  
2
、FLASHBACK_SCNFLASHBACK_TIME - 用于支持FLASHBACK功能而新增。 
  
3
、RESUMABLE、RESUMABLE_NAMERESUMABLE_TIMEOUT - 用于支持RESUMABLE空間分配而新增。 
  
4
、TTS_FULL_CHECK - 用于在傳輸表空間時使用依賴性檢查。 
  
5
TEMPLATE - 用于支持iAS。 
  
6
、TABLESPACES - 設(shè)置表空間導(dǎo)出模式。個人覺得對于一般用戶而言,這個才是新增參數(shù)中最實用的一個,可以讓用戶在原來的FULL、OWNERTABLES的基礎(chǔ)上多了一種選擇,使得EXP更加靈活。 
  
四、不同版本的EXP/IMP問題? 
  
一般來說,從低版本導(dǎo)入到高版本問題不大,麻煩的是將高版本的數(shù)據(jù)導(dǎo)入到低版本中,在Oracle9i之前,不同版本Oracle之間的EXP/IMP可以通過下面的方法來解決: 
  
1
、在高版本數(shù)據(jù)庫上運行底版本的catexp.sql; 
  
2
、使用低版本的EXP來導(dǎo)出高版本的數(shù)據(jù); 
  
3
、使用低版本的IMP將數(shù)據(jù)庫導(dǎo)入到底版本數(shù)據(jù)庫中; 
  
4
、在高版本數(shù)據(jù)庫上重新運行高版本的catexp.sql腳本。 
  
但在9i中,上面的方法并不能解決問題。如果直接使用底版本EXP/IMP會出現(xiàn)如下錯誤: 
  
EXP-00008: ORACLE error %lu encountered 
  
ORA-00904: invalid column name 
  
這已經(jīng)是一個公布的BUG,需要等到Oracle10.0才能解決,BUG號為2261722,你可以到METALINK上去查看有關(guān)此BUG的詳細信息。 
  
BUG
BUG,我們的工作還是要做,在沒有Oracle的支持之前,我們就自己解決。在Oracle9i中執(zhí)行下面的SQL重建exu81rls視圖即可。 
  
CREATE OR REPLACE view exu81rls  
  
(objown,objnam,policy,polown,polsch,polfun,stmts,chkopt,enabled,spolicy)  
  
AS select u.name, o.name, r.pname, r.pfschma, r.ppname, r.pfname,  
  
decode(bitand(r.stmt_type,1), 0,‘‘, ‘SELECT,‘)  
  
|| decode(bitand(r.stmt_type,2), 0,‘‘, ‘INSERT,‘)  
  
|| decode(bitand(r.stmt_type,4), 0,‘‘, ‘UPDATE,‘)  
  
|| decode(bitand(r.stmt_type,8), 0,‘‘, ‘DELETE,‘),  
  
r.check_opt, r.enable_flag,  
  
DECODE(BITAND(r.stmt_type, 16), 0, 0, 1)  
  
from user u, obj o, rls r  
  
where u.user# = o.owner#  
  
and r.obj# = o.obj#  
  
and (uid = 0 or  
  
uid = o.owner# or  
  
exists ( select * from session_roles where role=‘SELECT_CATALOG_ROLE‘)  
  
)  
  
/  
  
grant select on sys.exu81rls to public;  
  
/  
  
五、其他問題 
  
本文只討論了Oracle8i9i中的EXP/IMP的一些情況,對于之前的版本,在8.0.X中,除了QUERY參數(shù)不能用外,其它差別不大。針對沒有QUERY的情況,我們可以先在數(shù)據(jù)庫中使用查詢條件建立臨時中間表,然后使用EXP導(dǎo)出這個中間表即可。至于Oracle7因為目前使用的人較少,gototop不打算在此做詳細解釋了,如果讀者朋友有需求,你可以參考Metalink文檔:“Overview of Export and Import in Oracle7”(文檔號:61949.1)。關(guān)于EXP/IMP的詳細參數(shù)信息你可以通過EXP/IMP HELP=Y來獲得。 
  
另外關(guān)于傳輸表空間的更多信息可以參考下面的Metelink文檔,本文不再詳述。 
  
[NOTE:77523.1] Transportable Tablespaces -- An Example to setup and use.  
  
[NOTE:100698.1] Perform tablespace point-in-time recovery using Transportable Tablespace.  
  
在進行并行EXP/IMP的時候,如果IMP過程建索引的話不建議同時運行5個以上的IMP,如果你想加快速度,可以在IMP的時候不建索引,這樣只要內(nèi)存允許,可以多跑幾個,然后是SQL腳本創(chuàng)建需要的索引。 
  
可能有很多朋友提到不同字符集的EXP/IMP問題,gototop以為這個問題之所以會出現(xiàn)純粹是因為數(shù)據(jù)庫平臺沒有規(guī)劃的結(jié)果,實際情況過于復(fù)雜,如果各位有興趣,可以自行探討,本文將就此打住。
==============================================================
整理出來的實例exp/imp 
1 table model
  1) backup one user‘s table
     exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 file=exp_icdmain_table_yyyymmdd.dmp log=exp_icdmain_table_yyyymmdd.log tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
  2) recover all table
     imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 file=exp_icdmain_table_yyyymmdd.dmp log=imp_icdmain_table_yyyymmdd.log
  3) recover some table of all table
     imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 file=exp_icdmain_table_yyyymmdd.dmp log=imp_icdmain_table_yyyymmdd.log tables=commoninformation,serviceinfo
      



2 user model
  1) backup all someone‘s object
     exp icdmain/icd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0  owner=icdmain file=exp_icdmain_user_yyyymmdd.dmp log=exp_icdmain_user_yyyymmdd.log
  2) recover all someone‘s object
     imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 file=exp_icdmain_user_yyyymmdd.dmp log=imp_icdmain_user_yyyymmdd.log
  3) recover some table of all someone‘s object
     imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 file=exp_icdmain_user_yyyymmdd.dmp log=imp_icdmain_user_yyyymmdd.log tables=commoninformation,serviceinfo 




3 full model
  1)backup the full db for all
    exp system/manager rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y inctype=complete file=exp_fulldb_yyyymmdd.dmp log=exp_fulldb_yyyymmdd.log
  2)backup the full db for zengliang
    exp system/manager rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y inctype=incremental file=exp_fulldb_zl_yyyymmdd.dmp log=exp_fulldb_zl_yyyymmdd.log 
  3)recover all date for full backup
    imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 full=y file=exp_fulldb_yyyymmdd.dmp log=imp_fulldb_yyyymmdd.log 
  4)recover all date for zengliang backup
    imp system/manager rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=y volsize=0 full=y inctype=restore file=exp_fulldb_zl_yyyymmdd.dmp log=imp_fulldb_zl_yyyymmdd.log





    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多