目標:使用oracle數據泵,將A電腦上的數據庫databaseA導出后,再導入到B電腦上的數據庫databaseB中。
A電腦上的操作(expdp數據導出):
- 運行cmd;
-
登錄數據庫,輸入命令:
sqlplus
;使用管理員角色登錄需要在用戶名后加“
as sysdba
” 例如:sys as sysdba
-
創建目錄路徑:輸入命令:
create directory data_dir as 'E:\ora\data' ;
;1、
data_dir
為路徑名稱,可自命名,E:\ora\data
為數據庫導出文件存放路徑(路徑必須存在);
2、使用命令:select * from dba_directories
可查詢用戶創建目錄。 -
為oracle用戶授予訪問數據目錄的權限,輸入命令:
Grant read,write on directory data_dir to dbuser;
;dbuser
為數據庫用戶名(與第5步中相同)。 -
導入導出操作授權,輸入命令:
grant exp_full_database,imp_full_database to dbuser;
; -
退出,輸入命令:
exit;
; -
數據導出,執行命令:
expdp dbuser/123456@orcl schemas=dbuser dumpfile=expdp.dmp directory=data_dir logfile=expdp.log
。expdp [為用戶名]/[密碼]@[服務名]
schemas=[為用戶名]
dumpfile=[導出數據庫文件(可自命名)]
directory=[目錄名]
logfile=[日志文件文件名(可自命名)]
注意:命令結束不需要加“;
”!
B電腦上的操作(impdp 數據導入):
- 運行cmd;
-
登錄數據庫,輸入命令:
sqlplus
;使用管理員角色登錄需要在用戶名后加“
as sysdba
” 例如:sys as sysdba
-
創建目錄路徑:輸入命令:
create directory data_dir as 'E:\ora\data' ;
;1、
data_dir
為路徑名稱,可自命名,E:\ora\data
為數據庫導出文件存放路徑(路徑必須存在);
2、使用命令:select * from dba_directories
可查詢用戶創建目錄。 -
為oracle用戶授予訪問數據目錄的權限,輸入命令:
Grant read,write on directory data_dir to dbuser;
;dbuser
為數據庫用戶名(與第5步中相同)。 -
導入導出操作授權,輸入命令:
grant exp_full_database,imp_full_database to dbuser;
; -
將從A電腦中
E:\ora\data
目錄下的.dmp數據泵導出文件拷貝至B電腦創建的目錄(E:\ora\data
)中; -
退出,輸入命令:
exit;
; -
數據導入,執行命令:
impdp user/123456@orcl REMAP_SCHEMA = dbuser:user table_exists_action = replace directory=data_dir dumpfile=expdp.dmp logfile=expdp.log
。impdp [用戶名]/[密碼]@[服務名]
REMAP_SCHEMA=[源用戶名1]:[目標用戶名2]
table_exists_action=replace /*存在的表動作(覆蓋)*/
directory=[目錄名]
dumpfile=[.dmp文件名]
logfile=[.log文件名]
注意:命令結束不需要加“;
”!