oracle 11g expdp impdp詳細使用方法
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區分大小寫)
- create temporary tablespace EAS_T_NSKFTEST_STANDARD tempfile ‘F:\oradata\oradata\orcltest\EAS_T_NSKFTEST_STANDARD‘ size 500M
- autoextend on next 50M maxsize 2048M extent management local;
- create tablespace EAS_D_NSKFTEST_STANDARD datafile ‘F:\oradata\oradata\orcltest\EAS_D_NSKFTEST_STANDARD‘ size 2048M
- autoextend on next 100M maxsize 5000M extent management local;
- create temporary tablespace EAS_D_NSKFTEST_TEMP2 tempfile ‘F:\oradata\oradata\orcltest\EAS_D_NSKFTEST_TEMP2‘ size 500M
- autoextend on next 50M maxsize 2048M extent management local;
- create user nskftest identified by kingdee default tablespace EAS_D_NSKFTEST_STANDARD temporary tablespace EAS_T_NSKFTEST_STANDARD;
- grant connect,resource,dba to nskftest;
- 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詳細使用方法