亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

oracle中imp命令具體解釋

系統 2381 0

oracle中imp命令具體解釋

Oracle的導入有用程序(Import utility)同意從數據庫提取數據,而且將數據寫入操作系統文
件。imp使用的基本格式:imp[username[/password[@service]]],下面例舉imp經常使用用
法。

1. 獲取幫助

imp help=y

2. 導入一個完整數據庫

imp system/manager file=bible_db log=dible_db full=y ignore=y

3. 導入一個或一組指定用戶所屬的所有表、索引和其它對象

imp system/manager file=seapark log=seapark fromuser=seapark

imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)

4. 將一個用戶所屬的數據導入還有一個用戶

imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy

imp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1)

5. 導入一個表

imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)

6. 從多個文件導入

imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) log=paycheck,filesize=1G full=y

7. 使用參數文件

imp system/manager parfile=bible_tables.par

bible_tables.par參數文件:

#Import the sample tables used for the Oracle8i Database Administrator's

#Bible.

fromuser=seapark touser=seapark_copy file=seapark log=seapark_import

8. 增量導入(9i中已經取消)

imp system./manager inctype= RECTORE FULL=Y FILE=A


Oracle imp/exp幫助說明

C:Documents and Settingsadministrator>exp help=y

Export: Release 9.2.0.1.0 - Production on 星期三 7月 28 17:04:43 2004

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

通過輸入 EXP 命令和username/口令,您能夠

后接username/口令的命令:

例程: EXP SCOTT/TIGER

或者,您也能夠通過輸入跟有各種參數的 EXP 命令來控制“導出”

依照不同參數。要指定參數,您能夠使用keyword:

格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

例程: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)

或 TABLES=(T1: P1,T1: P2),假設 T1 是分區表

USERID 必須是命令行中的第一個參數。

keyword 說明(默認) keyword 說明(默認)

--------------------------------------------------------------------------

USERID username/口令 FULL 導出整個文件 (N)

BUFFER 數據緩沖區大小 OWNER 全部者username列表

FILE 輸出文件 (EXPDAT.DMP) TABLES 表名稱列表

COMPRESS 導入到一個區 (Y) RECORDLENGTH IO 記錄的長度

GRANTS 導出權限 (Y) INCTYPE 增量導出類型

INDEXES 導出索引 (Y) RECORD 跟蹤增量導出 (Y)

DIRECT 直接路徑 (N) TRIGGERS 導出觸發器 (Y)

LOG 屏幕輸出的日志文件 STATISTICS 分析對象 (ESTIMATE)

ROWS 導出數據行 (Y) PARFILE 參數文件名稱

CONSISTENT 交叉表的一致性 (N) CONSTRAINTS 導出的約束條件 (Y)

OBJECT_CONSISTENT 僅僅在對象導出期間設置為讀的事務處理 (N)

FEEDBACK 每 x 行的顯示運行進度 (0)

FILESIZE 每一個轉儲文件的最大大小

FLASHBACK_SCN 用于將會話快照設置回曾經狀態的 SCN

FLASHBACK_TIME 用于獲取最接近指定時間的 SCN 的時間

QUERY 用于導出表的子集的 select 子句

RESUMABLE 遇到與空格相關的錯誤時掛起 (N)

RESUMABLE_NAME 用于標識可恢復語句的文本字符串

RESUMABLE_TIMEOUT RESUMABLE 的等待時間

TTS_FULL_CHECK 對 TTS 運行完整的或部分相關性檢查

TABLESPACES 要導出的表空間列表

TRANSPORT_TABLESPACE 導出可傳輸的表空間元數據 (N)

TEMPLATE 調用 iAS 模式導出的模板名

在沒有警告的情況下成功終止導出。

==================================================


C:Documents and Settingsadministrator>imp help=y

Import: Release 9.2.0.1.0 - Production on 星期三 7月 28 17:06:54 2004

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

?能夠通過輸入 IMP 命令和您的username/口令

后接username/口令的命令:

例程: IMP SCOTT/TIGER

或者, 能夠通過輸入 IMP 命令和各種參數來控制“導入”

依照不同參數。要指定參數,您能夠使用keyword:

格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)

例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N

