1. SSH客户端连接服务器
2. 登陆到oracle
su - oracle
3. 登陆sqlplus控制台
sqlplus / as sysdba
5. 创建临时表空间
create temporary tablespace SDCBJTYS_TEMP tempfile '/u01/opt/11g/oracle/oradata/SDCBJTYS_TEMP.DBF' size 100M reuse autoextend on next 20M maxsize unlimited;
6. 创建表空间
create tablespace SDCBJTYS datafile '/u01/opt/11g/oracle/oradata/SDCBJTYS.DBF' size 300M reuse autoextend on next 40M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);
7. 创建一个用户
create user sdcbjtys identified by cwpass default tablespace SDCBJTYS temporary tablespace SDCBJTYS_TEMP;
8. 为用户分配权限
grant connect,resource ,dba to sdcbjtys;
9. 为用户分配可以读取directory权限
grant read,write on directory OSPDB_DIR to sdcbjtys;
10. 执行导入dmp文件操作
impdp sdcbjtys/cwpass directory=OSPDB_DIR dumpfile=sdcbjtys_20180323.dmp LOGFILE=SDCBJTYS.log full=y ignore=y;
11. 如果需要删除表空间
DROP tablespace SDCBJTYS including contents and datafiles;
12. 如果需要删除临时表空间
DROP tablespace SDCBJTYS_TEMP including contents and datafiles;
13. 如果需要删除用户
drop user sdcbjtys cascade;
附加:如果导入文件时需要修改用户和表空间名称,建立目标用户和表空间
1. 建立目标用户和表空间-->将源数据dmp文件导入新的表空间中
create tablespace CQSYHSXT datafile '/u01/opt/11g/oracle/oradata/CQSYHSXT.DBF' size 300M reuse autoextend on next 40M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);
create temporary tablespace CQSYHSXT_TMP tempfile '/u01/opt/11g/oracle/oradata/CQSYHSXT_TMP.DBF' size 100M reuse autoextend on next 20M maxsize unlimited;
create user CQSYHSXT identified by CQSYHSXT default tablespace CQSYHSXT temporary tablespace CQSYHSXT_TMP;
grant connect,resource ,dba to CQSYHSXT;
grant read,write on directory OSPDB_DIR to CQSYHSXT;
2. 返回上一层
exit;
3. 然后将源数据dmp文件导入新的表空间中,这里使用system用户,导入后表的所有者为目标用户
impdp system/password directory=OSPDB_DIR dumpfile=OSPStandardDb_V3.5.18.DMP LOGFILE=OSPStandardDb_V3.5.18.log full=y ignore=y REMAP_SCHEMA=OSPBASE_DEV:CQSYHSXT remap_tablespace=OSPBASE_DEV:CQSYHSXT,OSPBASE_DEV_TEMP:CQSYHSXT_TMP
帮助链接:https://www.cnblogs.com/aDust/p/7845447.html
4. 如果导入时出现表存在 table already exists,可添加此参数:TABLE_EXISTS_ACTION=REPLACE,如:
[oracle@plcdfgs ~]$ impdp system/password123 directory=OSPDB_DIR dumpfile=OSPStandardDb_V3.5.18.DMP LOGFILE=OSPStandardDb_V3.5.18.log full=y ignore=y REMAP_SCHEMA=OSPBASE_DEV:CQSYHSXT remap_tablespace=OSPBASE_DEV:CQSYHSXT,OSPBASE_DEV_TEMP:CQSYHSXT_TMP TABLE_EXISTS_ACTION=REPLACE
-----------------------------------------------------------------------
skip: 是如果已存在表,则跳过并处理下一个对象
append: 是为表增加数据
truncate:是先删除原有的数据,然后为其增加新数据
replace: 是删除已存在表,重新建表并追加数据