我在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.
答案 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
现在导入已按预期进行。