或 TABLES=(T1: P1,T1: P2),假設 T1 是分區表

USERID 必須是命令行中的第一個參數。

keyword 說明(默認) keyword 說明(默認)

--------------------------------------------------------------------------

USERID username/口令 FULL 導入整個文件 (N)

BUFFER 數據緩沖區大小 FROMUSER 全部人username列表

FILE 輸入文件 (EXPDAT.DMP) TOUSER username列表

SHOW 僅僅列出文件內容 (N) TABLES 表名列表

IGNORE 忽略創建錯誤 (N) RECORDLENGTH IO 記錄的長度

GRANTS 導入權限 (Y) INCTYPE 增量導入類型

INDEXES 導入索引 (Y) COMMIT 提交數組插入 (N)

ROWS 導入數據行 (Y) PARFILE 參數文件名稱

LOG 屏幕輸出的日志文件 CONSTRAINTS 導入限制 (Y)

DESTROY 覆蓋表空間數據文件 (N)

INDEXFILE 將表/索引信息寫入指定的文件

SKIP_UNUSABLE_INDEXES 跳過不可用索引的維護 (N)

FEEDBACK 每 x 行顯示運行進度 (0)

TOID_NOVALIDATE 跳過指定類型 ID 的驗證

FILESIZE 每一個轉儲文件的最大大小

STATISTICS 始終導入估計算的統計信息

RESUMABLE 在遇到有關空間的錯誤時掛起 (N)

RESUMABLE_NAME 用來標識可恢復語句的文本字符串

RESUMABLE_TIMEOUT RESUMABLE 的等待時間

COMPILE 編譯過程, 程序包和函數 (Y)

STREAMS_CONFIGURATION 導入 Streams 的一般元數據 (Y)

STREAMS_INSTANITATION 導入 Streams 的實例化元數據 (N)

下列keyword僅用于可傳輸的表空間

TRANSPORT_TABLESPACE 導入可傳輸的表空間元數據 (N)

TABLESPACES 將要傳輸到數據庫的表空間

DATAFILES 將要傳輸到數據庫的數據文件

TTS_OWNERS 擁有可傳輸表空間集中數據的用戶

成功終止導入,但出現警告。


Oracle8i/9i EXP/IMP使用經驗

一、8i EXP經常使用選項

1、FULL,這個用于導出整個數據庫,在ROWS=N一起使用時,能夠導出整個數據庫的結構。
比如:

exp sys file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y

2、BUFFER和FEEDBACK,在導出比較多的數據時,我會考慮設置這兩個參數。比如:

exp new file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000 buffer=100000000
tables=WO4,OK_YT

3、FILL和LOG,這兩個參數分別指定備份的DMP名稱和LOG名稱,包含文件名稱和文件夾,樣例
見上面。

須要說明的是,EXP能夠直接備份到磁帶中,即使用FILE=/dev/rmt0(磁帶設備名),可是一
般我們都不這么做,原因有二:一、這樣做的速度會慢非常多,二、如今一般都是使用磁帶庫
的,不建議直接對磁帶進行操作。至于沒有使用磁帶庫的朋友能夠考慮和UNIX的TAR結合使
用。

假設你真想使用EXP直接到磁帶,你能夠參考Metalink文章“EXPORTING TO TAPE ON UNIX
SYSTEMS”(文檔號:30428.1),該文中有詳解。

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

5、怎樣使用SYSDBA運行EXP/IMP?

這是一個非常現實的問題,有時候我們須要使用SYSDBA來運行EXP/IMP,如進行傳輸表空間的
EXP/IMP,以及在9i下用SYS用戶來運行EXP/IMP時,都須要使用SYSDBA才可。我們能夠使
用以下方式連入EXP/IMP:

exp "'sys/sys as sysdba'" file=1.dmp tables=gototop.t rows=n

6、QUERY參數后面跟的是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、FROMUSER和TOUSER,使用它們實現將數據從一個SCHEMA中導入到另外一個SCHEMA中。

2、IGNORE、GRANTS和INDEXES,當中IGNORE參數將忽略表的存在,繼續導入,這個對于需
要調整表的存儲參數時非常實用,我們能夠先依據實際情況用合理的存儲參數建好表,然后直
接導入數據。而GRANTS和INDEXES則表示是否導入授權和索引,假設想使用新的存儲參數重
建索引,或者為了加快到入速度,我們能夠考慮將INDEXES設為N,而GRANTS一般都是Y。

