• 导入导出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;

  • 相关阅读:
    连接数据库修改篇
    连接数据库
    get和post
    php连接mysql
    AJAX基础!
    JAVAsrcipt总结!
    使用AJAX如何得到数据库当中的值!
    AJAX如何做出输入框提示!
    PHP数据连接主键与外键!
    JAVA当中内存管理与垃圾回收!
  • 原文地址:https://www.cnblogs.com/linhongwenBlog/p/9364756.html
Copyright © 2020-2023  润新知