在oracle数据库12c中恢复oracle 10g .dmp文件时出错

时间:2014-04-28 12:15:08

标签: oracle import restore dump oracle12c

我有一个用Oracle 10g创建的.dmp文件,其中包含我的一个客户端的数据库。我不能为我的生活安装我的12c安装。我可以使用https://localhost:5500/em

连接到我的数据库

我创建了一个用户' BOB'在我想要的PDB中,并授予导入,读取和写入权限。接下来,我尝试使用以下命令导入:

impdp BOB/password@//localhost:1521/pdbname full=y directory=dpdump_dir dumpfile=BOB.dmp

然而,这给了我以下错误:

UDI-12541:操作生成ORACLE错误12541

ORA-12541:TNS:侦听器当前不知道连接描述符

中请求的服务

在listener.ora和tnsnames.ora中,我有EZCONNECTOR和端口1521.有谁知道如何让它工作?

非常感谢, 鲍勃

2 个答案:

答案 0 :(得分:0)

首先确保您可以为pdbname执行tnsping以确保数据库连接: - $ tnsping bdbname 如果通过tnsping获取连接字符串的详细信息,可以尝试使用以下格式的命令: impdp bob/password@127.0.0.1:1521 / pdbname directory = dpdump_dir dumpfile = BOB.dmp

我已删除“full = y”,因为如果您没有恢复完整数据库则不需要它,特别是它使用了imp / exp实用程序。

您应该记住,在您的示例中,pdbname被指定为dbname / service_name。您可以通过以下命令确认service_name: $ lsnrctl服务; / *您可以获取服务名称并将其放在impdp命令中。 * /

此外,您可以在不指定ip,port和dbname的情况下尝试在localhost本身中工作: $ impdp bob / password directory = dpdump_dir dumpfile = BOB.dmp

答案 1 :(得分:0)

首先,你应该检查连接
SQLPLUS> BOB /密码@本地:1521 / pdbname

如果无法连接,请使用sys / as sysdba进行连接 然后使用命令:
 SQL> alter session set container = pdbname
 SQL> alter pluggable database pdbname open

然后退出并再次尝试你的命令。 :)