首页 文章

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

提问于
浏览
0

我为我的生活设置了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.ora和tnsnames.ora中,我有EZCONNECTOR和端口1521.有谁知道如何让它工作?

非常感谢鲍勃

2 回答

  • 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 services; / *您可以获取服务名称并将其放在impdp命令中 . * /

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

  • 0

    首先,您应该检查连接
    sqlplus> BOB /密码@ localhost:1521 / pdbname

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

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

相关问题