zoukankan      html  css  js  c++  java
  • oracle导入命令impdp中cluster选项的作用

    oracle导入命令impdp中cluster选项的作用

    发现问题

    同事反映在使用oracle的impdp命令导入的时候,报以下错误:

    最开始以为目录不正确,在数据库中使用命令select * from dba_directories查看directory的路径是正确的,dumpfile文件也确实在正确的目录下。再排查目录的权限也是正确的。

    找出原因

    这时候,另外一个同事也做了同样的导入动作,但是并没有报错。经过对比,发现没有出现问题的同事加了一个参数cluster=N。那肯定是这个参数的问题,使用命令impdp -help,得到如下解释:

    CLUSTER
    Utilize cluster resources and distribute workers across the Oracle RAC [YES].
    --通过Oracle RAC来利用集群的资源和分布的工人(工人应该就是指实例,但是极其笼统,反正我是没看出来啥意思)
    

    虽然没看明白啥意思,但是可以定位到因为是RAC的原因导致的。继续找oracle rac cluster相关的关键字,找到如下描述:

    Using PARALLEL During An Export In An Oracle RAC Environment
    
    In an Oracle Real Application Clusters (Oracle RAC) environment, if an export operation has PARALLEL=1, then all Data Pump processes reside on the instance where the job is started. Therefore, the directory object can point to local storage for that instance.
    
    If the export operation has PARALLEL set to a value greater than 1, then Data Pump processes can reside on instances other than the one where the job was started. Therefore, the directory object must point to shared storage that is accessible by all instances of the Oracle RAC.
    

    cluster=n的时候,多个并行使用的是同一个实例进行导出和导入。但是如果cluster=y的时候,如果没开并行,使用一个实例,如果开了并行,这时候,会使用多个实例。但是directory并不是在一个共享目录中,因此另外一个实例会因为找不到directory而报错。

    解决方法

    1. cluster=nparallel=10组合,开并行,但是关闭集群导入导出。
    2. cluster=yparallel=1,关闭并行,可以打开集群导入导出,但是这是没有意义的,即使打开,也没有起效。
    3. cluster=yparallel=10directory在共享目录上,可以同时使用集群导入和并行。
  • 相关阅读:
    volatile关键字
    线程的状态
    java中的匿名内部类
    java高精度实数和小数
    JS、JSP、ASP、CGI
    论文结构要求
    java中的标识符、关键字、保留字
    java IODemo
    Bagging和Boosting的区别
    由Memcached升级到 Couchbase的 Java 客户端的过程记录(一)
  • 原文地址:https://www.cnblogs.com/monkey6/p/14410808.html
Copyright © 2011-2022 走看看