另外一個EXP/IMP都有的參數是PARFILE,它是用來定義EXP/IMP的參數文件,也就是說,上
面的參數都能夠寫在一個參數文件里,但我們一般非常少使用。

三、Oracle9i EXP功能描寫敘述

Oracle9i EXP在原有的基礎上新增了部分新的參數,按功能主要分為下面幾個部分:

1、OBJECT_CONSISTENT - 用于設置EXP對象為僅僅讀以保持對象的一致性。默認是N。

2、FLASHBACK_SCN和FLASHBACK_TIME - 用于支持FLASHBACK功能而新增。

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

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

5、TEMPLATE - 用于支持iAS。

6、TABLESPACES - 設置表空間導出模式。個人認為對于一般用戶而言,這個才是新增參數中
最有用的一個,能夠讓用戶在原來的FULL、OWNER、TABLES的基礎上多了一種選擇,使得EXP
更加靈活。

四、不同版本號的EXP/IMP問題?

一般來說,從低版本號導入到高版本號問題不大,麻煩的是將高版本號的數據導入到低版本號中,
在Oracle9i之前,不同版本號Oracle之間的EXP/IMP能夠通過以下的方法來解決:

1、在高版本號數據庫上執行底版本號的catexp.sql;

2、使用低版本號的EXP來導出高版本號的數據;

3、使用低版本號的IMP將數據庫導入究竟版本號數據庫中;

4、在高版本號數據庫上又一次執行高版本號的catexp.sql腳本。

但在9i中,上面的方法并不能解決這個問題。假設直接使用底版本號EXP/IMP會出現例如以下錯誤:

EXP-00008: ORACLE error %lu encountered

ORA-00904: invalid column name


這已經是一個發布的BUG,須要等到Oracle10.0才干解決,BUG號為2261,你能夠到METALINK
上去查看有關此BUG的具體信息。

BUG歸BUG,我們的工作還是要做,在沒有Oracle的支持之前,我們就自己解決。在Oracle9i
中運行以下的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;

/

五、其它問題

本文僅僅討論了Oracle8i和9i中的EXP/IMP的一些情況,對于之前的版本號,在8.0.X中,
除了QUERY參數不能用外,其他區別不大。針對沒有QUERY的情況,我們能夠先在數據庫
中使用查詢條件建立暫時中間表,然后使用EXP導出這個中間表就可以。至于Oracle7由于
眼下使用的人較少,gototop不打算在此做詳解了,假設讀者朋友有需求,你能夠參考
Metalink文檔:“Overview of Export and Import in Oracle7”(文檔號:61949.1)。
關于EXP/IMP的具體參數信息你能夠通過EXP/IMP HELP=Y來獲得。

另外關于傳輸表空間的很多其它信息能夠參考以下的Metelink文檔,本文不再詳述。

[NOTE:77523.1] Transportable Tablespaces -- An Example to setup and use.

[NOTE:100698.1] Perform tablespace point-in-time recovery using Transportable
Tablespace.


六.對于有跨schema的index,imp時可能會報
“Segmentation fault”錯誤。

比如schema A中建有基于schema B表的索引,在導入A時會報上述錯誤,此時通過
indexes=n來屏蔽導入索引以防止錯誤,事后能夠用下面語句查出這種索引,最好將
索引放在和基表在同一個schema。

SQL>select index_name,owner,table_name,table_owner

from dba_indexes

?where owner!=table_owner;

七.導入到不同于原表空間的表空間

原來的數據在USERS表空間里面,我想把它IMP進APP表空間,我已經改動了目的
用戶的默認表空間,為什么結果還是IMP到USERS表空間中了呢?

Solution:Oracle并沒有提供什么參數來指定要導入哪個表空間,數據默認將導入到原
本導出時數據所在的表空間中,可是我們能夠通過下面的方法來實現導入到不同的表空
間。

1.在IMP時候使用INDEXFILE參數

?當給此參數指定了某一文件名稱,IMP的時候全部的index將不會直接導入到表空間中,
而是在指定的文件里生成創建index的腳本。

?然后用文本編輯器打開此文件,直接編輯腳本中的storage參數,改動為想要導入的表
空間名稱。

?然后又一次運行IMP,使用INDEXS=n參數將除Index之外的Objects導入。

?最后進入SQL*PLUS,直接執行剛才編輯的腳本,生成索引。

?該方法適用于將index以及constraints導入指定的表空間。

2.改變目的用戶的默認表空間

?這就是上面說的常常有人提問的方法。可是上述的問題之所以沒有成功,是由于缺少了
以下的幾步。

?首先,收回目的用戶的"UNLIMITED TABLESPACE"權限:

?revoke unlimited tablespace from username;

?其次,取消目的用戶在原數據導出表空間中的配額,這樣才干迫使IMP把數據導入到
用戶的默認表空間中去。

?然后,將希望導入的表空間設為目的用戶的默認表空間,并加入配額。

?最后,運行IMP。

3.使用TOAD

?TOAD是強大的Oracle數據庫管理軟件,是Quest出品的第三方軟件,我們能夠使用其
中的Rebuild Multi Objects工具來實現將多個Object轉移到指定的表空間。

?于是我們能夠無論三七二十一,先IMP,然后再用TOAD作事后的改動。


關于TOAD的使用,此處不作詳解。

八.導入工具imp可能出現的問題

(1) 數據庫對象已經存在

普通情況, 導入數據前應該徹底刪除目標數據下的表, 序列, 函數/過程,觸發器等;

數據庫對象已經存在, 按缺省的imp參數, 則會導入失敗

假設用了參數ignore=y, 會把exp文件內的數據內容導入

假設表有唯一keyword的約束條件, 不合條件將不被導入

假設表沒有唯一keyword的約束條件, 將引起記錄反復

(2) 數據庫對象有主外鍵約束

?不符合主外鍵約束時, 數據會導入失敗

?解決的方法: 先導入主表, 再導入依存表

disable目標導入對象的主外鍵約束, 導入數據后, 再enable它們

(3) 權限不夠

假設要把A用戶的數據導入B用戶下, A用戶須要有imp_full_database權限

(4) 導入大表( 大于80M ) 時, 存儲分配失敗

?默認的EXP時, compress = Y, 也就是把全部的數據壓縮在一個數據塊上.

?導入時, 假設不存在連續一個大數據塊, 則會導入失敗.

?導出80M以上的大表時, 記得compress= N, 則不會引起這樣的錯誤.

(5) imp和exp使用的字符集不同

?假設字符集不同, 導入會失敗, 能夠改變unix環境變量或者NT注冊表里
NLS_LANG相關信息.導入完畢后再改回來.

(6) imp和exp版本號不能往上兼容

imp能夠成功導入低版本號exp生成的文件, 不能導入高版本號exp生成的文件

依據情況我們能夠用低版本號的oracleclient的exp導出數據庫,然后進行導入操作。

(7)ROLLBACK段不夠

?Export/Import使用過程中, 假設數據量非常大會出現'ROLLBACK段不夠'的錯誤.
這時要建一個足夠大的ROLLBACK段, 使它ONLINE而其它ROLLBACK段
OFFLINE. 這樣, Export/Import使用這個大ROLLBACK段, 從而避免上述現象.

(8)EXPORT/IMPORT對SQUENCE的影響

在兩種情況下,EXPORT/IMPORT會對SEQUENCE。

a. 假設在EXPORT時,用戶正在取SEQUENCE的值,可能造成SEQUENCE的不
一致。

b. 另外假設SEQUENCE使用CACHE,在EXPORT時,那些在CACHE中的值就
會被忽略 的,僅僅是從數據字典里面取當前值EXPORT。假設在進行FULL方式的
EXPORT/IMPORT時,恰好在用sequence更新表中某列數據, 并且不是上面兩種


情況,則導出的是更新前的數據。假設採用常規路徑方式,每一行數據都是用
INSERT語句,一致性檢查和INSERT TRIGGER 假設採用DIRECT方式,某些約
束和trigger可能不觸發,假設在trigger中使用sequence.nextval,將會對sequence
有影響。

九.ORACLE獲取DDL的幾種經常使用的方法

大體的分為三種方法:

1.能夠通過toad、plsql develop等第三方工具進行導出DLL操作,用這樣的辦法的好
處在于操作簡單方便,但須要安裝,以下簡介一下用這兩個工具獲得DLL語句
的操作。

2.直接通過EXP/IMP工具

Oracle提供的最原始最有用的導入導出工具,我們大體上能夠分為三種辦法實現導
出DDL。

a. 通過imp指定indexfile參數,但這樣的辦法不爽在于有每行前會有REM

語法大體例如以下:

exp userid=... tables=emp rows=n file=emp.dmp

imp userid=... file=emp.dmp indexfile=emp.sql

b. 通過imp指定show=y,同一時候指定log參數,格式上也不是非常爽,在格式上非常美
觀的還是通過工具導出的比較美觀

語法大體例如以下:

exp userid=... tables=emp rows=n file= emp.dmp

imp userid=... file= emp.dmp show=y log=emp.sql

c. 利用unix下有strings命令,語法大體例如以下,這樣的方法比較野蠻:

exp userid=... tables=tab1 rows=n file=tab1.dmp

strings emp.dmp >emp.sql

emp.sql中就有DLL語句了

3.通過9i的DBMS_METADATA包得到DLL語句

基本上用到的語法例如以下:

a. 獲取單個的建表和建索引的語法


set heading off;

set echo off;

Set pages 999;

set long 90000;

spool DEPT.sql

select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT') from dual;

select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT') from dual;

spool off;

b.獲取一個SCHEMA下的全部建表和建索引的語法,以scott為例:

set pagesize 0

set long 90000

set feedback off

set echo off

spool scott_schema.sql

connect scott/tiger;

SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)

?FROM USER_TABLES u;

SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name)

?FROM USER_INDEXES u;

spool off;

c. 獲取某個SCHEMA的建所有存儲過程的語法

connect brucelau /brucelau;

spool procedures.sql

select

?DBMS_METADATA.GET_DDL('PROCEDURE',u.object_name)

from

?user_objects u

where

?object_type = 'PROCEDURE';

spool off;

另:dbms_metadata.get_ddl('TABLE','TAB1','USER1')

三個參數中,第一個指定導出DDL定義的對象類型(此例中為表類型),第二個是
對象名(此例中即表名),第三個是對象所在的username。

十.優化exp和imp的性能

exp /imp 可配置一些參數,以改進Export和Import的性能。至于性能詳細能提升多


高,則取決于要導出或導入的數據,以及數據量的大小。

導出性能:用下面通用參數改進Export的性能:

DIRECT:對一個Export,將DIRECT參數設為DIRECT=Y,將數據直接轉移
到Exportclient。這種轉移繞過SQL命令處理層(估值緩沖區),從而避免了
無謂的數據轉換。

RECORDLENGTH:增大RECORDLENGTH參數值,來改進性能。為該參數
推薦的值是DB_BLOCK_SIZE的一個整數倍,或者是文件系統I/O塊大小的一個
整數倍。更改這個參數的值會影響寫入磁盤前積累的數據量。該參數的最大值為
64千字節(64 KB)。

導入性能:用下面通用參數改進Import的性能:

BUFFER:BUFFER參數指定了緩沖區的大小,數據行將通過這個緩沖區進行轉
移,由此便決定了由Import導入的每個陣列插入中的行數。如配合COMMIT=Y
參數指定BUFFER參數,則Import會在每個陣列插入之后進行提交,而不是在
加載完整的表之后再默認地提交。一個較大的BUFFER參數值有助于改善性能。
但假如BUFFER值過高,會造成OS分頁和換行,反而影響性能。

INDEXES。INDEXES參數指定是否導入用戶生成的索引。如指定
INDEXES=N,則將提高Import的性能,由于在一個無索引的表中導入數據要快得
多。注意,假設首先用INDEXFILE=返回Import,來在請求的Import模式下提取
索引創建命令,再將其寫入指定的文件,那么以后仍可重建索引。

使用INDEXFILE選項時,不會導入數據對象。可對輸出文件()進行編輯,
并將其作為一個SQL腳本使用,以便在Import之后創建索引。

