美文网首页oracle数据库我爱编程
oracle之命令行导入导出数据库及sqlplus远程连接

oracle之命令行导入导出数据库及sqlplus远程连接

作者: iszengmh | 来源:发表于2017-09-15 14:21 被阅读326次

    [TOC]

    参考链接

    Oracle数据库导入导出命令总结
    sqlplus连接远程数据库
    ORACLE的impdp和expdp命令
    oracle expdp——红黑联盟

    oracle之命令行导入导出数据库及sqlplus远程连接

    oracle之命令行导入导出数据库

    exp 和imp导入导出

    导出命令 (exp)

    exp [用户名]/[密码]@[主机ip]:[端口号]/[SID/service] file=d:\zhpt.dmp full=n
    file是导出路径
    full=n,表示是否导出主机数据库上全部用户,n表示否,y表示是

    exp abc/abc@183.233.179.165:1521/orcl file=d:\zhpt.dmp full=y
    
    image.png

    导入数据库(imp)

    # full 表示是否导出全部数据,一定要设置
    # log 输出日志文件
    # fromuser 从哪一个用户导入
    # touser 导入到哪个用户
    # ignore=y buffer=100000000; 修改缓冲区大小,有时sql语句过长,会造成缓冲区空间不足
    
    imp username/pwd@orcl file=d:\zhpt.dmp log=C:\data\logname.log full=y
    或者
    imp username/pwd@orcl file=E:\20171108.dmp fromuser=username touser= username log=D:\webBackend\kingzheng\住房保障系统\fszfbz201711191635.log full=n
    或者
    imp username/pwd@orcl file=d:\zhpt.dmp log=C:\data\logname.log full=y ignore=y buffer=100000000;
    

    创建数据泵使用expdp和impdp导入导出

    需要先创建数据泵

    数据泵,说白了就是指定一个目录给oracle,但是oracle不会帮你创建的,需要自己先实际地创建

    #  查看所有数据泵地址
    select * from dba_directories;
    # 创建数据泵,数据泵地址即为你的导出导入地址文件地址
    create directory myname as 'D:\temp\数据泵地址';
    # 授予权限 sshe这个用户可读可写
    grant read,write on directory dpdata1 to sshe;
    
    sql>--可以使用以下语句查看目录操作权限
    sql>  SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1; 
    

    注意: 数据泵地址以及文件dmp需要自己创建

    导出数据(expdp)

    这种数据泵效率非常高,但是使用这种数据泵导出的数据,需要用impdp导入

    rem my_dir是数据泵名称
    rem exclude table:"in(表名,列名2,……)"不导出某些表
    expdp test/test@127.0.0.1:1521/orcl directory=my_dir dumpfile=my.dmp exclude=table:\"in \(\'DEPT\',\'EMP\'\)\" SCHEMAS=FSJSCX
    
    

    impdp

    expdp的语法格式差不多

    impdp test/test@orcl DIRECTORY=my_dir  DUMPFILE=my.dmp SCHEMAS=test logfile=%logfile% 
    

    问题

    这些对象由 FSZJZ 导出, 而不是当前用户

    image.png

    导出是哪个用户,导入时用户也要相同,需要自己再创建一个用户


    20170927
    我发现仍然可以导入,用户名不一样,也有可能忽略了前缀c##,c##是新版oracle数据库的要求

    image.png

    只有管理员用户,才可以导入

    image.png

    导入的用户,需要赋与管理员权限

    ora-28759 无法打开文件

    以下这两句可能在不同的操作系统,支持不同,不太清楚,我服务器,两个都是sever2008,但是只有一个报这个错误,这个报错确实跟用户连接有关系,最好是采用second

    # first
    expdp test/test@orcl directory=my_dir dumpfile=my.dmp exclude=table:\"in \(\'DEPT\',\'EMP\'\)\"
    # second
    expdp test/test@127.0.0.1:1521/orcl directory=my_dir dumpfile=my.dmp exclude=table:\"in \(\'DEPT\',\'EMP\'\)\"
    

    sqlplus 远程连接

    命令:sqlplus 用户名/密码@ip地址[:端口]/service_name [as sysdba]
    示例:sqlplus sys/pwd@ip:1521/test as sysdba
    
    

    相关文章

      网友评论

        本文标题:oracle之命令行导入导出数据库及sqlplus远程连接

        本文链接:https://www.haomeiwen.com/subject/rlbssxtx.html