linux下将dmp文件导入oracle

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: 是删除已存在表,重新建表并追加数据







你可能感兴趣的:(database)