另外還能夠通過調整一下參數提高exp和imp的性能

. 改動sqlnet.ora在里面添加trace_level_client=off
. 運行dbmspool.sql然后SQL>begin
SQL> dbms_shared_pool.sizes(300);

SQL> end;

SQL> /


. sql>ALTER SYSTEM FLUSH SHARED_POOL
. sql>alter system set LOG_CHECKPOINT_INTERVAL =
redologfilesizebytes/512bytes=1000
也能夠改動log_checkpoint_timeout=24000


. sql>alter system set fast_start_mttr_target =24000
. sql>alter system set pga_aggregate_target=100M


沒有下commit=y所以僅僅有通過

A.select undtsn,undoblks from v$undostat;的變化來看資料又沒有進去了

B. 在imp時通過設定 FEEDBACK=N筆資料來顯示Imp的進度

重整的時候假設要drop 掉table重建的話,一定要注意該table上有沒有FK等

在EXP /IMP的時候為了加速須要將index=n參數加進exp/imp運行腳本,這種話在
做完imp后須要recreate index 事實上資料量大的話recreate也非常花時間,故能夠通過在
create index 的腳本里面增加parallel 5;來提速


另I/O能夠在Windows 的效能的地方看到

十一.IMPORT時的對象倒入順序

在倒入數據時,ORACLE有一個特定的順序,可能隨數據庫版本號不同而有所變化,

可是如今是這種。

?1. Tablespaces 14. Snapshot Logs

?2. Profiles 15. Job Queues

?3. Users 16. Refresh Groups

?4. Roles 17. Cluster Definitions

?5. System Privilege Grants 18. Tables (also grants,comments,

?6. Role Grants indexes, constraints, auditing)

?7. Default Roles 19. Referential Integrity

8. Tablespace Quotas 20. POSTTABLES actions

9. Resource Costs 21. Synonyms

10. Rollback Segments 22. Views

11. Database Links 23. Stored Procedures

12. Sequences 24. Triggers, Defaults and Auditing

13. Snapshots

按這個順序主要是解決對象之間依賴關系可能產生的問題。TRIGGER最后導入,所以在
INSERT數據到數據庫時不會激發TRIGGER。在導入后可能會有一些狀態是INVALID的
PROCEDURE,主要是IMPORT時會影響一些數據庫對象,而IMPORT并不又一次編譯
PROCEDURE,從而造成這樣的情況,能夠又一次編譯之,就能解決問題。

十二. Imp/exp的模糊導入導出

前段時間在網上看到一篇關于imp/exp模糊導入導出的文章,甚感興趣,今
天中午做了一個測試,感覺Oracle實在是博大,有非常多東西不用的話,對
我們來說永遠是一個陌生的地帶。揭去面紗,也就那么回事!

說明:使用通配符導出的最大長處,就是當你的庫中有非常多表,但你又不想
全導,僅僅導當中一部分的時候,你能夠盡可能的少寫部分代碼,提供工作效
率!

我一般喜歡以演示樣例的方式展現或表達一些東西,這樣大家可能了解/掌握的
更快下面!畢竟非常多東西我們大部分同志知其然就能夠了!嘿嘿。^|^

備注:該項特性在9i以后新增

測試步驟例如以下:

SQL> conn study/study

已連接。

SQL>


SQL> create table toms_test_1 (no int);

表已創建。

SQL> create table toms_test_2 (no int);

表已創建。

SQL> create table toms_test_3 (no int);

表已創建。

SQL> insert into toms_test_1 values(1);

已創建 1 行。

SQL> insert into toms_test_2 values(2);

已創建 1 行。

SQL> insert into toms_test_3 values(3);

已創建 1 行。

SQL> commit;

提交完畢。

Microsoft Windows XP [版本號 5.1.2600]

(C) 版權全部 1985-2001 Microsoft Corp.

C:Documents and Settings>e:

E:>exp study/study tables=(study.toms_test%) file=toms_test.dmp
rows=y

Export: Release 9.2.0.1.0 - Production on 星期三 6月 7 12:42:32 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

連接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

已導出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即將導出指定的表通過常規路徑 ...

