zoukankan      html  css  js  c++  java
  • 2016.8.17服务器端数据库用户导入导出方法 expdp和impdp

    EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。

    EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

    IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。

    EXPDP导出命令:

    C:UsersAdministrator>expdp ndp_admin/ndp_admin@ndp schemas=ndp2016_04 dumpfile=snndp.dmp directory=data_pump_dir

    将用户ndp2016_04导出到服务器上的D:appAdministratoradminorcldpdump目录下。

    不用事先创建目录,可直接用系统目录data_pump_dir

    IMPDP导入命令:事先不用创建接收用户!直接在导入时指定新用户名,连密码都自动设为与导出用户一样,非常方便!

    注意用户转换时要用remap_schema=ndp2016_04:myuser 导出用户:导入用户

    impdp ndp_admin/ndp_admin@ndp  directory=data_pump_dir dumpfile=snndp.dmp

    remap_schema=ndp2016_04:myuser table_exists_action=replace

    table_exists_action=replace其实无用,因为用户的空的,如果不是,还有序列、视图、函数等不好操作。

    更进一步,不用导出dmp文件,直接将用户同步到本实例或其它实例上的新建用户上!!!

    1、先创建数据库连接,需先登录sqlplus

    sql> create public database link ndpself connect to system identified by orcl using 'orcl'

    注意:ndpself是新建的database link名称,可以随便起。后面connect to system identified by orcl是登录名和密码,using 'orcl'是数据库在服务器上的真正实例名,而不是客户端上的连接名

    2、退出sqlplus,直接运行impdp命令,直接新建用户并导入数据

    impdp ndp_admin/ndp_admin@ndp network_link=ndpself schemas=ndp_admin remap_schema=ndp_admin:newndpadmin

    注意ndp_admin/ndp_admin@ndp是执行这行命令的客户机上的连接名,schemas=ndp_admin指明导出库中的导出用户

    再进一步,将不同服务器、不同实例间的用户进行直接同步

    在C客户机上运行脚本,将111,A服务器上的的实例 中的NAIP2019_09用户,同步到B服务器上的实例(B服务器上添加连接A的连接名为transnaip,(一定要在B的dbhome_1路径下),C连B的上的连接名ndp)下的new09用户下。

    1、创建dblink

    先在C客户端上连接B服务器,在上面建立数据库连接

    sqlplus ndp_admin/ndp_admin@ndp //ndp C连B的连接名,最普通的连接,可以是dbhome_1路径下的,也可以是在client_1路径下的。

    create public database link tans_1 connect to system identified by orcl using 'transnaip'  //transnaip:B服务器上连A的连接名

    注意,C客户机和B服务器往往就是一台电脑,这时一定要注意B连A的连接名'transnaip'必须是服务器B的路径dbhome_1下连接A机的连接名,而不是B的客户端路径client_1的到A机的连接名

    退出sqlplus

    2、导入用户

    impdp ndp_admin/ndp_admin@ndp network_link= trans_1 schemas=naip2016_09 remap_schema=naip2016_09:my09 transform=oid:n

    补充:

    0、db_link最好用system用户连接,否则可能连接不成功,原因未知

    1、可以多个用户用一条语句导入,用户间用,隔开

    impdp flt_admin/flt_admin@orcl network_link= fltself sche

    mas=nvduser_flt,nvduser_fmap2 remap_schema=nvduser_flt:nn1,nvduser_fmap2:nn2 transform=oid:n 

    2、必须加上transform=oid:n ,否则类型无法创建,因为oralce将同一个实例下的类型不允许有同样的id

    3、新创建的用户密码是不可用的,必须事后更改新用户的密码ALTER USER nn1 IDENTIFIED BY nvduser_flt

    4、可以通过databse link 实现访问不同服务器上的不同实例下的用户对象如:

    select * from naip2016_09.airport@ trans_1来访问其它服务器上的表

    但是,不能对远程数据库进行结构调整DDL,如创建表、删除字段等操作,只能进行查询、删除、添加等表记录操作。

    5、查看所有dblink连接

    select * from dba_db_links;

    6、删除dblink连接

    drop public database link dblinkname;

  • 相关阅读:
    操作mysql的指令
    linux下安装mongodb
    linux将指令加入开机启动或加入环境变量
    php请求远程url内容方法
    nosql基本了解
    堆排序的实现
    转:导出csv文件数字会自动变科学计数法的解决方法
    jQuery筛选结果等于true的筛选
    转:Jquery的parent和parents(找到某一特定的祖先元素)
    drupal7 带表达式条件的update
  • 原文地址:https://www.cnblogs.com/mol1995/p/5965022.html
Copyright © 2011-2022 走看看