dmp文件是Oracle數據庫的轉儲文件,用於在不同主機之間進行數據遷移。通常使用expdp和impdp命令進行dmp文件的導出導入,expdp和impdp是服務端工具,只能在Oracle服務端使用。
一、從數據庫導出dmp文件
切換到Oracle安裝目錄的宿主用戶,然后通過expdp進行導出。
導出命令的模板:
expdp exp_user/exp_user_password@ip:1521/sid directory= DATA_PUMP_DIR dumpfile=file_name.dmp logfile=exp_logfile.log content=all SCHEMAS=exp_user
1、exp_user/exp_user_password表示導出用戶的賬號/密碼
2、ip和端口號只有從遠程導出時才需要,若本地導出只需指定實例名sid就好
3、directory指定導出的dmp文件存放的目錄,可以自己新建導出目錄,但一般使用默認的就好。
通過語句select * from dba_directories查詢dmp文件存儲的目錄
4、dumpfile指定導出的dmp文件的文件名
5、logfile導出時的日志文件,可選
6、SCHEMAS導出用戶的賬號
導出實例:
expdp jslt/passwd@orcl directory= DATA_PUMP_DIR dumpfile=jslt_export_20200831.dmp logfile=jslt_export_20200831.log content=all SCHEMAS=jslt
導出完成后dmp文件就在 directory指定的目錄下
[oracle@centos7 dpdump]$ cd /data/oracle/admin/orcl/dpdump/ [oracle@centos7 dpdump]$ ls jslt_export_20200831.dmp jslt_export_20200831.log
二、將dmp文件導入到Oracle數據庫
登錄待導入dmp文件的服務器后切換到Oracle安裝目錄的宿主用戶:su - oracle(宿主由根據安裝Oracle時指定,我這里時oracle)
1、進入sqlplus命令行
[oracle@centos7 ~]$ sqlplus /nolog
2、以擁有dba身份的用戶登錄數據庫
SQL> conn jslt/passwd@orcl
Connected.
3、創建用戶、表空間、並給用戶賦予權限
create tablespace XDBH_DATA logging
#表空間所在的目錄可通過語句select file_name,tablespace_name from dba_data_files查詢得到
datafile '/data/oracle/oradata/orcl/XDBH_DATA.DBF' size 512m autoextend on next 50m extent management local; create temporary tablespace XDBH_TEMP tempfile '/data/oracle/oradata/orcl/XDBH_TEMP.DBF'
size 112m
autoextend on next 100m
extent management local;
create user xdbh identified by xdbh
default tablespace XDBH_DATA
temporary tablespace XDBH_TEMP;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
grant connect,resource,dba to xdbh ;
4、通過語句select * from dba_directories查詢dmp文件存儲的目錄,將已導出的dmp文件上傳到該目錄下供導入使用
5、通過impdp命令進行導入
導入模板
impdp imp_user/imp_user_password@ip:1521/sid directory=DUMP_DIR dumpfile=export.dmp REMAP_SCHEMA=exp_user:imp_user REMAP_TABLESPACE=exp_tablespacename:imp_tablespacename logfile=implog.log table_exists_action=replace content=all transform=OID:N
導入實例:
impdp jslt/passwd@orcl directory=DATA_PUMP_DIR dumpfile=jslt_export_20200831.dmp logfile=jslt_import_20200831.log REMAP_SCHEMA=jslt:jslt REMAP_TABLESPACE=LTBH_DATA:JSLT_DATA table_exists_action=replace content=all transform=OID:N
參考博客: