新聞中心
導(dǎo)入數(shù)據(jù)是數(shù)據(jù)庫管理中必不可少的過程,通常情況下,我們使用Oracle數(shù)據(jù)庫來管理各種各樣的數(shù)據(jù)。Oracle數(shù)據(jù)庫有很多命令可以用來導(dǎo)入和導(dǎo)出數(shù)據(jù),其中最常用的就是imp和exp命令。在本文中,我們將會詳細(xì)討論imp命令,包括什么是imp命令、它的工作原理、如何使用以及一些實(shí)例操作等。

公司主營業(yè)務(wù):網(wǎng)站制作、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出嘉峪關(guān)免費(fèi)做網(wǎng)站回饋大家。
什么是imp命令?
imp命令是Oracle數(shù)據(jù)庫中的一個命令行工具,它可以用來導(dǎo)入數(shù)據(jù)到數(shù)據(jù)庫中。在導(dǎo)入數(shù)據(jù)的過程中,imp命令可以將數(shù)據(jù)從一個二進(jìn)制文件中讀取,然后將其插入到目標(biāo)數(shù)據(jù)庫表中。imp命令的功能非常強(qiáng)大,它可以讓我們從多種來源導(dǎo)入多種數(shù)據(jù)類型、格式以及大小的數(shù)據(jù)。因此,在數(shù)據(jù)庫管理中,imp命令也是一個必不可少的工具。
imp命令的工作原理
imp命令是通過讀取一個數(shù)據(jù)文件來將數(shù)據(jù)插入數(shù)據(jù)庫表的。在導(dǎo)入數(shù)據(jù)之前,我們必須先創(chuàng)建一個目標(biāo)表來存儲我們將要導(dǎo)入的數(shù)據(jù)。目標(biāo)表應(yīng)該已經(jīng)定義好,并且必須與我們要導(dǎo)入的數(shù)據(jù)具有相同的結(jié)構(gòu)和字段名稱。如果目標(biāo)表中已經(jīng)有了數(shù)據(jù),那么導(dǎo)入的數(shù)據(jù)將會覆蓋原有的數(shù)據(jù)。另外,在導(dǎo)入數(shù)據(jù)之前,我們還可以設(shè)置一些參數(shù)以控制數(shù)據(jù)導(dǎo)入的過程,這些參數(shù)可以控制一些特定的行為以及數(shù)據(jù)的格式化等。
如何使用imp命令?
使用imp命令之前,我們需要先連接到管理員權(quán)限下的數(shù)據(jù)庫。我們需要啟動命令行并輸入以下命令:
imp userid=username/password
這個命令會啟動imp命令行工具,并以用戶名和密碼登錄到數(shù)據(jù)庫中。在登錄之后,我們就可以開始使用imp命令來導(dǎo)入數(shù)據(jù)了。下面將詳細(xì)介紹一些常用的imp命令參數(shù):
1. FROMUSER:指定數(shù)據(jù)的來源用戶名。
2. TOUSER:指定數(shù)據(jù)導(dǎo)入到的目標(biāo)用戶名。
3. FILE:指定要導(dǎo)入的數(shù)據(jù)文件,可以是dump文件或SQL文件。
4. TABLES:指定要導(dǎo)入的數(shù)據(jù)表。
5. INDEXES:導(dǎo)入表時,同時導(dǎo)入表的索引。
6. CONSTRNTS:導(dǎo)入表時,同時導(dǎo)入表的約束。
7. ROWS:導(dǎo)入表時,同時導(dǎo)入表的行。
8. IGNORE:如果表已存在,忽略。
9. GRANTS:導(dǎo)入表時,同時導(dǎo)入表的權(quán)限。
10. LOG:記錄導(dǎo)入的過程,并將過程中的錯誤信息寫入到指定的日志文件中。
11. FULL:導(dǎo)入時,將所有相應(yīng)的表空間信息也一并導(dǎo)入。
下面是一些常用的imp命令的示例:
1. 導(dǎo)入整個數(shù)據(jù)庫:
imp userid=sys/sys file=myexport.dmp full=y
以上命令將整個數(shù)據(jù)庫導(dǎo)入到myexport.dmp文件中,并將所有的表空間信息都一并導(dǎo)入。
2. 導(dǎo)入單個表:
imp userid=sys/sys file=myexport.dmp tables=employees
以上命令將從myexport.dmp文件中導(dǎo)入employees表。
3. 導(dǎo)入一段SQL代碼:
imp userid=sys/sys file=myexport.sql ignore=y
以上命令將從myexport.sql文件中導(dǎo)入SQL語句,并忽略重復(fù)操作。
結(jié)論
在本文中,我們已經(jīng)詳細(xì)地介紹了imp命令的工作原理、如何使用以及一些實(shí)例操作。imp命令是Oracle數(shù)據(jù)庫中非常重要的工具,它可以幫助我們快速、準(zhǔn)確地將數(shù)據(jù)從一個文件中導(dǎo)入到數(shù)據(jù)庫表中。當(dāng)我們面臨大批量數(shù)據(jù)導(dǎo)入的任務(wù)時,使用imp命令可以大大提高我們的工作效率。所以,數(shù)據(jù)庫管理人員應(yīng)該掌握這個命令,并在必要時靈活運(yùn)用它。
相關(guān)問題拓展閱讀:
- exp和imp用法和介紹
exp和imp用法和介紹
Export/Import的用處 Oracle Export/Import工具用于在數(shù)據(jù)庫之間傳遞數(shù)據(jù) Export從數(shù)據(jù)庫中導(dǎo)出數(shù)據(jù)到dump文件中 Import從dump文件中到入數(shù)據(jù)導(dǎo)數(shù)據(jù)庫中 下面是一般使用他們的情蘆晌況 ?。?) 兩個數(shù)據(jù)庫之間傳送數(shù)據(jù) 同一個版本的oracle Server之間 不同版本的oracle Server之間 同種OS之間 不同種OS之間 ?。?) 用于數(shù)據(jù)庫的備份和恢復(fù) ( ) 從一個SCHEMA傳送到另一個SCHEMA ?。?) 從一個TABLESPACE傳送到另一個TABLESPACE DUMP文件 EXPORT到出的是二進(jìn)制格式的文件 不可以手工編輯 否則會損壞數(shù)據(jù) 該文件在ORACLE支持的任何平臺上都是一樣的格式 可以在各平臺上通用 DUMP文件在IMPORT時采用向上兼容方式 就是說ORALCE 的納嘩畢DUMP文件可以導(dǎo)入 到ORACLE 中 但是版本相差很大的版本之間可能有問題 EXPORT/IMPORT過程 EXPORT導(dǎo)出的DUMP文件包含兩種基本類型的數(shù)據(jù) DDL (Data Dictionary Language) Data DUMP文件包含所有重新創(chuàng)建Data Dictionary的DDL語句 基本上是可以讀的格式 但是應(yīng)該注意的是 千萬不要用文本編輯器編輯之 oracle說不支持這樣做的 下面列出的是DUMP文件中包括的ORACLE對象 分為TABLE/USER/FULL方式 有些對象 只是在FULL方式下才有(比如public synonyms users roles rollback segments等) Table modeUser ModeFull Database ModeTable definitions Table definitions Table definitions Table dataTable dataTable data Owner s table grants Owner s grants Grants Owner s table indexes Owner s indexes Indexes Table constraints Table constraints Table constraints Table triggers Table triggers All triggers ClustersClusters Database links Database links Job queuesJob queues Refresh groups 洞芹Refresh groups SequencesSequences SnapshotsSnapshots Snapshot logs Snapshot logs Stored procedures Stored procedures Private synonyms All synonyms ViewsViews Profiles Replication catalog Resource cost Roles Rollback segments System audit options System privileges Tablespace definitions Tablespace quotas User definitions IMPORT時的對象倒入順序 在倒入數(shù)據(jù)時 ORACLE有一個特定的順序 可能隨數(shù)據(jù)庫版本不同而有所變化 但是 現(xiàn)在是這樣的 TablespacesSnapshot Logs Profiles Job Queues Users Refresh Groups Roles Cluster Definitions System Privilege GrantsTables (also grants men ts Role Grants indexes constraints audi ting) Default RolesReferential Integrity Tablespace QuotasPOSTTABLES actions Resource CostsSynonyms Rollback Segments Views Database LinksStored Procedures SequencesTriggers Defaults and Aud iting Snapshots 按這個順序主要是解決對象之間依賴關(guān)系可能產(chǎn)生的問題 TRIGGER最后導(dǎo)入 所以在INSERT數(shù)據(jù)到數(shù)據(jù)庫時不會激發(fā)TRIGGER 在導(dǎo)入后可能會有一些狀態(tài)是INVALID的PROCEDURE 主要是IMPORT時會影響一些數(shù)據(jù)庫對象 而IMPORT并不重新編譯PROCEDURE 從而造成這種情況 可以重新編譯之 就能解決這個問題 兼容性問題 IMPORT工具可以處理EXPORT 之后的版本導(dǎo)出的DUMP文件 所以你用ORACLE 的IMPORT處理ORACLE 的DUMP文件 依次類推 但是ORACLE如果版本相差很大有可能不能處理 具體的問題可以參照相應(yīng)的文檔 比如有關(guān)參數(shù)設(shè)置等(PATIBLE參數(shù)) EXPORT需要的VIEW EXPORT需要的VIEW是由CATEXP SQL創(chuàng)建 這些內(nèi)部VIEW用于EXPORT組織DUMP文件中數(shù)據(jù)格式 大部分VIEW用于收集創(chuàng)建DDL語句的 其他的主要供ORACLE開發(fā)人員用 這些VIEW在不同ORACLE版本之間有可能不同 每個版本可能都有新的特性加入 所以在新的版本里面執(zhí)行舊的dump文件會有錯誤 一般可以執(zhí)行CATEXP SQL解決這些問題 解決向后兼容問題的一般步驟如下 導(dǎo)出數(shù)據(jù)庫的版本比目標(biāo)數(shù)據(jù)庫老的情況 在需要導(dǎo)入的目標(biāo)數(shù)據(jù)庫中執(zhí)行舊的CATEXP SQL 使用舊的EXPORT導(dǎo)出DUMP文件 使用舊的IMPORT導(dǎo)入到數(shù)據(jù)庫中 在數(shù)據(jù)庫中執(zhí)行新的CATEXP SQL 以恢復(fù)該版本的EXPORT VIEW 導(dǎo)出數(shù)據(jù)庫的版本比目標(biāo)數(shù)據(jù)庫新的情況 在需要導(dǎo)入的目標(biāo)數(shù)據(jù)庫中執(zhí)行新的CATEXP SQL 使用新的EXPORT導(dǎo)出DUMP文件 使用新的IMPORT導(dǎo)入到數(shù)據(jù)庫中 在數(shù)據(jù)庫中執(zhí)行舊的CATEXP SQL 以恢復(fù)該版本的EXPORT VIEW 碎片整理 EXPORT/IMPORT一個很重要的應(yīng)用方面就是整理碎片 因?yàn)槿绻麜r初次IMPPORT 就會重新CREATE TABLE 再導(dǎo)入數(shù)據(jù) 所以整張表都是連續(xù)存放的 另外缺省情況 下EXPORT會在生成DUMP文件是 壓縮(PRESS) TABLE 但是這種壓縮在很多情 況下被誤解 事實(shí)上 PRESS是改變STORAGE參數(shù)INITIAL的值 比如 CREATE TABLE STORAGE( INITIAL K NEXT K ) 現(xiàn)在數(shù)據(jù)已經(jīng)擴(kuò)展到 個EXTENT 如果采用PRESS=Y來EXPORT數(shù)據(jù) 則產(chǎn)生的語句時 STORAGE( INITIAL K NEXT K) 我們可以看到NEXT值并沒有改變 而INITIAL是所有EXTENT的總和 所以會出現(xiàn)如下情況 表A有 個 M的EXTENT 執(zhí)行DELETE FROM A 然后再用PRESS=Y 導(dǎo)出數(shù)據(jù) 產(chǎn)生的CREATE TABLE語句將有 M的INITIAL EXTENT 即使這是TABLE中已經(jīng)沒有數(shù)據(jù)!!這是的DUMP文件即使很小 但是在IMPORT時就會產(chǎn)生一個巨大的TABLE 另外 也可能會超過DATAFILE的大小 比如 有 個 M的數(shù)據(jù)文件 其中表A有 個 M的EXTENT 如果采用PRESS=Y的方式導(dǎo)出數(shù)據(jù) 將會有INITIAL= M 那么在重新導(dǎo)入時 不能分配一個 M的EXTENT 因?yàn)閱蝹€EXTENT不能跨多個文件 在USER和TABLESPACE之間傳送數(shù)據(jù) 一般情況下EXPORT的數(shù)據(jù)要恢復(fù)到它原來的地方去 如果SCOTT用戶的表以TABLE 或USER方式EXPORT數(shù)據(jù) 在IMPORT時 如果SCOTT用戶不存在 則會報錯! 以FULL方式導(dǎo)出的數(shù)據(jù)帶有CREATE USER的信息 所以會自己創(chuàng)建USER來存放數(shù)據(jù) 當(dāng)然可以在IMPORT時使用FROMUSER和TOUSER參數(shù)來確定要導(dǎo)入的USER 但是要保證TOUSER一定已經(jīng)存在啦 EXPORT/IMPORT對SQUENCE的影響在兩種情況下 EXPORT/IMPORT會對SEQUENCE ?。?)如果在EXPORT時 用戶正在取SEQUENCE的值 可能造成SEQUENCE的不一致 ( )另外如果SEQUENCE使用CACHE 在EXPORT時 那些在CACHE中的值就會被忽略的 只是從數(shù)據(jù)字典里面取當(dāng)前值EXPORT 如果在進(jìn)行FULL方式的EXPORT/IMPORT時 恰好在用sequence更新表中某列數(shù)據(jù) 而且不是上面兩種情況 則導(dǎo)出的是更新前的數(shù)據(jù) 如果采用常規(guī)路徑方式 每一行數(shù)據(jù)都是用INSERT語句 一致性檢查和INSERT TRIGGER如果采用DIRECT方式 某些約束和trigger可能不觸發(fā) 如果在trigger中使用sequence nextval 將會對sequence有影響 參數(shù)解 E:\>exp help=y 通過輸入 EXP 命令和用戶名/口令 您可以 在用戶 / 口令之后的命令: 實(shí)例: EXP SCOTT/TIGER 或者 您也可以通過輸入跟有各種參數(shù)的 EXP 命令來控制 導(dǎo)出 的運(yùn)行方式 要指定參數(shù) 您可以使用關(guān)鍵字: 格式: EXP KEYWORD=value 或 KEYWORD=(value value valueN) 實(shí)例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP DEPT MGR) 或 TABLES=(T : P T : P ) 如果 T 是分區(qū)表 USERID 必須是命令行中的之一個參數(shù) 關(guān)鍵字 說明(默認(rèn)) USERID 用戶名/口令 FULL 導(dǎo)出整個文件 (N) BUFFER 數(shù)據(jù)緩沖區(qū)的大小 OWNER 所有者用戶名列表 FILE 輸出文件 (EXPDAT DMP) TABLES 表名列表 PRESS 導(dǎo)入一個范圍 (Y) RECORDLENGTH IO 記錄的長度 GRANTS 導(dǎo)出權(quán)限 (Y) INCTYPE 增量導(dǎo)出類型 INDEXES 導(dǎo)出索引 (Y) RECORD 跟蹤增量導(dǎo)出 (Y) ROWS 導(dǎo)出數(shù)據(jù)行 (Y) PARFILE 參數(shù)文件名 CONSTRAINTS 導(dǎo)出限制 (Y) CONSISTENT 交叉表一致性 LOG 屏幕輸出的日志文件 STATISTICS 分析對象 (ESTIMATE) DIRECT 直接路徑 (N) TRIGGERS 導(dǎo)出觸發(fā)器 (Y) FEEDBACK 顯示每 x 行 ( ) 的進(jìn)度 FILESIZE 各轉(zhuǎn)儲文件的更大尺寸 QUERY 選定導(dǎo)出表子集的子句 下列關(guān)鍵字僅用于可傳輸?shù)谋砜臻g TRANSPORT_TABLESPACE 導(dǎo)出可傳輸?shù)谋砜臻g元數(shù)據(jù) (N) TABLESPACES 將傳輸?shù)谋砜臻g列表 E:\>imp help=y 可以通過輸入 IMP 命令和您的用戶名/口令 跟有您的用戶名 / 口令的命令: 實(shí)例: IMP SCOTT/TIGER 或者 可以通過輸入 IMP 命令和各種自變量來控制 導(dǎo)入 按照不同參數(shù) 要指定參數(shù) 您可以使用關(guān)鍵字: 格式: IMP KEYWORD=value 或 KEYWORD=(value value vlaueN) 實(shí)例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP DEPT) FULL=N 或 TABLES=(T : P T : P ) 如果 T 是分區(qū)表 USERID 必須是命令行中的之一個參數(shù) 關(guān)鍵字 說明(默認(rè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) MIT 提交數(shù)組插入 (N) ROWS 導(dǎo)入數(shù)據(jù)行 (Y) PARFILE 參數(shù)文件名 LOG 屏幕輸出的日志文件 CONSTRAINTS 導(dǎo)入限制 (Y) DESTROY 覆蓋表空間數(shù)據(jù)文件 (N) INDEXFILE 將表/索引信息寫入指定的文件 SKIP_UNUSABLE_INDEXES 跳過不可用索引的維護(hù) (N) ANAZE 執(zhí)行轉(zhuǎn)儲文件中的 ANAZE 語句 (Y) FEEDBACK 顯示每 x 行 ( ) 的進(jìn)度 TOID_NOVALIDATE 跳過指定類型 id 的校驗(yàn) FILESIZE 各轉(zhuǎn)儲文件的更大尺寸 RECALCULATE_STATISTICS 重新計算統(tǒng)計值 (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ù)的用戶 lishixinzhi/Article/program/Oracle/202311/16939
數(shù)據(jù)庫命令imp的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)庫命令imp,數(shù)據(jù)庫必備技能之imp命令詳解,exp和imp用法和介紹的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專業(yè)的建站服務(wù),為您量身定制,歡迎來電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡(luò)品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設(shè)、設(shè)計、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計和制作領(lǐng)域具有豐富的經(jīng)驗(yàn)。
當(dāng)前題目:數(shù)據(jù)庫必備技能之imp命令詳解(數(shù)據(jù)庫命令imp)
文章源于:http://fisionsoft.com.cn/article/ccoides.html


咨詢
建站咨詢
