如何将数据泵导出文件从XE 11g导入到XE 18c

时间:2019-07-14 13:28:55

标签: oracle11g oracle-xe impdp oracle18c pluggable-database

我在11g XE上生成了datapump单模式导出。 我想将其导入18c XE。

我正在使用命令行impdp。

起初,我收到消息:

UDI-01017: operation generated ORACLE error 1017
ORA-01017: invalid username/password; logon denied

稍后,经过一些修复,我转为错误:

UDI-12154: operation generated ORACLE error 12154
ORA-12154: TNS:could not resolve the connect identifier specified

我还没有找到任何文章来说明我需要做的所有步骤,因此,在找到解决方案之后,我决定写这篇文章,以便其他人可以从中受益。

必须为可插入数据库服务提供tns名称条目。 典型条目:

XEPDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = computer-name)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XEPDB1)
    )
  )

然后,在运行impdp时,您有两个选择。

如果您在命令行中写入身份验证数据,则该数据必须采用username / password @ xepdb1的格式(对于需要的用户,主机名是可选的)。 如果在提示符下写入身份验证数据,则首先键入username @ xepdb1,然后键入密码。

我几乎使用DATA_PUMP_DIR来转储文件。 请记住,有一个子目录,其名称包含所讨论的可插拔数据库的GUID,每个这样的数据库一个。因此,我将转储文件放入特定的以GUID命名的子目录。

然后我像下面的代码一样执行命令行,并在提示符下键入auth数据。

impdp DUMPFILE=EXP-SERVICEDATA.DMP LOGFILE=EXP-SERVICEDATA.LOG DIRECTORY=DATA_PUMP_DIR SCHEMAS='servicedata' CONTENT=ALL STATUS=15
```none

Now import worked as expected.
Let me know if it worked for you.

1 个答案:

答案 0 :(得分:0)

这是我的解决方法(引自最初的帖子)。

必须为可插入数据库服务提供tns名称条目。典型条目:

XEPDB1 =   (说明=     (地址=(协议= TCP)(主机=计算机名)(端口= 1521))     (CONNECT_DATA =       (服务器=专用)       (SERVICE_NAME = XEPDB1)     )   )

然后,在运行impdp时,您有两个选择。

如果您在命令行中写入身份验证数据,则该数据必须采用username / password @ xepdb1的格式(对于需要的用户,主机名是可选的)。 如果在提示符下写入身份验证数据,则首先键入username @ xepdb1,然后键入密码。

我几乎使用DATA_PUMP_DIR来转储文件。请记住,有一个子目录,其名称包含所讨论的可插拔数据库的GUID,每个这样的数据库一个。因此,我将转储文件放入特定的以GUID命名的子目录。

然后我像下面的命令一样执行命令行,并在提示符下键入auth数据。 impdp DUMPFILE = EXP-SERVICEDATA.DMP LOGFILE = EXP-SERVICEDATA.LOG DIRECTORY = DATA_PUMP_DIR SCHEMAS ='servicedata'CONTENT = ALL STATUS = 15

现在导入已按预期进行。