• oracle expdp 导出库


    先普及一下使用expdp备份oracle数据库的过程吧。

    将服务器A(CentOS)上的库导出:(服务端sqlplus里可以执行的一般都可以在客户端plsql里远程执行。sqlplus可以远程操作吗?没用过。)

    这里演示sqlplus里执行的:

    cmd输入:

    sqlplus /nolog;

    connect as sysdba;

    接下来输入sys账户及密码登陆;#这里以sysdba登陆,以便创建导出目录后给用户drag赋予读写权限,所以不以drag登陆。另外,我试了sqlplus /as sysdba;登陆失败,以及sqlplus sys/sys或sqlplus "sys/sys"都失败,不知为何。

    SQL>create directory dump_dir as '/opt/dump';
    SQL>grant READ ,WRITE ON DIRECTORY dump_dir TO drag;
    SQL>select * from dba_directories;#查看数据库所有的目录。

    退出到系统:
    C:>expdp drag/dragtest   schemas=drag dumpfile=drag.dmp DIRECTORY=dump_dir 导出drag用户下的库。

    C:>EXPDP drag/dragtest  directory=/var/ TABLES=t_hostinfhis_n1 dumpfile=drag.dmp parallel=4 logfile=exp.log #导出一些表
    C:>expdp drag/dragtest   DIRECTORY=dump_dir DUMPFILE=drag.dmp FULL=y #导出整个库

    C:>expdp drag/dragtest   schemas=drag dumpfile=drag.dmp DIRECTORY=dump_dir content=metadata_only 导出drag用户下的库,只导出元数据,不导出表中数据

    content=data_only则相反

    错误和解决:
    1、文件无法正确写入:dump_dir物理上不存在,手动创建,另外注意赋予权限给drag;只有在系统身份下才能赋予权限给drag,如果是drag创建的则不需要赋予。

    有时候执行了grant 赋予了权限也不行,索性系统里面:chmod 777 /opt/dump ,然后就可以了。

    2、最纠结的是,一开始我查看以前的操作记录是:

    expdp drag/dragtest@testLinux schemas=drag dumpfile=drag130.dmp DIRECTORY=dump_dir  parallel=4 logfile=expdrag.log;导出drag用户下的库。

    注意账户信息后面是要加上实例名的,可今天不断报错。后来把@及以后的去掉就不报错了。。

    难道是因为我本地导出的,难道之前是远程用plsql导出的才加服务名?不记得了。。也许是这么个道理。。

    3.命令结束不要分号。

  • 相关阅读:
    HDU 4628 Pieces
    HDU 2983 Integer Transmission
    HDU 1820 Little Bishops
    CodeForces 165E Compatible Numbers
    CodeForces 11D A Simple Task
    HDU 4804 Campus Design
    HDU 3182 Hamburger Magi
    Linux的用户和组
    Linux文件/目录权限及归属
    Vim使用介绍
  • 原文地址:https://www.cnblogs.com/peterpanzsy/p/2989888.html
Copyright © 2020-2023  润新知