当前位置:  开发笔记 > 编程语言 > 正文

如何在不同的表空间中导入oracle转储

如何解决《如何在不同的表空间中导入oracle转储》经验,为你挑选了3个好方法。

我想将oracle转储导入另一个表空间.

我有一个用户A使用的表空间.我已经撤销了这个用户的DBA并给了他补助连接和资源.然后我用命令抛弃了所有东西

exp a/***owner = a file = oracledump.dmp log = log.log compress = y

现在我想将转储导入用户B使用的表空间B.所以我给了他关于连接和资源的授权(没有DBA).然后我执行了以下导入:

imp b/***file = oracledump.dmp log = import.log fromuser = a touser = b

结果是一个包含大量错误的日志:

IMP-00017:以下语句因ORACLE错误20001失败:"BEGIN DBMS_STATS.SET_TABLE_STATS IMP-00003:ORACLE错误20001遇到ORA-20001:输入值无效或不一致

之后我尝试了相同的导入命令,但选项statistics = none.这导致以下错误:

ORA-00959:表空间'A_TBLSPACE'不存在

该怎么做?

注意:很多列都是CLOB类型.看起来问题与此有关.

注2:oracle版本是9.2,10.1和10.1 XE的混合.但我不认为它与版本有关.



1> Andrew..:

你在这里遇到了几个问题.

首先,您正在使用的Oracle的不同版本是表统计信息错误的原因 - 当我们的一些Oracle 10g数据库升级到版本2时,我遇到了同样的问题,而且有些版本仍在版本1上,而且我正在交换.它们之间的DMP文件.

对我有用的解决方案是使用相同版本的工具expimp工具在不同的数据库实例上进行导出和导入.通过使用相同的PC(或Oracle Server)发出所有导出和导入命令,这是最容易做到的.

其次,我怀疑你是ORA-00959: tablespace 'A_TBLSPACE' does not exist因为你正试图将一个.DMP文件从一个完整的Oracle数据库导入到10g Express Edition(XE)数据库中,默认情况下,该数据库会创建一个预定义的表空间USERS.您.

如果是这种情况,那么你需要做以下事情..

    使用.DMP文件,创建包含结构(表)的SQL文件:

    imp /@XE file= indexfile=index.sql full=y

    在文本编辑器中打开indexfile(index.sql),该编辑器可以查找并替换整个文件,并在IN ORDER中发出以下查找和替换语句(忽略单引号..'):

    Find: 'REM' Replace:

    Find: '""' Replace: '"USERS"'

    Find: '...' Replace: 'REM ...'

    Find: 'CONNECT' Replace: 'REM CONNECT'

    保存索引文件,然后针对您的Oracle Express Edition帐户运行它(我发现最好创建一个新的空白XE用户帐户 - 或者如果我正在刷新则删除并重新创建):

    sqlplus /@XE @index.sql

    最后运行相同的.DMP文件,您使用相同的帐户创建索引文件,以导入数据,存储过程,视图等:

    imp /@XE file= fromuser= touser= ignore=y

在尝试创建某些对象(例如数据库作业)时,您可能会收到Oracle错误页面,因为Oracle将尝试使用相同的数据库标识符,这很可能会因为您位于不同的数据库而失败.



2> 小智..:

如果您使用的是Oracle 10g和datapump,则可以使用REMAP_TABLESPACE子句.例:

REMAP_TABLESPACE=A_TBLSPACE:NEW_TABLESPACE_GOES_HERE



3> 小智..:

对我来说这项工作没问题(Oracle数据库10g快捷版10.2.0.1.0版):

impdp B/B full=Y dumpfile=DUMP.dmp REMAP_TABLESPACE=OLD_TABLESPACE:USERS

但是对于新的恢复,您需要新的表空间

PS也许有用http://www.oracle-base.com/articles/10g/OracleDataPump10g.php

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有