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