. . 正在導出表 TOMS_TEST_1 1 行被導出

. . 正在導出表 TOMS_TEST_2 1 行被導出

. . 正在導出表 TOMS_TEST_3 1 行被導出

在沒有警告的情況下成功終止導出。

SQL>

SQL> drop table toms_test_1;

表已丟棄。

SQL> drop table toms_test_2;

表已丟棄。

SQL> drop table toms_test_3;

表已丟棄。

SQL>

SQL> select table_name from tabs where table_name like 'TOMS_TEST%';

未選定行

SQL>


E:>imp study/study file=toms_test.dmp fromuser=study touser=study

Import: Release 9.2.0.1.0 - Production on 星期三 6月 7 12:44:01 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

連接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

經由常規路徑導出由EXPORT:V09.02.00創建的文件

已經完畢ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的導入

. . 正在導入表 "TOMS_TEST_1" 1行被導入

. . 正在導入表 "TOMS_TEST_2" 1行被導入

. . 正在導入表 "TOMS_TEST_3" 1行被導入

成功終止導入,但出現警告。

E:>

SQL> select table_name from tabs where table_name like 'TOMS_TEST%';

TABLE_NAME

------------------------------

TOMS_TEST_1

TOMS_TEST_2

TOMS_TEST_3

SQL> select * from toms_test_1;

NO

----------

1

SQL> select * from toms_test_2;

NO

----------

2

SQL> select * from toms_test_3;

NO

----------

3

SQL>

SQL> select table_name from tabs where table_name like '%TEST%';

TABLE_NAME

------------------------------

TOMS_TEST_1

TOMS_TEST_2

TOMS_TEST_3

SQL>

E:>exp study/study tables=(study.%test%) file=test.dmp rows=y

Export: Release 9.2.0.1.0 - Production on 星期三 6月 7 12:51:56 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


連接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

已導出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即將導出指定的表通過常規路徑 ...

. . 正在導出表 TOMS_TEST_1 1 行被導出

. . 正在導出表 TOMS_TEST_2 1 行被導出

. . 正在導出表 TOMS_TEST_3 1 行被導出

在沒有警告的情況下成功終止導出。

E:>

SQL> drop table toms_test_1;

表已丟棄。

SQL> drop table toms_test_2;

表已丟棄。

SQL> drop table toms_test_3;

表已丟棄。

SQL>

E:>imp study/study file=test.dmp fromuser=study touser=study

Import: Release 9.2.0.1.0 - Production on 星期三 6月 7 12:53:11 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

連接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

經由常規路徑導出由EXPORT:V09.02.00創建的文件

已經完畢ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的導入

. . 正在導入表 "TOMS_TEST_1" 1行被導入

. . 正在導入表 "TOMS_TEST_2" 1行被導入

. . 正在導入表 "TOMS_TEST_3" 1行被導入

成功終止導入,但出現警告。

E:>

SQL> select table_name from tabs where table_name like '%TEST%';

TABLE_NAME

------------------------------

TOMS_TEST_1

TOMS_TEST_2

TOMS_TEST_3

SQL>

E:>exp study/study tables=(%test%) file=test.dmp rows=y

Export: Release 9.2.0.1.0 - Production on 星期三 6月 7 13:08:56 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


連接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

已導出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即將導出指定的表通過常規路徑 ...

. . 正在導出表 TOMS_TEST_1 1 行被導出

. . 正在導出表 TOMS_TEST_2 1 行被導出

. . 正在導出表 TOMS_TEST_3 1 行被導出

在沒有警告的情況下成功終止導出。

E:>

SQL> conn toms/toms

已連接。

SQL> create table stu_1 (no int);

表已創建。

SQL> create table stu_2 (no int);

表已創建。

SQL> insert into stu_1 values(1);

已創建 1 行。

SQL> insert into stu_2 values(2);

已創建 1 行。

SQL> commit;

提交完畢。

E:>exp study/study tables=(%test%,toms.stu%) file=test.dmp rows=y

Export: Release 9.2.0.1.0 - Production on 星期三 6月 7 13:11:05 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

連接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

已導出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即將導出指定的表通過常規路徑 ...

. . 正在導出表 TOMS_TEST_1 1 行被導出

