Oracle中的impdp.为什么不创建用户?

Car*_*les 5 oracle database-migration datapump impdp

我是甲骨文的新手,我正面临着麻烦impdp.我有一个生产服务器,我已经创建了一个新的服务器用于测试目的,所以我安装了centos,oracle并创建了数据库"sire".现在,我使用以下命令从生产服务器进行转储:

expdp system/password@sire full=Y 
directory=pump_dir dumpfile=sire_dump.dmp logfile=sire.log
Run Code Online (Sandbox Code Playgroud)

我来到新服务器,我执行impdp:

    impdp system/password@sire full=Y 
directory=pump_directorio dumpfile=sire_dump.dmp logfile=sire_imp.log
Run Code Online (Sandbox Code Playgroud)

它开始进行导入,但后来我收到错误,例如:

"用户vberrios不存在".还有错误因为它找不到一些模式和表空间.

我的问题是:不应该impdp full=Y导入所有用户和模式?我已经读过我必须在目标服务器中创建用户,但我在数据库中有大约300个用户.如何在空服务器中执行完全导入.我只想导入完整的数据库和用户以及所有对象.

ste*_*hke 0

文档指出,当转储文件包含创建用户语句时,impdp 将创建使用:

如果您要重新映射到的架构尚不存在,则导入操作会创建它,前提是转储文件集包含必要的 CREATE USER 元数据并且您使用足够的权限进行导入。

因此,要么您的转储文件不完整(例如由于缺少权限),要么您缺乏目标数据库的权限。

因此,请检查您对源数据库和目标数据库的权限。请根据信息更新您的问题。要导出包含架构定义,您必须具有该DATAPUMP_EXP_FULL_DATABASE权限。