1. 程式人生 > >oracle 11g expdp impdp詳細使用方法

oracle 11g expdp impdp詳細使用方法

無法登錄 目錄 expdp like tempfile spa ase 平臺 ads

11G中有個新特性,當表無數據時,不分配segment,以節省空間

解決方法如下圖:

技術分享

二、oracle10g以後提供了expdp/impdp工具,同樣可以解決此問題

1、導出expdp工具使用方法:

首先建立directory -- expdir(導入導出都要建立,對應的E:/exp文件夾如果不存在,需要手工建立)

技術分享

導出語法:

技術分享

如果只是要導出某些表,可以使用include

C:\Users\ganjh>expdp [email protected]_localhost schemas=eas dumpfile=expdp2.dmp
directory=expdir include=table:\"like \‘CT%\‘\"

2、導入impdp工具使用方法:

首先建立directory -- data_bak

技術分享

導入語法:

C:\Users\ganjh>impdp [email protected]_localhost directory=db_bak dumpfile=EXPDP.
DMP FULL=y;

從一個用戶expdp導出再impdp導入到另一個用戶

如果想導入的用戶已經存在:
1. 導出用戶 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp
2. 導入用戶 impdp user2/pass2 directory=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 EXCLUDE=USER full=y;

如果想導入的用戶不存在:
1. 導出用戶 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp
2. 導入用戶 impdp system/passsystem directory=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 full=y;
3. user2會自動建立,其權限和使用的表空間與user1相同,但此時用user2無法登錄,必須修改user2的密碼

--------------------------------------------------------- Linux環境 ---------------------------------------------------------------------

Oracle11g中,exp默認不能導出空表。用傳統的exp,imp進行異構平臺數據庫遷移會比較麻煩。不過可以使用expdp、impdp進行遷移。

把64位windows 2003的Oracle11gR2數據庫遷移到64位Linux redhat Enterprise 5中,可以使用expdp、impdp進行遷移數據。

如:Windows為A服務器,Linux為B服務器,數據庫用戶為test,把A服務器的數據遷移到B服務器中

在A服務器操作:

1、

SQL> create directory expdp_dir as ‘D:\mzl\backup ‘;

SQL> grant read,write on directory expdp_dir to test;

2、在windows目錄創建目錄D:\mzl\backup

3、在DOS命令窗口導出:

expdp test/test DIRECTORY=expdp_dir DUMPFILE=test.dmp logfile=testexpdp.log

在B服務器中操作:

4、SQL> create directory impdp_dir as ‘/home/Oracle/impdp_dir‘;

SQL> grant read,write on directory impdp_dir to test;

1、 在系統中需要有/home/oracle/impdp_dir目錄,在impdp_dir目錄下必須有讀寫權限

(chmod 777 impdp_dir)

5、用ftp把A服務器導出的數據上傳到B服務器的/home/oracle/impdp_dir目錄中

在A服務器中配置好B服務器的服務器名,在A服務器導入數據

6、在DOS命令窗口導出:

imppdp [email protected]_database DIRECTORY=impdp_dir DUMPFILE=test.dmp logfile=testimpdp.log

(這裏註意大小寫,如果test.dmp在linux中為大寫,必須更改為大寫。Linux區分大小寫)

11G中有個新特性,當表無數據時,不分配segment,以節省空間

解決方法如下圖:

技術分享

二、oracle10g以後提供了expdp/impdp工具,同樣可以解決此問題

1、導出expdp工具使用方法:

首先建立directory -- expdir(導入導出都要建立,對應的E:/exp文件夾如果不存在,需要手工建立)

技術分享

導出語法:

技術分享

如果只是要導出某些表,可以使用include

C:\Users\ganjh>expdp [email protected]_localhost schemas=eas dumpfile=expdp2.dmp
directory=expdir include=table:\"like \‘CT%\‘\"

2、導入impdp工具使用方法:

首先建立directory -- data_bak

技術分享

導入語法:

