• ORA-39070


    背景介绍:

    项目以前建立的库,表空间文件文件比较多,问了一下dba,了解到表空间建立很多没有带来优惠(都在一块磁盘上),效率也不会提高;现在要进行新库的迁移(目前使用的是asm磁盘组rac集群),正好把多个表空间变成一个表空间

    环境:

      原库:win2008,64位,oracle11g

      目标库:centos6.4,64位,oracle11g

    过程:

    一、win导出:

      sql> CREATE OR REPLACE DIRECTORY dpdata AS 'F:data_bak';--必须在server端执行,并且这个文件必须在server端有

      sql>grant read,write on directory dpdata to t1;

      退出sql在cmd的命令行执行:expdp t1/t1@orclsc directory=dpdata dumpfile=full.dmp schemas=t1

      注释:相关的expdp、impdp的命令可以查看网上说明,shcemas表示导出的用户,即上面的命令表示导出t1用户下的所有东东,文件和日志生成在f:data_bak下,会看到有full.dmp和一个export.log文件(这可用参数logfile指定)

      sql>select file_name,tablespace_name from dba_data_files;--查看目前的表空间,记录一下,比如:tp1,tp2等

    二、linux下导入:

      1、把full.dmp上传到linux服务器,比如/home/data下

      2、给此目录授权,即可以读写的权限,网上可以搜一下,例如: chmod  -R 777 /home/data

      3、建立用户和表空间:这个不说了(例如用户test1,表空间tp)

      4、sql>create directory dpdata as '/home/data';

        sql>grant read,write on directory expdp_dir to test1;

           [oracle@db-1 ~]$ impdp test1/test1 directory=dpdata dumpfile=FULL.DMP remap_schema=t1:test1 remap_tablespace=tp1:tp,tp2:tp

        ok到这里,基本就结束了,下面说一下会遇到的问题,例如:

    ORA-39002: invalid operation

    ORA-39070: Unable to open the log file.

    ORA-29283: invalid file operation

    ORA-06512: at "SYS.UTL_FILE", line 475

    ORA-29283: invalid file operation

    无论expdp还是impdp都可能报这些问题,我这里列举一下我的原因:

    1、create directory的文件不存在,必须存在,必须在server端,也就是数据库的服务器上存在

    2、linux的时候,这个‘/home/data’这个文件夹的权限必须有,我用的oracel的用户进行impdp的,所以oracle这个用户对这个文件夹要有读写权限。

    3、impdp的时候,dumpfile的文件名(FULL.DMP)大小写敏感

    4、我自己遇到的rac环境下的sid的问题:impdp的时候加上sid报错,不加反而能导进去;应该是单节点的问题,这个以后注意一下

  • 相关阅读:
    【Java例题】8.1手工编写加法器的可视化程序
    【Java例题】7.6文件题3-文本文件统计
    【Java例题】7.4 文件题1-学生成绩排序
    【Java例题】7.5 文件题2-学生成绩统计
    【Java例题】7.3 线程题3-素数线程
    Map
    sql常用函数
    面向对象的理解
    attr
    webService之wsdl文档
  • 原文地址:https://www.cnblogs.com/aishangyizhihu/p/4691367.html
Copyright © 2020-2023  润新知