<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-13  評論-28  文章-63  trackbacks-0
    一. 導(dǎo)出工具 exp
     
      通過輸入 EXP 命令和用戶名/口令,您可以后接用戶名/口令的命令:
    例程: EXP SCOTT/TIGER
    或者,您也可以通過輸入跟有各種參數(shù)的 EXP 命令來控制“導(dǎo)出”按照不同參數(shù)。要指定參數(shù),您可以使用關(guān)鍵字:
    格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)例程: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表
    USERID 必須是命令行中的第一個參數(shù)。
    關(guān)鍵字  說明(默認)       
    USERID   用戶名/口令          
    FULL         導(dǎo)出整個文件 (N)
    BUFFER   數(shù)據(jù)緩沖區(qū)大小        
    OWNER     所有者用戶名列表
    FILE       輸出文件 (EXPDAT.DMP) 
    TABLES       表名稱列表
    COMPRESS   導(dǎo)入到一個區(qū) (Y)
    RECORDLENGTH IO 記錄的長度
    GRANTS 導(dǎo)出權(quán)限 (Y)          
    INCTYPE   增量導(dǎo)出類型
    INDEXES    導(dǎo)出索引 (Y)        
    RECORD       跟蹤增量導(dǎo)出 (Y)
    DIRECT     直接路徑 (N)           
    TRIGGERS     導(dǎo)出觸發(fā)器 (Y)LOG       
    屏幕輸出的日志文件  STATISTICS  
    分析對象 (ESTIMATE)ROWS   
    導(dǎo)出數(shù)據(jù)行 (Y)       
    PARFILE      參數(shù)文件名
    CONSISTENT 交叉表的一致性 (N)
    CONSTRAINTS  導(dǎo)出的約束條件 (Y)
    OBJECT_CONSISTENT    只在對象導(dǎo)出期間設(shè)置為讀的事務(wù)處理 (N)
    FEEDBACK             每 x 行的顯示進度 (0)
    FILESIZE             每個轉(zhuǎn)儲文件的最大大小
    FLASHBACK_SCN        用于將會話快照設(shè)置回以前狀態(tài)的
    SCNFLASHBACK_TIME       用于獲取最接近指定時間的 SCN 的時間
    QUERY                用于導(dǎo)出表的子集的 select 子句
    RESUMABLE            遇到與空格相關(guān)的錯誤時掛起 (N)
    RESUMABLE_NAME       用于標識可恢復(fù)語句的文本字符串
    RESUMABLE_TIMEOUT    RESUMABLE 的等待時間
    TTS_FULL_CHECK       對 TTS 執(zhí)行完整的或部分相關(guān)性檢查
    TABLESPACES          要導(dǎo)出的表空間列表
    TRANSPORT_TABLESPACE 導(dǎo)出可傳輸?shù)谋砜臻g元數(shù)據(jù) (N)
    TEMPLATE             調(diào)用 iAS 模式導(dǎo)出的模板名

    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、BUFFER和FEEDBACK,在導(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、FILL和LOG,這兩個參數(shù)分別指定備份的DMP名稱和LOG名稱,包括文件名和目錄,例子見上面。

    4. exp沒有indexfile這個參數(shù)

    5.使用direct=y參數(shù)限制是庫里有大字段(LOB類型的數(shù)據(jù))就不能用,使用了QUERY時也不能用DIRECT


    需要說明的是,EXP可以直接備份到磁帶中,即使用FILE=/dev/rmt0(磁帶設(shè)備名),但是一般我們都不這么做,原因有二:一、這樣做的速度會慢很多,二、現(xiàn)在一般都是使用磁帶庫的,不建議直接對磁帶進行操作。至于沒有使用磁帶庫的朋友可以考慮和UNIX的TAR結(jié)合使用。

    如果你真想使用EXP直接到磁帶,你可以參考Metalink文章“EXPORTING TO TAPE ON UNIX SYSTEMS”(文檔號:30428.1),該文中有詳細解釋。

    4、COMPRESS參數(shù)將在導(dǎo)出的同時合并碎塊,盡量把數(shù)據(jù)壓縮到initial的EXTENT里,默認是N,一般建議使用。DIRECT參數(shù)將告訴EXP直接讀取數(shù)據(jù),而不像傳統(tǒng)的EXP那樣,使用SELECT來讀取表中的數(shù)據(jù),這樣就減少了SQL語句處理過程。一般也建議使用。不過有些情況下DIRECT參數(shù)是無法使用的。

    二.導(dǎo)入工具 imp

    可以通過輸入 IMP 命令和您的用戶名/口令后接用戶名/口令的命令:
    例程: IMP SCOTT/TIGER
    或者, 可以通過輸入 IMP 命令和各種參數(shù)來控制“導(dǎo)入”按照不同參數(shù)。要指定參數(shù),您可以使用關(guān)鍵字:
    格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表
    USERID 必須是命令行中的第一個參數(shù)。
    關(guān)鍵字  說明(默認)       
    USERID   用戶名/口令          
    FULL         導(dǎo)入整個文件 (N)
    BUFFER   數(shù)據(jù)緩沖區(qū)大小        
    FROMUSER     所有人用戶名列表
    FILE     輸入文件 (EXPDAT.DMP)   
    TOUSER       用戶名列表
    SHOW     只列出文件內(nèi)容 (N)
    TABLES      表名列表
    IGNORE   忽略創(chuàng)建錯誤 (N)   
    RECORDLENGTH  IO 記錄的長度
    GRANTS  導(dǎo)入權(quán)限 (Y)          
    INCTYPE      增量導(dǎo)入類型
    INDEXES 導(dǎo)入索引 (Y)         
    COMMIT       提交數(shù)組插入 (N)
    ROWS    導(dǎo)入數(shù)據(jù)行 (Y)       
    PARFILE      參數(shù)文件名
    LOG      屏幕輸出的日志文件  
    CONSTRAINTS  導(dǎo)入限制 (Y)
    DESTROY                覆蓋表空間數(shù)據(jù)文件 (N)
    INDEXFILE              將表/索引信息寫入指定的文件
    SKIP_UNUSABLE_INDEXES  跳過不可用索引的維護 (N)
    FEEDBACK               每 x 行顯示進度 (0)
    TOID_NOVALIDATE        跳過指定類型 ID 的驗證
    FILESIZE               每個轉(zhuǎn)儲文件的最大大小
    STATISTICS             始終導(dǎo)入預(yù)計算的統(tǒng)計信息
    RESUMABLE            在遇到有關(guān)空間的錯誤時掛起 (N)
    RESUMABLE_NAME         用來標識可恢復(fù)語句的文本字符串
    RESUMABLE_TIMEOUT      RESUMABLE 的等待時間COMPILE                編譯過程, 程序包和函數(shù) (Y)
    STREAMS_CONFIGURATION  導(dǎo)入 Streams 的一般元數(shù)據(jù) (Y)
    STREAMS_INSTANITATION  導(dǎo)入 Streams 的實例化元數(shù)據(jù) (N)
    下列關(guān)鍵字僅用于可傳輸?shù)谋砜臻g
    TRANSPORT_TABLESPACE 導(dǎo)入可傳輸?shù)谋砜臻g元數(shù)據(jù) (N)
    TABLESPACES 將要傳輸?shù)綌?shù)據(jù)庫的表空間
    DATAFILES 將要傳輸?shù)綌?shù)據(jù)庫的數(shù)據(jù)文件
    TTS_OWNERS 擁有可傳輸表空間集中數(shù)據(jù)的用戶

    1、FROMUSER和TOUSER,使用它們實現(xiàn)將數(shù)據(jù)從一個SCHEMA中導(dǎo)入到另外一個SCHEMA中。

    2、IGNORE、GRANTS和INDEXES,其中IGNORE參數(shù)將忽略表的存在,繼續(xù)導(dǎo)入,這個對于需要調(diào)整表的存儲參數(shù)時很有用,我們可以先根據(jù)實際情況用合理的存儲參數(shù)建好表,然后直接導(dǎo)入數(shù)據(jù)。而GRANTS和INDEXES則表示是否導(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_SCN和FLASHBACK_TIME - 用于支持FLASHBACK功能而新增。

    3、RESUMABLE、RESUMABLE_NAME和RESUMABLE_TIMEOUT - 用于支持RESUMABLE空間分配而新增。

    4、TTS_FULL_CHECK - 用于在傳輸表空間時使用依賴性檢查。

    5、TEMPLATE - 用于支持iAS。

    6、TABLESPACES - 設(shè)置表空間導(dǎo)出模式。個人覺得對于一般用戶而言,這個才是新增參數(shù)中最實用的一個,可以讓用戶在原來的FULL、OWNER、TABLES的基礎(chǔ)上多了一種選擇,使得EXP更加靈活。

    FAQ:
      如何使用SYSDBA執(zhí)行EXP/IMP?

    這是一個很現(xiàn)實的問題,有時候我們需要使用SYSDBA來執(zhí)行EXP/IMP,如進行傳輸表空間的EXP/IMP,以及在9i下用SYS用戶來執(zhí)行EXP/IMP時,都需要使用SYSDBA才可。我們可以使用下面方式連入EXP/IMP:

    exp USERID=/@10.249.2.18/<SID> file=1.dmp tables=gototop.t rows=n
    然后當  Username: / as sysdba

    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 and """

      不同版本的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號為2261,你可以到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; 

    導(dǎo)入工具imp可能出現(xiàn)的問題

    (1) 數(shù)據(jù)庫對象已經(jīng)存在
            一般情況, 導(dǎo)入數(shù)據(jù)前應(yīng)該徹底刪除目標數(shù)據(jù)下的表, 序列, 函數(shù)/過程,觸發(fā)器等;         
            數(shù)據(jù)庫對象已經(jīng)存在, 按缺省的imp參數(shù), 則會導(dǎo)入失敗
            如果用了參數(shù)ignore=y, 會把exp文件內(nèi)的數(shù)據(jù)內(nèi)容導(dǎo)入
                    如果表有唯一關(guān)鍵字的約束條件, 不合條件將不被導(dǎo)入
                    如果表沒有唯一關(guān)鍵字的約束條件, 將引起記錄重復(fù)
                   
    (2) 數(shù)據(jù)庫對象有主外鍵約束
          不符合主外鍵約束時, 數(shù)據(jù)會導(dǎo)入失敗       
          解決辦法: 先導(dǎo)入主表, 再導(dǎo)入依存表
                    disable目標導(dǎo)入對象的主外鍵約束, 導(dǎo)入數(shù)據(jù)后, 再enable它們
    (3)  權(quán)限不夠
            如果要把A用戶的數(shù)據(jù)導(dǎo)入B用戶下, A用戶需要有imp_full_database權(quán)限
           
    (4)  導(dǎo)入大表( 大于80M ) 時, 存儲分配失敗
          默認的EXP時, compress = Y, 也就是把所有的數(shù)據(jù)壓縮在一個數(shù)據(jù)塊上.
          導(dǎo)入時, 如果不存在連續(xù)一個大數(shù)據(jù)塊, 則會導(dǎo)入失敗.
          導(dǎo)出80M以上的大表時, 記得compress= N, 則不會引起這種錯誤.
           
    (5) imp和exp使用的字符集不同
          如果字符集不同, 導(dǎo)入會失敗, 可以改變unix環(huán)境變量或者NT注冊表里NLS_LANG相關(guān)信息.
          導(dǎo)入完成后再改回來.

    (6) imp和exp版本不能往上兼容
            imp可以成功導(dǎo)入低版本exp生成的文件, 不能導(dǎo)入高版本exp生成的文件
            根據(jù)情況我們可以用
            $ imp username/password@connect_string
            說明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora
                       定義的本地或者遠端數(shù)據(jù)庫的名稱
          

     


      其他問題

    本文只討論了Oracle8i和9i中的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)建需要的索引。

    posted on 2007-11-02 10:52 七匹狼 閱讀(2481) 評論(0)  編輯  收藏 所屬分類: oracle
    主站蜘蛛池模板: 久久久久亚洲av无码尤物| 久久夜色精品国产噜噜亚洲a| 日本免费一区二区三区最新| 丰满亚洲大尺度无码无码专线| 国产亚洲精品资在线| 中文字幕免费视频| 婷婷久久久亚洲欧洲日产国码AV | 在线看片无码永久免费aⅴ| 亚洲阿v天堂在线2017免费| 亚洲春色另类小说| 亚洲国产精品综合久久一线| 57pao国产成视频免费播放| 日本系列1页亚洲系列| 亚洲午夜久久久精品影院| 午夜无遮挡羞羞漫画免费| 亚洲AV无码乱码国产麻豆穿越| 亚洲免费网站观看视频| 你好老叔电影观看免费| 亚洲人成网站18禁止| 亚洲国产一区二区a毛片| 免费人成视频在线观看视频| 国产精品入口麻豆免费观看| 美女巨胸喷奶水视频www免费| 亚洲 欧洲 自拍 另类 校园| 亚洲丝袜美腿视频| 亚洲性日韩精品一区二区三区 | 黄 色一级 成 人网站免费| 亚洲中文字幕久在线| 免费精品国产日韩热久久| 国产精品美女久久久免费| 亚洲av无码一区二区三区天堂| 亚洲成a人片在线观看中文动漫| 免费精品国产自产拍观看| 黄页网站在线观看免费高清| 暖暖免费日本在线中文| 一级中文字幕乱码免费| 亚洲av永久无码| 亚洲色精品三区二区一区| 亚洲不卡视频在线观看| 久久精品国产亚洲av高清漫画 | 国产午夜亚洲精品国产成人小说|