我为我的生活设置了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 回答
首先确保您可以为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
首先,您应该检查连接
sqlplus> BOB /密码@ localhost:1521 / pdbname
如果无法连接,请使用sys / as sysdba连接然后使用命令:
SQL> alter session set container = pdbname
SQL> alter pluggable database pdbname open
然后退出并再次尝试你的命令 . :)