• 1.oracle的备份和恢复之expdp和impdp命令01


    1.前言

      oracle常用的备份工具是导出工具expdp和导入命令impdp命令

    2.使用

      2.1.创建备份目录  

    create or replace directory  exp as '/home/oracle/backup/exp';##创建文件

      2.2.给某个用户赋予对这个备份目录权限

    grant read,write on directory exp to system;       ##比如说给这个system用户赋予对这个目录读写权限
    grant 'EXP_FULL_DATABASE' to system;          ##给system用户赋予数据导出权限

      2.3数据导出

    ##导出全库
    expdp system/system#123 directory=exp dumpfile=实例名_expdp%U.dmp logfile=实例名_expdp.log schemas=用户1,用户2,... exclude=statistics parallel=4
    ##导出system用户下的t表
    expdp system/system#123 directory=exp tables=system.t dumpfile=表名_expdp%U.dmp logfile=表名_expdp.log exclude=statistics parallerl=4

    导入完成后若有报错:可以执行grep ORA-实例名_expdp.log 快速地查找错误

      2.4数据的导入

    1.create or replace directory  imp as '/home/oracle/backup/imp';##创建文件
    2.grant read,write on directory imp to system;
    3.grant 'imp_ful_database' to system ##赋予导入权限
    ##全库导入
    impdp system/system#123 directory=imp dumpfile=实例名_expdp%U.dmp logfile=实例名_impdp.log full=y parallel=2

      补充,以上是在一台oracle服务器上就行备份和恢复的,其实在生产中我们用的比较多的是两台oracle服务器上进行数据的迁移和恢复

    3.情景

     如果有oracle两台服务器,其中一台是旧的,一台是新的,这里要求:需要将就的数据库中的数据迁移到新的数据库中

     说明:这里的关于一些准备工作暂时就不说了,比如说有关于旧库中的基线、还有旧库中的待迁移的对象(这个是重点)等等

     这里只说说关于数据的导入和导出:

     源库上操作:  

    ##创建存放dump文件的目录,并授予导出和导入用户读写权限,目录需要有足够空间存放dump,也可以使用默认的data_pump_dir.
    create directory <exp_tab_dir> as '/oradata/ext_tab';   
    grant read,write on directory <exp_tab_dir> to <exp_user>; 
    #授予导出用户EXP_FULL_DATABASE权限
    grant 'EXP_FULL_DATABASE' to <exp_user>; 

     源库上进行数据导出(全库)

    expdp <exp_user>/password directory=data_pump_data   dumpfile=实例名_expdp%U.dmp logfile=实例名_expdp.log schemas=<schema_name1>,<schema_name2>   exclude=statistics parallel=4

    该命令会将源库中的数据导出到data_pump_data这个目录下,该data_pump_data只是一个虚拟名,对应的真实路径是在create directory时 as后面的内容此时它实际上的目录,

    目标库中操作

    create directory <imp_tab_dir> as '/oradata/imp_tab';
    grant read,write on directory <imp_tab_dir> to <imp_user>; 
    #授予导入用户EXP_FULL_DATABASE权限
    grant 'imp_FULL_DATABASE' to <imp_user>; 

    当上述源库的数据被导出后,然后再把导出的数据库给放在目标库中对应的目录下面,在这里就是我在上面创建的as后面的路径/oradata/imp_tab

    目标库进行数据的导入(全库)

    impdp <exp_user>/password directory=<imp_tab_dir>    dumpfile=实例名_expdp%U.dmp logfile=实例名_impdp.log   full=y parallel=4

    注意:

    • 在创建导出和导入目录都用data_pump_dir,这里也可以用别的名字替代,然后导出的实际路径用/oradata/exp_tab, 导入的实际路径用/oradata/imp_tab
    • 以上两个实际的路径需要我们用oracle用户用户下手工进行创建出来
    • 导出和导入的dumpfile后面的内容一定要相同,而logfile后面的内容可以不相同,但最好一个实例名_expdp.log 另一个是实例名_impdp.log.  

      

     

     

      

      

      

  • 相关阅读:
    provider: Shared Memory Provider, error: 0
    用户 'sa' 登录失败。 (Microsoft SQL Server,错误: 18456)
    从sqlite 迁移到mysql报错,处理 D:seafile-server_5.0.3_win32seafile-server-5.0.3seahubsql 重新执行这个SQL
    org.apache.jasper.runtime.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl
    java.lang.NoClassDefFoundError: org/apache/log4j/spi/ThrowableInformation
    无法完成操作。服务无法在此时接受控制信息。
    MyEclipse出现Unable to install breakpoint in...
    ERROR 1364 (HY000): Field 'id' doesn't have a default value
    各地都在搞大数据,你的家乡有啥特色没——解读2017年地方政府大数据报告
    HTML5桌面通知:notification
  • 原文地址:https://www.cnblogs.com/zmc60/p/15356853.html
Copyright © 2020-2023  润新知