程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracel數據導出導入

oracel數據導出導入

編輯:Oracle教程

oracel數據導出導入


一、導出模式(三種模式)及命令格式   1、 全庫模式   exp 用戶名/密碼@網絡服務名 full=y file=路徑\文件名.dmp log=路徑\文件名.log   2、 用戶模式(一般情況下采用此模式)   exp 用戶名/密碼@網絡服務名 owners=(用戶1,用戶2,用戶3,…) file=路徑\文件名.dmp log=路徑\文件名.log   3、 表模式   exp 用戶名/密碼@網絡服務名 tables=(表名1,表名2,表名3,…)file=路徑\文件名.dmp log=路徑\文件名.log   4、 另外,還可以只導出某個表空間   exp 用戶名/密碼@網絡服務名 tablespaces=(表空間1,表空間2,表空間3,…) file=路徑\文件名.dmp log=路徑\文件名.log   二、導入模式(三種模式)及命令格式   1、 全庫模式   imp 用戶名/密碼@網絡服務名 full=y file=路徑\文件名.dmp log=路徑\ds110.log   2、 用戶模式(一般情況下采用此模式)   imp 用戶名/密碼@網絡服務名 file=路徑\文件名.dmp fromuser=導出的用戶名 touser=導入的用戶名 log=路徑\ds110.log   3、 表模式   imp 用戶名/密碼@網絡服務名 tables=(表名1,表名2,表名3,…)file=路徑\文件名.dmp fromuser=導出的用戶名 touser=導入的用戶名 log=路徑\ds110.log   4、 另外,還可以只導入某個表空間   imp 用戶名/密碼@網絡服務名 tablespaces=(表空間1,表空間2,表空間3,…) file=路徑\文件名.dmp fromuser=導出的用戶名 touser=導入的用戶名 log=路徑\ds110.log   三、導入的命令參數說明   USERID 用戶名/密碼   FULL 是否全庫導入 (Y 或 N),默認為 N   BUFFER 數據緩沖的大小   FROMUSER 導出的用戶列表,即導入文件是從哪個用戶導出的   TOUSER 導入的用戶列表,即要到哪個用戶中   FILE 導入文件,是dmp文件   SHOW 只列出文件內容 (Y 或 N) ,默認為 N    TABLES 要導入的表名列表   IGNORE 在導入過程中是否忽略錯誤 , 默認為 N   RECORDLENGTH 記錄的長度,默認為operating system-dependent   GRANTS 導入權限 (Y 或 N),默認為Y   INCTYPE 導入的類型是否為遞增(Y 或 N),默認為 N    INDEXES 導入索引 (Y 或 N) ,默認為Y   COMMIT 在導入過程中,是否導入一行數據,提交一行 (Y 或 N)默認為N,即在每個表導入後,進行提交   ROWS 導入行數據 (Y 或 N) ,默認為 Y   PARFILE 參數文件名   LOG 輸出的日志文件   DESTROY 是否覆蓋表空間上的數據文件 (Y 或 N) 默認為N   INDEXFILE 將表或索引信息寫到指定的文件中   CHARSET 導出文件的字符集,默認為 NLS_LANG   ANALYZE 在導入時執行ANALYZE語句 (Y 或 N) 默認為 Y   FEEDBACK 在導入時每個幾行顯示進度,默認為0   四、導出的命令參數說明   USERID 用戶名/密碼   FULL 是否全庫導入 (Y 或 N),默認為 N   BUFFER 數據緩沖的大小   OWNER 導出的用戶列表   FILE 導出文件,是dmp文件   TABLES 要導出的表名列表   COMPRESS 是否壓縮(Y 或 N), 默認為Y    RECORDLENGTH 輸入輸出記錄的長度,默認為operating system-dependent   GRANTS 導出權限 (Y 或 N),默認為Y   INCTYPE 導出的類型是否為遞增(Y 或 N),默認為 N    INDEXES 導出索引 (Y 或 N) ,默認為Y   RECORD 是否在系統SYS.INCEXP, SYS.INCFIL中記錄一個遞增或累計的導出(Y 或 N) , 默認為Y    ROWS 導出行數據 (Y 或 N) ,默認為 Y   PARFILE 參數文件名   CONSTRAINTS 是否導出約束,(Y 或 N) ,默認為 Y    CONSISTENT 在執行導出操作時是否加事務(Y 或 N),默認為 N    LOG 輸出的日志文件   STATISTICS 在導出時執行ANALYZE語句 (Y 或 N) 默認為 Y   DIRECT direct path (N)    FEEDBACK 在導出時每個幾行顯示進度,默認為0   五、導出的對象   1、 全庫模塊   可以導出除sys用戶擁有的所有數據庫對象,包括:表空間的定義、配置文件、用戶定義、角色、系統權限授權、角色授權、默認角色、resource costs、會滾段的定義、數據庫鏈接、虛列、所有目錄別名、所有外部函數庫、所有對象類型、所有簇定義;對於每個表,還可導出表使用的對象類型定義、表定義、表數據、嵌套表數據、表索引、表約束、表授權、分析表、列和表注釋、審核信息、所有引用的完整性約束、所有同義詞、所有視圖、所有存儲過程、包、函數、所有觸發器、分析簇、快照、job、all refresh groups and children   2、 用戶模塊   對象類型、數據庫鏈路、序列、簇定義,對於每個表,還可導出表使用的對象類型定義、表定義、表數據、嵌套表數據、表索引、表約束、表授權、分析表、列和表注釋、審核信息、屬於當前用戶的表所引用的完整性約束、同義詞、視圖、存儲過程、包、函數、觸發器、分析簇、快照、job、refresh groups   3、 表模式   可導出表使用的對象類型定義、表定義、表數據、嵌套表數據、表索引、表約束、表授權、分析表、列和表注釋、審核信息、表引用的完整性約束、觸發器,還可導出其他用戶擁有的觸發器、其他用戶用戶的索引   六、導入時的順序   1、 字符集   2、 表定義   3、 表數據   4、 表索引   5、 完整性約束、觸發器、bitmap索引   6、 視圖、函數、過程   7、 包   七、高級應用   1、 當把數據加載到一張已存在的表中,必須使用參數IGNORE = Y   2、 如何在導出表時加入條件   Exp 用戶名/密碼@網絡服務名 file=路徑\文件名.dmp tables=(表名) query = \”條件\”   3、   八、全庫導入時包含的系統對象   配置文件profiles   公共數據庫鏈接   同義詞   角色   會滾段的定義   system audit options    系統權限   表空間定義   tablespace quotas    用戶定義   目錄別名   九、導入工具imp可能出現的問題   1、數據庫對象已經存在   一般情況, 導入數據前應該徹底刪除目標數據下的表, 序列, 函數/過程,觸發器等;數據庫對象已經存在, 按缺省的imp參數, 則會導入失敗;如果用了參數ignore=y, 會把exp文件內的數據內容導入;如果表有唯一關鍵字的約束條件, 不合條件將不被導入,如果表沒有唯一關鍵字的約束條件, 將引起記錄重復   2、 數據庫對象有主外鍵約束    這發生在將幾個包含表的DMP文件分別導入數據庫時,不符合主外鍵約束, 數據便會導入失敗;解決辦法: 先導入主表, 再導入依存表;disable目標導入對象的主外鍵約束, 導入數據後, 再enable它們   3、 權限不夠     如果要把A用戶的數據導入B用戶下, 做導入操作的用戶需要有imp_full_database權限   4、 導入大表( 大於80M ) 時, 存儲分配失敗   默認的EXP時, compress = Y, 也就是把所有的數據壓縮在一個數據塊上,導入時, 如果不存在連續一個大數據塊, 則會導入失敗,導出80M以上的大表時, 記得compress= N, 則不會引起這種錯誤.   5、 imp和exp使用的字符集不同   如果字符集不同, 導入會失敗, 可以改變unix環境變量或者NT注冊表裡NLS_LANG相關信息,導入完成後再改回來.   6、 imp和exp版本不能往上兼容   imp可以成功導入低版本exp生成的文件, 不能導入高版本exp生成的文件   十、 從一個賬戶導出,另一個賬戶導入   導出表模式示例:   1 從dbo_pwcdb 賬號導出 PRNBSN_CONTENTTEMPLATE,PRNBSN_RELINFOCONTENT 兩個表,不帶數據   exp dbo_pwcdb/dbo_pwcdb@BSY2-NQQX-IP50 file=d:\daochu_noData.dmp tables=   (PRNBSN_CONTENTTEMPLATE,PRNBSN_RELINFOCONTENT) rows=n;   2  導入 dbo_smydb 賬戶   imp dbo_smydb/dbo_smydb@BSY2-SMY-IP11 full=y file=d:\daochu_noData.dmp  touser=dbo_smydb ignore=y;   十一、 借助PL/SQL  Developer 工具 導出導入 觸發器,存儲過程,序列,索引等對象。   1   A賬戶登錄PL/SQL Developer 工具,在菜單中選擇 工具--->導出用戶對象   2 以導出存儲過程為示例,選擇如下圖: 在procedure 對象中,選擇需要導出的存儲過程對象,設置輸出文件名字,點擊導出。   3 如果在需要導入的oracle庫中,是同一個名字的賬戶,可以直接新建一個命令窗口,然後復制剛才導出fun_proc.sql的內容,粘貼到 命令窗口中,就自動執行了;相當於通過sql腳本進行導入;   如果需要導入的oracle庫中,是另外一個名字的賬戶,比如B賬戶。那麼需要打開fun_proc.sql 文件,查找所有A賬戶名全部替換為B賬戶,然後再用B賬戶登錄PL/SQL Developer 工具,新建命令窗口,粘貼文件內容,執行。   注意:生成的存儲過程名字會如下形式 Create procedure   賬戶A.存儲過程名  所以需要替換為 Create procedure   賬戶B.存儲過程名. 打開看下就明白了。   其他對象的導入參照存儲過程對象導入方式。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved