如何在不同的表空间中导入oracle转储
我想将一个oracle转储导入到不同的表空间。
我有一个用户A使用的表空间A.我已撤销该用户的DBA,并授予他的连接和资源。然后我用命令转储了一切
现在我想导入转储到用户B使用的表空间B.所以我给他授予连接和资源(没有DBA)。然后我执行了以下导入:
结果是具有大量错误的日志:
之后,我尝试了相同的导入命令,但选项statistics = none。这导致以下错误:
应该怎么做呢? 注意:很多列的类型是CLOB。它看起来像问题有关的。 注2:oracle版本是9.2,10.1和10.1 XE的混合。但我不认为它与版本有关。 你在这里有几个问题。首先,您使用的Oracle的不同版本是表统计错误的原因 – 我有一个问题,当我们的一些Oracle 10g数据库升级到版本2,一些仍然在版本1和我正在交换。 DMP文件。 对我有用的解决方案是使用相同版本的exp和imp工具在不同的数据库实例上导出和导入。通过使用同一台PC(或Oracle Server)发出所有导出和导入命令,这是最容易的。 其次,我怀疑你得到的ORA-00959:tablespace’A_TBLSPACE’不存在,因为你试图将一个.DMP文件从一个成熟的Oracle数据库导入到10g快速版(XE)数据库,默认情况下为您创建一个名为USERS的单个预定义表空间。 如果是这样,那么您需要执行以下操作。 >使用.DMP文件,创建包含结构(Tables)的SQL文件: imp< xe_username> /< password> @XE file =< filename.dmp> indexfile = index.sql full = y 查找:“REM< space>替换:< nothing> 查找:’“< source_tablespace>”’替换:’“USERS”’ 查找:’…’替换:’REM …’ 查找:“CONNECT”替换:“REM CONNECT” sqlplus< xe_username> /< password> @XE @ index.sql imp< xe_username> /< password> @XE file =< filename.dmp> fromuser =< original_username> touser =< xe_username> ignore = y 当尝试创建某些对象(如数据库作业)时,您可能会收到Oracle错误的页面,因为Oracle将尝试使用相同的数据库标识符,这将很可能会失败,因为您在不同的数据库。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |