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

How to import datapump export file from XE 11g to XE 18c

我在 11g XE 上生成了数据泵单一模式导出。 我想导入到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

我还没有找到任何文章解释我需要做的所有步骤,所以,在找到(我的)解决方案后,我决定写这篇文章 post 以便其他人可以从中受益。

您的可插拔数据库服务必须有 tns 名称条目。 典型条目:

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

那么,当运行 impdp时,你有两个选择。

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

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

然后我像下面这样执行命令行,并在提示符下输入身份验证数据。

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.

这是我的解决方案(引自初始 post)。

您的可插拔数据库服务必须有 tns 名称条目。典型条目:

XEPDB1 = (说明 = (地址 =(协议 = TCP)(主机 = computer-name)(端口 = 1521)) (CONNECT_DATA = (服务器 = 专用) (SERVICE_NAME = XEPDB1) ) )

那么,当运行 impdp时,你有两个选择。

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

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

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

现在导入工作正常。