. . 正在導出表 TOMS_TEST_2 1 行被導出

. . 正在導出表 TOMS_TEST_3 1 行被導出

當前的用戶已更改為 TOMS

. . 正在導出表 STU_1 1 行被導出

. . 正在導出表 STU_2 1 行被導出

在沒有警告的情況下成功終止導出。

SQL> conn study/study

已連接。

SQL> drop table toms_test_1;

表已丟棄。

SQL> drop table toms_test_2;


表已丟棄。

SQL> drop table toms_test_3;

表已丟棄。

SQL> select table_name from tabs where table_name like '%TEST%';

未選定行

SQL> conn toms/toms

已連接。

SQL> drop table stu_1;

表已丟棄。

SQL> drop table stu_2;

表已丟棄。

SQL> select table_name from tabs where table_name like '%STU%';

未選定行

SQL>

E:>imp study/study file=test.dmp fromuser=study touser=study
tables=(%test%)

Import: Release 9.2.0.1.0 - Production on 星期三 6月 7 13:15:22 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

連接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

經由常規路徑導出由EXPORT:V09.02.00創建的文件

已經完畢ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的導入

. . 正在導入表 "TOMS_TEST_1" 1行被導入

. . 正在導入表 "TOMS_TEST_2" 1行被導入

. . 正在導入表 "TOMS_TEST_3" 1行被導入

成功終止導入,但出現警告。

SQL> conn study/study

已連接。

SQL> select table_name from tabs where table_name like '%TEST%';

TABLE_NAME

------------------------------

TOMS_TEST_1

TOMS_TEST_2

TOMS_TEST_3

SQL> select * from toms_test_1;

NO

----------

1

SQL> select * from toms_test_2;

NO

----------

2


SQL> select * from toms_test_3;

NO

----------

3

SQL>

E:>imp study/study fromuser=toms touser=toms file=test.dmp
tables=(stu%)

Import: Release 9.2.0.1.0 - Production on 星期三 6月 7 13:23:49 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

連接到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

經由常規路徑導出由EXPORT:V09.02.00創建的文件

已經完畢ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的導入

. 正在將TOMS的對象導入到 TOMS

. . 正在導入表 "STU_1" 1行被導入

. . 正在導入表 "STU_2" 1行被導入

成功終止導入,但出現警告。

E:>

SQL> conn toms/toms

已連接。

SQL> select table_name from tabs where table_name like '%STU%';

TABLE_NAME

------------------------------

STU_1

STU_2

SQL> select * from stu_1;

NO

----------

1

SQL> select * from stu_2;

NO

----------

2

SQL>

?

本文來自CSDN博客,轉載請標明出處: http://blog.csdn.net/yjq8116/archive/2009/03/26/4025847.aspx

oracle中imp命令具體解釋


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 最新中文字幕在线播放 | 亚洲精品日韩精品一区 | 成人精品第一区二区三区 | 特级毛片aaaa级毛片免费 | 天天干影视| 俄罗斯一级毛片免费播放 | 日韩毛片在线 | 中国一级全黄的免费观看 | 国产成人h综合亚洲欧美在线 | 337p欧洲亚洲大胆艺术 | 国产精品无码久久av | 国产成人精品区在线观看 | 久久国产精品成人免费 | 久久国产精品2020盗摄 | 中文字幕一区二区三 | 日韩精品中文字幕在线观看 | 久久综合给合久久97色美利坚 | 日韩精品成人a在线观看 | 久久久伊香蕉网站 | 日韩欧美中文字幕一区 | 日本一片免费观看高清完整 | www亚洲欲色成人久久精品 | 国产精品视频视频久久 | 欧美一区二区三区婷婷月色 | 成人一级视频 | 欧美一区二区三区久久久 | 欧美成人h精品网站 | 四虎影永久在线观看网址 | 一级毛片不收费 | 男人的天堂在线免费视频 | 在线观看片成人免费视频 | 国产精品久久久久9999 | 国产一区二区在线视频 | 亚洲社区在线 | 在线国产一区二区三区 | 伊人色综合琪琪久久社区 | 日日日日干 | 另类图片综合 | 国产亚洲精品成人久久网站 | α级毛片| 久久久久欧美精品观看 |