EXP COMPRESS以及EXP/IMP EXPDP/IMPDP匯入表結構注意
關於EXP COMPRESS引數
一直對這個引數有些疑惑。當然此引數一定不是所謂的壓縮備份檔案的空間,
而它的解釋為
COMPRESS import into one extent
字面意思為把所有的EXTENT壓縮到INIT 分割槽中。但是這個實際上這個只在資料字典管理
的中生效。但是在本地管理表空間中實際initial 也是有用的但是他不會分配到一個EXTENT中,
因為本地管理表空間預設EXTENT管理的方式是AUTO。分割槽大小是大小是64K,1M,8M..的方式,
但是他一定會分配足夠的空間
所以
測試期間我建立了一個大約20M的表,然後DELETE全部記錄,COMMIT掉
然後做如下操作:
exp ppzhu/gelc123@bendi COMPRESS=n tables=test1 file=c:\test1n.dmp
exp ppzhu/gelc123@bendi COMPRESS=y tables=test1 file=c:\test1y.dmp
然後進行匯入
imp ppzhut1/gelc123@bendi fromuser=ppzhu touser=ppzhut1 file=c:\test1y.dmp
發現一共分了20個EXTENT
SQL> select count(*) from dba_extents where segment_name='TEST1' AND OWNER='PPZHUT1';
COUNT(*)
----------
20
每個1M
然後檢視其建立表的語句如下:
create table PPZHUT1.TEST1
(
IT INTEGER
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 20M
minextents 1
maxextents unlimited
);
然後刪除表匯入COMPRESS=n的匯出的DMP如下:
可以看到實際COMPRESS=n是實際的佔用空間,
SQL> select count(*) from dba_extents where segment_name='TEST1' AND OWNER='PPZHUT1';
COUNT(*)
----------
1
SQL> select sum(blocks)*8/1024 from dba_extents where segment_name='TEST1' AND OWNER='PPZHUT1';
SUM(BLOCKS)*8/1024
------------------
0.0625
檢視建表語句
-- Create table
create table PPZHUT1.TEST1
(
IT INTEGER
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
沒有問題。
同樣的EXPDP也會有這樣的問題,IMPDP的時候需要加上引數
TRANSFORM=SEGMENT_ATTRIBUTES:n
這也是為什麼匯出表結構的時候需要使用COMPRESS=n的原因。
所以總結一下匯出表結構的方式:
1、EXP使用COMPRESS=n匯出(ROWS=N)
2、EXPDP不使用任何引數,IMPDP使用TRANSFORM=SEGMENT_ATTRIBUTES:n匯入(CONTENT=METADATA_ONLY)
一直對這個引數有些疑惑。當然此引數一定不是所謂的壓縮備份檔案的空間,
而它的解釋為
COMPRESS import into one extent
字面意思為把所有的EXTENT壓縮到INIT 分割槽中。但是這個實際上這個只在資料字典管理
的中生效。但是在本地管理表空間中實際initial 也是有用的但是他不會分配到一個EXTENT中,
因為本地管理表空間預設EXTENT管理的方式是AUTO。分割槽大小是大小是64K,1M,8M..的方式,
但是他一定會分配足夠的空間
所以
測試期間我建立了一個大約20M的表,然後DELETE全部記錄,COMMIT掉
然後做如下操作:
exp ppzhu/gelc123@bendi COMPRESS=n tables=test1 file=c:\test1n.dmp
exp ppzhu/gelc123@bendi COMPRESS=y tables=test1 file=c:\test1y.dmp
然後進行匯入
imp ppzhut1/gelc123@bendi fromuser=ppzhu touser=ppzhut1 file=c:\test1y.dmp
發現一共分了20個EXTENT
SQL> select count(*) from dba_extents where segment_name='TEST1' AND OWNER='PPZHUT1';
COUNT(*)
----------
20
每個1M
然後檢視其建立表的語句如下:
create table PPZHUT1.TEST1
(
IT INTEGER
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 20M
minextents 1
maxextents unlimited
);
然後刪除表匯入COMPRESS=n的匯出的DMP如下:
可以看到實際COMPRESS=n是實際的佔用空間,
SQL> select count(*) from dba_extents where segment_name='TEST1' AND OWNER='PPZHUT1';
COUNT(*)
----------
1
SQL> select sum(blocks)*8/1024 from dba_extents where segment_name='TEST1' AND OWNER='PPZHUT1';
SUM(BLOCKS)*8/1024
------------------
0.0625
檢視建表語句
-- Create table
create table PPZHUT1.TEST1
(
IT INTEGER
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
沒有問題。
同樣的EXPDP也會有這樣的問題,IMPDP的時候需要加上引數
TRANSFORM=SEGMENT_ATTRIBUTES:n
這也是為什麼匯出表結構的時候需要使用COMPRESS=n的原因。
所以總結一下匯出表結構的方式:
1、EXP使用COMPRESS=n匯出(ROWS=N)
2、EXPDP不使用任何引數,IMPDP使用TRANSFORM=SEGMENT_ATTRIBUTES:n匯入(CONTENT=METADATA_ONLY)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-1268583/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- exp|imp和expdp|impdp以及sqlldr視訊SQL
- expdp\impdp及exp\imp 詳解
- exp/imp與expdp/impdp區別
- exp/expdp與imp/impdp的區別
- EXP/IMP和EXPDP/IMPDP的區別
- oracle 10g imp/exp IMPDP/EXPDPOracle 10g
- expdp/impdp來解決exp/imp出現的錯誤並匯入指定表空間
- 【EXP/IMP】使用EXP /IMP工具“模糊”匯出和匯入
- exp/expdp imp/impdp的使用【實戰實用】
- exp/imp expdp/impdp Tables 萬用字元 % 的使用字元
- Oracle的expdp/impdp工具和exp/imp工具比較Oracle
- 終止imp/exp和expdp/impdp程式執行的方法
- 資料匯入匯出EXP/IMP
- exp/imp匯出匯入資料
- Oracle匯入(imp )與匯出(exp )Oracle
- ORACLE匯入匯出命令exp/impOracle
- exp/imp出現錯誤通過expdp/impdp來解決
- exp/imp expdp/impdp Tables 萬用字元 % 的使用【Blog 搬家】字元
- oracle資料匯出匯入(exp/imp)Oracle
- Oracle 遠端匯出匯入 imp/expOracle
- exp/imp匯出匯入工具的使用
- imp exp 跨系統匯入案例
- Oracle中exp,imp(匯入匯出)資料遷移注意事項Oracle
- Oracle exp/imp匯出匯入工具的使用Oracle
- Oracle資料匯入匯出imp/exp命令Oracle
- oracle資料的匯入匯出imp/expOracle
- 【exp/imp不同版本】Oracle不同版本的exp/imp使用注意事項Oracle
- EXP、IMP、SQLLOADER、EXPDP、IMPDP、DBMS_METADATA、SQLPLUS等方面SQL
- Oracle資料匯入匯出imp/exp命令(轉)Oracle
- exp匯出compress引數導致的imp時擴充套件太大套件
- 大表exp/imp遷移
- Oracle11g中用exp不能匯出空表,異構平臺遷移可以使用expdp、impdpOracle
- 不同版本exp/imp使用注意事項
- 特殊符號密碼處理 - 匯入匯出exp/imp符號密碼
- EXP,EXPDP資料匯入本地效能測試
- exp/imp之@遠端匯出操作
- Oracle資料庫匯入匯出。imp匯入命令和exp匯出命令Oracle資料庫
- exp/imp 與 expdp/impdp 對比 及使用中的一些優化事項優化