0

我在 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

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

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

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

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

如果您在命令行中写入身份验证数据,则必须采用用户名/密码@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.
4

1 回答 1

0

这是我的解决方案(引用初始帖子)。

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

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

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

如果您在命令行中写入身份验证数据,则必须采用用户名/密码@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

现在导入按预期工作。

于 2019-07-14T18:34:20.267 回答