zoukankan      html  css  js  c++  java
  • 使用数据泵expdp、impdp备份和还原oracle数据库

    前面我已经整理过EXP 和 IMP备份和还原Oracle数据库的方法

    今天我们只讲使用数据泵 expdp 和impdp的方法,有的同学会问他们有什么差别呢?

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

    对于10g版本以上的服务器,使用exp通常不能导出0行数据的空表,而此时必须使用expdp导出。

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

    数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.

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

    一 备份:

    1)通过WIN+R CMD登录sqlplus,输入数据库用户名和密码进入sql

    2)创建逻辑目录(最重要的一步,不然会出现找不到目录)

    创建备份逻辑目录,此目录不是真实的目录(单引号里面的内容是备份的目录,可以先查看一下所有的目录:select * from dba_directories;)

    下面我们创建新的逻辑目录

    SQL>create or replace directory backup as 'E:oraclebfPDMIS';
    注意:'E:oraclebfPDMIS'; 引号里的目录,一定要手动创建好。用来存放oracle数据库备份文件。

    目录创建成功,记得quit切回CMD目录下,否则不能成功进行EXP或者expdp的备份。

    3)导出数据库

    退出数据库,进入DOS命令行界面,执行下列命令导出数据库

    expdp pdmis/pdmis@pdmis_test directory=backup schemas=pdmis dumpfile=pdmis_20190228.dmp logfile=pdmis_20190228.log

    directory=backup 和步骤二建立的逻辑目录进行关联(逻辑目录名=backup)

    schemas=pdmis  导出当前用户的数据(用户名=pdmis)

    dumpfile=pdmis_20190228.dmp

    logfile=pdmis_20190228.log    以上备份文件和日志文件都会存储在逻辑目录backup关联的真实路径下 E:oraclebfPDMIS

    4)查看导出文件

    查看文件存储的目录。

    二 备份还原前的准备

    注:在本地或者另外一台电脑都可以进行还原

    1)删除表空间和用户

    用超级管理员身份登录 sys as sysdba

    2)创建表空间和用户,并给创建的用户授权

    三 备份还原

    1)通过WIN+R CMD登录sqlplus,输入数据库用户名和密码进入sql

    2)创建逻辑目录(最重要的一步,不然会出现找不到目录)(为什么需要创建两次逻辑目录,因为我是在另一台电脑进行的数据还原)

    创建备份逻辑目录,此目录不是真实的目录(单引号里面的内容是备份的目录,可以先查看一下所有的目录:select * from dba_directories;)

    下面我们创建新的逻辑目录

    SQL>create or replace directory backup as 'D:oraclebfPDMIS';
    注意:'D:oraclebfPDMIS'; 引号里的目录,一定要手动创建好。用来存放oracle数据库备份文件。

     

    3)检查创建的真实目录

    将备份文件存放在逻辑目录连接的真实目录下

    4)导入备份文件

    DOS命令下执行下面的命令

    impdp pdmis/pdmis@orcl directory=backup dumpfile=pdmis_20190228.dmp logfile=20190228.log

    导入成功,有8个错误先忽略掉

    四:知识拓展

    用expdp导出数据

    1)导出用户
    expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp directory=dump_dir;

    2)导出表
    expdp scott/tiger@orcl tables=emp,dept dumpfile=expdp.dmp directory=dump_dir;

    3)按查询条件导
    expdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp tables=empquery='where deptno=20';

    4)按表空间导
    expdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmptablespaces=temp,example;

    5)导整个数据库
    expdp system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y;


    用impdp导入数据

    1)导入用户(从用户scott导入到用户scott)
    impdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp schemas=scott;

    2)导入表(从scott用户中把表dept和emp导入到system用户中)
    impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmptables=scott.dept,scott.emp remap_schema=scott:system;

    3)导入表空间
    impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example;

    4)导入数据库
    impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y;

    5)追加数据
    impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp schemas=systemtable_exists_action

  • 相关阅读:
    优化MyBatis配置文件中的配置
    Java多线程---同步与锁
    Runtime.getRuntime().exec()
    java ---线程wait/notify/sleep/yield/join
    redis配置详情
    httpcline
    线程
    Bootstrap学习(一)
    springmvc注解配置
    salesforce上上传和导出.csv格式文件
  • 原文地址:https://www.cnblogs.com/grisa/p/10450923.html
Copyright © 2011-2022 走看看