0

我有一个使用 Oracle 10g 创建的 .dmp 文件,其中包含我的一个客户的数据库。我无法用我的 12c 安装来设置它。我可以使用连接到我的数据库https://localhost:5500/em

我在所需的 PDB 中创建了一个用户“BOB”并授予了导入、读取和写入权限。接下来我尝试使用以下命令导入:

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

但是,这给了我以下错误:

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

ORA-12541: TNS:listener 当前不知道连接描述符中请求的服务

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

非常感谢,鲍勃

4

2 回答 2

0

首先确保您可以对 pdbname 执行 tnsping 以确保 db connect :- $ tnsping bdbname 如果您通过 tnsping 获取连接字符串的详细信息,您可以尝试以下格式的命令:impdp bob/password@127.0.0.1:1521/pdbname directory= dpdump_dir 转储文件=BOB.dmp

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

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

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

于 2014-05-08T04:06:04.123 回答
0

首先,你应该检查连接
sqlplus> BOB/password@localhost:1521/pdbname

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

然后退出并再次尝试执行您的命令。:)

于 2014-11-19T15:22:10.123 回答