ORACLE IMP和EXP的使用實驗
Exp工具可進行匯出,imp工具進行匯入。
實驗:
在pod庫上建立一個使用者a1,建立一個表空間dd,把這個表空間設定成a1的預設表空間。
然後把表空間dd匯出。在另一個庫emrep中,建立相同的使用者a1,將表空間dd再匯入。
SQL>conn sys/oracle@pod as sysdba
SQL>create tablespace dd datafile ‘/u01/app/oracle/oradata/pod/dd.sbf’ size 10M;
SQL>create user a1 identified by a1 default tablespace dd; 把dd變成a1的預設表空間
SQL>grant connect,resource to a1;
SQL>create table a1.e as select * from scott.emp; 在表空間下存個表
在匯出表空間的時候,我們匯出的不是資料,而是一些存於system表空間的後設資料,我們要先把表空間置於只讀狀態:
SQL>alter tablespace dd read only;
下面我們開始匯出:
$exp –help 在開始之前我們可以先看一看命令選單:
我們開始:
$ exp \”sys/oracle@pod as sysdba\” file=/u01/app/dd.emp transport_tablespace tablespaces=dd
注意:這裡我寫錯了,transport_tablespace我沒寫值,應該是transport_tablespace=y,也為以後匯入的時候報錯埋下了伏筆,但這裡也執行成功了,成功生成了匯出檔案。
匯出之後表空間就可以置於讀寫狀態了。
SQL>alter tablespace dd read write;
在原庫中表空間的schema 在目標庫中一定要存在,就是要找到,哪些使用者把dd表空間作為你的預設表空間,要找出來:
SQL>select username from dba_users where default_tablespace=’DD’
還要找哪些使用者建的表在dd表空間上。
SQL>select owner from dba_tables where tablespace_name=’DD’;
還有哪些使用者建的索引建在dd表空間上:
SQL>select owner from dba_indexes where tablespace_name=’DD’;
查詢物件:先找出表空間dd的file_id;
SQL>select file#,name from v$datafile;找到之後記下;
SQL>select owner from dba_objects where data_object_id=10;
就找到有沒有其他使用者。
總結:dba_users,dba_tables,dba_indexes 找這三個。
所以我們在目標資料庫只需要建立a1使用者,密碼可以不同:
SQL>conn sys/oracle@emrep as sysdba
SQL>create user a1 identified by a1;
SQL>grant connect,resource to a1;
我們要把DD的資料檔案,和匯出的後設資料檔案dd.emp檔案都挪到目標庫的機器上。
這裡我們可以用scp:
我們開始匯入:
$imp \”sys/oracle@emrep as sysdba\” file=/u01/app/oracle/oradata/emrep/dd.emp
transport_tablespace=y tablespaces=dd datafiles=/u01/app/oracle/oradata/emre
p/dd.sbf’
這裡就開始報錯了。這個說匯入模式和匯出檔案不一樣,我一開始是以為兩個庫的字符集不同,透過nls_database_parameters檢視後發現字符集相同,沒有問題;後來發現原來是匯出的時候transport_tablespace那個引數我空著來著。
馬上,我就在原庫又把表空間置於只讀模式,又重新生成了一份後設資料檔案,這次我加了Y。再次執行:
$imp \”sys/oracle@emrep as sysdba\”
file=/u01/app/oracle/oradata/emrep/dd.emp transport_tablespace=y tablespaces=dd datafiles=/u01/app/oracle/oradata/emrep/dd.sbf’
注意:這裡的路徑一定要用絕對路徑,千萬不要用相對路徑,要不然會報錯。
再一次報錯,我分析是重新匯入的後設資料比較新,而用的資料檔案 還是老的資料檔案,兩個不同步,所以我又把datafile檔案重新scp了一下。注意:這時我的表空間還是隻讀模式,我又把這個最新的表空間檔案SCP到了EMREP庫,然後才把它置於讀寫模式:
這次我們再執行:
$imp \”sys/oracle@emrep as sysdba\”
file=/u01/app/oracle/oradata/emrep/dd.emp transport_tablespace=y tablespaces=dd datafiles=/u01/app/oracle/oradata/emrep/dd.sbf’
下面介紹exp/imp的關於使用者的物件的匯入和匯出:
1. 只匯出使用者的一張表。
2. 把一個使用者下的所有物件匯出。
3. 把一個使用者下的所有物件匯入到另外一個使用者裡。
我們建立兩個使用者u1,u2,在 u1上面建立兩個表t1,t2,在u2上建立兩個表p1和p2.
SQL>conn / as sysdba
SQL>create user u1 identified by u1;
SQL>grant resource,connect to u1;
SQL>conn u1/u1
SQL>create table t1(id number,name varchar2(20);
SQL>insert into t1 values(1,’wang’)
SQL>commit;
SQL>create table t2(id number,name varchar2(20);
SQL>insert into t2 values(2,’you’)
SQL>commit;
SQL>create user u2 identified by u2;
SQL>grant resource,connect to u2;
SQL>conn u2/u2
SQL>create table p1(id number,name varchar2(20);
SQL>insert into p1values(1,’oo’)
SQL>commit;
1.下面我們來做把u1下的表t1匯出,檔案是u1.dmp.
$exp u1/u1 file=u1.dmp tables=t1
2.我們來做把u1使用者下的所有的物件都匯出,匯出之後檔案是u1.alldmp
$exp u1/u1 file=u1.alldmp
owner=u1
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25116248/viewspace-2122538/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle實驗記錄 (使用exp/imp)Oracle
- oracle exp和impOracle
- oracle imp和expOracle
- oracle實驗記錄 (exp/imp transport tablespace)Oracle
- 【exp/imp不同版本】Oracle不同版本的exp/imp使用注意事項Oracle
- 【EXP/IMP】使用EXP /IMP工具“模糊”匯出和匯入
- Oracle imp/expOracle
- oracle exp imp 用法Oracle
- exp/imp工具的使用
- Oracle的exp/imp詳解Oracle
- exp/expdp imp/impdp的使用【實戰實用】
- Oracle exp/imp匯出匯入工具的使用Oracle
- 使用Oracle 的 imp ,exp 命令實現資料的匯入匯出Oracle
- Oracle的expdp/impdp工具和exp/imp工具比較Oracle
- oracle密碼特殊字元在imp、exp裡的使用Oracle密碼字元
- exp和imp詳解
- IMP和EXP筆記筆記
- exp_imp實戰
- oracle exp_imp小記Oracle
- exp和imp的詳細操作
- Oracle discoverer中exp/imp Business Areas (BAs) 和foldersOracle
- Oracle Exp/Imp常見問題Oracle
- EXP/IMP和EXPDP/IMPDP的區別
- Oracle的exp、imp的資料遷移步驟Oracle
- 24.EXP和IMP(筆記)筆記
- exp/imp工具
- 理解exp, imp 使用direct=y 及imp commit=yMIT
- ORACLE備份和恢復 - 邏輯備份 exp/impOracle
- Oracle 傳輸表空間-EXP/IMPOracle
- Oracle匯入(imp )與匯出(exp )Oracle
- ORACLE匯入匯出命令exp/impOracle
- 轉:oracle EXP /IMP引數詳解Oracle
- oracle 10g imp/exp IMPDP/EXPDPOracle 10g
- 關於imp和exp的有關理解
- exp/imp匯出匯入工具的使用
- oracle資料的匯入匯出imp/expOracle
- ORACLE exp/imp匯入報錯IMP-00009&IMP-00028&IMP-00015Oracle
- 不同版本exp/imp使用注意事項