使用expdp和impdp迁移Oracle数据库
为了成功地将模式从一个数据库(11GR1)迁移到另一个数据库(11GR2),目标数据库是否需要准备表空间和/或用户(模式) 目前我只能使用11GR1数据库进行测试。我的测试是导出模式并将其导入同一数据库中的新模式使用expdp和impdp迁移Oracle数据库,oracle,oracle11g,database-migration,impdp,Oracle,Oracle11g,Database Migration,Impdp,为了成功地将模式从一个数据库(11GR1)迁移到另一个数据库(11GR2),目标数据库是否需要准备表空间和/或用户(模式) 目前我只能使用11GR1数据库进行测试。我的测试是导出模式并将其导入同一数据库中的新模式 expdp system/systempass schemas=oldschema 之后,我尝试使用以下工具导入它: impdp system/systempass expdat.dmp remap_schema=oldschema:newschema 但这导致了错误: UDI-0
expdp system/systempass schemas=oldschema
之后,我尝试使用以下工具导入它:
impdp system/systempass expdat.dmp remap_schema=oldschema:newschema
但这导致了错误:
UDI-00014: invalid value for parameter, 'attach'
newschema
我认为调用impdp时参数的顺序不正确。应采用以下形式:
impdp username/password DUMPFILE=<filename> [and then whatever other parameters you need for your import]
impdp username/password DUMPFILE=[然后输入所需的任何其他参数]
由于您正在进行“迁移”,我假设这是一个完整的导入/导出,在这种情况下,您可能需要:
impdp username/password DUMPFILE=<filename> FULL=Y
impdp用户名/密码DUMPFILE=FULL=Y
关于您当前在同一db内的测试,我建议您退房:
对于两个示例如果在导入过程中未使用ATTACH参数,请打开一个新的命令行窗口并运行导入,现在应该可以工作了。对我来说,环境变量是相同的,但有些是如何工作的。我知道很多人来这里是为了: “UDI-00014:参数值无效”错误,与我一样。对于这些人,我的情况如下 我有一个不同的场景,对我来说,它抱怨“remap_schema”参数。我似乎需要在如下值中添加双引号: 之前(失败) impdp user/password directory=dump\u dir dumpfile=myfile.dmp remap\u schema=my\u schema:my\u schema remap\u tablespace=my\u schema:my\u schema logfile=mylog.log 之后(已工作)
impdp user/password directory=dump\u dir dumpfile=myfile.dmp remap\u schema=“my\u schema”:“my\u schema”remap\u tablespace=“my\u schema”:“my\u schema”logfile=mylog.log谢谢,我没有看到错误的参数,我确信是其他原因造成的。以防万一:我遇到这个问题是因为我在写转储文件名,但丢失了“dumpfile=”在路上的某个地方。
impdp username/password DUMPFILE=<filename> FULL=Y