2 zerogsone1209 zerogsone1209 于 2013.07.11 10:45 提问

oracle11G使用expdp、impdp导出导入数据库问题

问题描述:我使用oracle11G开发,表空间名称叫TBS_A,得知客户服务器表空间创建成了TBS_B,为了更方便导出数据库到客户服务器,就在自己的数据库也创建了个同名表空间TBS_B。然后将我自己的数据使用imp(不是dp)从TBS_A导入到了TBS_B,然后将自己TBS_B的表空间使用expdp导出成10G版本。但是拿到客户那,使用impdp导入时却提示我TBS_A表空间不存在

我想问,我导出的是自己数据库的TBS_B,为什么到客户那会提示最初数据库表空间的名字不存在。

最后加了个 remap_tablespace参数解决,但是不明白为什么会提示最初那个表空间不存在。

1个回答

zerogsone1209
zerogsone1209   2013.08.01 11:06
已采纳

最后解决的方法是

1.使用PL/SQL “导出用户对象”,会生成一个以原有表空间的表结构。替换下关键,例如原有表空间名为“test1”,使用Editplus打开生成的Sql文件将所有“test1”的关键字替换为“要导入的表空间名”。

2.使用PL/SQL “导入表”,将刚才改好SQL文件导入,此时在当前用户下的默认表空间里已经生成表结构。

3.使用exp命令将数据库导出:
exp 用户名/密码@192.168.1.158/orcl owner=用户 grants=y file=D:\backup\ZLQHWEB_DATA.dmp log=D:\backup\ZLQHWEB_LOG.log

4.使用imp命令导入:
imp zlwb/zlwb@192.168.1.158/orcl full=y ignore=y file=D:\backup\ZLQHWEB0712_DATA.dmp
因为是不同表空间导入所需需要设置full=y,因为已经存在相应的表结构,所以需要设置ignore=y。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!