C:\Users\ganjh>impdp [email protected]_localhost directory=db_bak dumpfile=EXPDP.
DMP FULL=y;

從一個用戶expdp導出再impdp導入到另一個用戶

如果想導入的用戶已經存在:
1. 導出用戶 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp
2. 導入用戶 impdp user2/pass2 directory=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 EXCLUDE=USER full=y;

如果想導入的用戶不存在:
1. 導出用戶 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp
2. 導入用戶 impdp system/passsystem directory=dumpdir dumpfile=user1.dmp REMAP_SCHEMA=user1:user2 full=y;
3. user2會自動建立,其權限和使用的表空間與user1相同,但此時用user2無法登錄,必須修改user2的密碼

--------------------------------------------------------- Linux環境 ---------------------------------------------------------------------

Oracle11g中,exp默認不能導出空表。用傳統的exp,imp進行異構平臺數據庫遷移會比較麻煩。不過可以使用expdp、impdp進行遷移。

把64位windows 2003的Oracle11gR2數據庫遷移到64位Linux redhat Enterprise 5中,可以使用expdp、impdp進行遷移數據。

如:Windows為A服務器,Linux為B服務器,數據庫用戶為test,把A服務器的數據遷移到B服務器中

在A服務器操作:

1、

SQL> create directory expdp_dir as ‘D:\mzl\backup ‘;

SQL> grant read,write on directory expdp_dir to test;

2、在windows目錄創建目錄D:\mzl\backup

3、在DOS命令窗口導出:

expdp test/test DIRECTORY=expdp_dir DUMPFILE=test.dmp logfile=testexpdp.log

在B服務器中操作:

4、SQL> create directory impdp_dir as ‘/home/Oracle/impdp_dir‘;

SQL> grant read,write on directory impdp_dir to test;

1、 在系統中需要有/home/oracle/impdp_dir目錄,在impdp_dir目錄下必須有讀寫權限

(chmod 777 impdp_dir)

5、用ftp把A服務器導出的數據上傳到B服務器的/home/oracle/impdp_dir目錄中

在A服務器中配置好B服務器的服務器名,在A服務器導入數據

6、在DOS命令窗口導出:

imppdp [email protected]_database DIRECTORY=impdp_dir DUMPFILE=test.dmp logfile=testimpdp.log

(這裏註意大小寫,如果test.dmp在linux中為大寫,必須更改為大寫。Linux區分大小寫)

  1. create temporary tablespace EAS_T_NSKFTEST_STANDARD tempfile ‘F:\oradata\oradata\orcltest\EAS_T_NSKFTEST_STANDARD‘ size 500M
  2. autoextend on next 50M maxsize 2048M extent management local;
  3. create tablespace EAS_D_NSKFTEST_STANDARD datafile ‘F:\oradata\oradata\orcltest\EAS_D_NSKFTEST_STANDARD‘ size 2048M
  4. autoextend on next 100M maxsize 5000M extent management local;
  5. create temporary tablespace EAS_D_NSKFTEST_TEMP2 tempfile ‘F:\oradata\oradata\orcltest\EAS_D_NSKFTEST_TEMP2‘ size 500M
  6. autoextend on next 50M maxsize 2048M extent management local;
  7. create user nskftest identified by kingdee default tablespace EAS_D_NSKFTEST_STANDARD temporary tablespace EAS_T_NSKFTEST_STANDARD;
  8. grant connect,resource,dba to nskftest;
  9. impdp nskftest/kingdee directory=db_bak dumpfile=XWY_SCHEMAS20150717.dmp REMAP_SCHEMA=nskf:nskftest remap_tablespace=EAS_D_NSKF_STANDARD:EAS_D_NSKFTEST_STANDARD remap_tablespace=EAS_T_NSKF_STANDARD:EAS_T_NSKFTEST_STANDARD remap_tablespace=EAS_D_NSKF_TEMP2:EAS_D_NSKFTEST_TEMP2 EXCLUDE=USER full=y;

oracle 11g expdp impdp詳細使用方法