导入导出dmp文件、执行sql文件

导出dmp

create directory expDir as '/oracle/oracle_data/expDmp'; 
Grant read,write on directory expDir to GSDX_GZZSV1;
服务名方式: expdp GSDX_GZZSV1
/gzzs@127.0.0.1/orcl12c.us.oracle.com schemas=GSDX_GZZSV1 directory=expDir dumpfile=GSDX_GZZSV1.dmp logfile=GSDX_GZZSV1.log;

SID:
expdp JTDX_HUNT_PD_TESTV1/HUNT_PD_TEST directory=JTDX_DIR dumpfile=JTDX_HUNT_PD_TESTV1.dmp 

导入dmp

1.首先 要知道dmp文件的导出方式  是expdp还是exp 然后用对应的方式导入

2.知道表空间CLOUD_AH_IOM

3.知道用户名 cloud_123_gs

4.创建用户,并带有表空间

sqlplus / as sysdba

create tablespace CLOUD_AH_IOM datafile '${ORACLE_HOME}oradatacloud_ah_iom.dbf' size 100M reuse autoextend on next 40M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);

这里指定dbf文件的时候,如果用户目录不同,要将对这个目录的操作权限赋值

chown -R oracle oracle_data/

使用root 用户 将oracle_data/ 目录的操作权限赋值给oracle

创建用户:

 create user cloud_123_gs identified by cloud_123_gs default tablespace CLOUD_AH_IOM;

5.赋权

grant connect,resource,dba to cloud_123_gs;
grant unlimited tablespace to cloud_123_gs;
grant create database link to cloud_123_gs;
grant select any sequence,create materialized view to cloud_123_gs;

6.创建目录,并授权

create or replace directory dpump_dir as '/home/oracle/dmp';  --这里是dmp文件所在的文件路径
select * from dba_directories;
grant read,write on directory dpump_dir to cloud_123_gs

7.导入命令

impdb:表空间,用户相同

impdp cloud_123_gs/cloud_123_gs DIRECTORY=dpump_dir DUMPFILE=expdp.dmp SCHEMAS=cloud_123_gs;

impdb:修改表空间和用户

impdp SOC2/SOC2 directory=JILIN_ZHENDUAN_DIR dumpfile=expdp_soc1029.dmp remap_schema=SOC:SOC2 REMAP_TABLESPACE='(SOC_TBS:JILIN_SOC_1_TBS)' logfile=soc2.log

解释:SOC2/SOC2  用户名/密码

directory 第六步中创建的

dumpfile  dmp文件路径(在dmp文件所在路径,可以直接用文件名)

remap_schema:SOC:SOC2   从dmp的SOC用户 导入为新的SOC2用户

REMAP_TABLESPACE='(SOC_TBS:JILIN_SOC_1_TBS)'  表空间映射  从SOC_TBS 导入到JILIN_SOC_1_TBS

nohup impdp XJYD_SOCV1/soc DIRECTORY=XJYD_DIR dumpfile=YTH2018.dmp logfile=YTH2018.log exclude=table:"in('AUTHENTICATE_LOG')" remap_schema=ISAP:XJYD_SOCV1 remap_tablespace=TBS_AL:XJYD_SOC_1_TBS,TBS_ALIDX:XJYD_SOC_1_TBS,TBS_DATA:XJYD_SOC_1_TBS,TBS_SOC:XJYD_SOC_1_TBS,TBS_TE:XJYD_SOC_1_TBS,TBS_TEIDX:XJYD_SOC_1_TBS,TBS_WEB:XJYD_SOC_1_TBS,TBS_WEBIDX:XJYD_SOC_1_TBS &

exclude=table:"in('AUTHENTICATE_LOG')"  可以让dmp文件内的AUTHENTICATE_LOG表不导入

nohup impdp HBLT_IOMTESTV1/IOMTEST directory=HBLT_DIR dumpfile=IOMTEST_20190320.dmp remap_schema=IOMTEST:HBLT_IOMTESTV1 TRANSFORM=segment_attributes:n logfile=IOMTEST_20190320_2.log &

segment_attributes:n  可以让remap_tablespace参数无效,把所有的表导入到创建用户时的默认表空间里面

imp 修改表空间(貌似没用)

nohup imp YNDX_ZDV1/YN_ZD_213 file='YN_ZD1011.dmp' tablespaces=YNDX_EOMS_PUBLIC_1_TBS full=y ignore=y log='YNDX_ZDV1.log' &

***如果数据库存在多个实例,如何进行不同数据库的导入?

在命令行执行:
export ORACLE_SID=orcl12c   
export ORACLE_SID=orcl
进行切换不同的数据库实例。切换后,按照正常方法导入即可

--查看当前实例的sql
select instance_name from v$instance;

 查看dmp字符集---(0345对应的是ZHS16GBK, 0369对应的是AL32UTF8):
cat 'isap_new_test.dmp'|od -x|head -1|awk '{print $2 $3}'|cut -c 3-6

导入sql

1、登录对应的数据库

sqlplus LNDX_ISAPSCBAKV1/isapscbak@192.168.1.175:1521/orcl 

2、执行命令

@目录/ISAP_DATA.sql
例子:@/oracle_data/dmp/liaoNing/dx/ISAP_DATA.sql

查看所有表空间
select tablespace_name from dba_tablespaces;
删除表空间
drop tablespace IOMC_IOM_DATA2 including contents and datafiles cascade constraint;
删除用户
drop user isap_new_test2 cascade;
查看用户所属表空间
select default_tablespace from dba_users where username='isap_new_test2';
查看所有用户
select username from dba_users;

原文地址:https://www.cnblogs.com/linhongwenBlog/p/9364756.html