Oracle sqlplus远程连接提供ORA-21561

Oracle sqlplus远程连接提供ORA-21561,oracle,sqlplus,Oracle,Sqlplus,我已经根据给出的说明安装了sqlplus 这给了我错误 SQL*Plus: Release 11.2.0.4.0 Production on Fri Jul 10 16:10:38 2015 Copyright (c) 1982, 2013, Oracle. All rights reserved. ERROR: ORA-21561: OID generation failed Enter user-name: 这个问题的解决方案是什么 PS:我已经添加了主机名,主机已经有了价值。

我已经根据给出的说明安装了sqlplus

这给了我错误

SQL*Plus: Release 11.2.0.4.0 Production on Fri Jul 10 16:10:38 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

ERROR:
ORA-21561: OID generation failed


Enter user-name: 
这个问题的解决方案是什么


PS:我已经添加了主机名,主机已经有了价值。

试试这个,不要加单引号

sqlplus username/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.100)(PORT=1521))(CONNECT_DATA=(SID=ORCL)))

将服务器名称附加到主机文件

如果您的/etc/hosts文件如下所示:

127.0.0.1   localhost localhost.localdomain
应改为:

127.0.0.1   localhost localhost.localdomain hostname

主机名可以通过命令“hostname”获得。

此问题也可能是由于对
/etc/hosts
文件的错误权限造成的。如果Oracle uid不可读,则会显示错误

确保每个人都能阅读您的/etc/hosts:

$ ls -l /etc/hosts
-rw-r--r--    1 root     system        7446 Mar 28 23:03 /etc/hosts 
$
得到了答案

1-获取您的主机名:

$hostname

新主人

2-更改/etc/hosts的内容:

$sudo cat/etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

$sudo nano/etc/hosts

$sudo cat/etc/hosts

127.0.0.1本地主机新主机

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6


希望这对您有所帮助(:

如果您正在使用Mac,请在/etc/hosts中的127.0.0.1中添加本地计算机名

就像

127.0.0.1       localhost <local_computer_name>
127.0.0.1本地主机
查找本地计算机名的方法

系统首选项>共享(如果找不到,请搜索) 在顶部可以看到您的本地计算机名


或者您可以使用“hostname”命令获取本地计算机名

查看/etc/sysconfig/network
如果需要,请更改主机名

dbvar=“(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.100)(PORT=1521))(CONNECT_DATA=(SID=ORCL))”sqlplus用户名/密码@$dbvarSame错误。错误:ORA-21561:OID生成失败查看主机文件/etc/hosts中的内容此IP应有条目。127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain 4::1 localhost localhost.localdomain localhost6.localdomain 6 192.168.0.100 MYORACLE~~这很可能是一个
/etc/hosts
问题。首先,您使用的是Oracle的XE版本吗?其次,您在
/etc/hos中有行吗ts
对于指定了正确的完全限定主机名的192.168.0.100?换句话说,如果
hostname
在运行Oracle实例的计算机上执行时返回
my pretty computer
,请执行
nslookup“my pretty computer”
-这将返回完全限定的主机名。我没有使用XE。我应该在何处从192.168.0.100计算机或在本地计算机上运行nslookup?假设您的网络配置正确,在何处运行
nslookup
。您可以尝试在两个位置运行它,以确保获得相同的响应!:-)nslookup“my pretty computer”服务器:8.8.8.8地址:8.8.8#53**服务器找不到我的pretty computer:NxDomainHats来自oracle Machine我发现这也解决了问题,即使我的服务器位于远程系统上,而不是本地。有人能解释为什么它会有帮助吗?它确实对我有用,但我使用的是AWS机器,在“弹性”事件中我无法轻松地进行这些更改。还有其他方法可以完成同样的事情吗?也许设置一些环境变量?对我来说是有效的,即使我的Oracle数据库位于远程计算机上。这似乎是mac的常见问题。帮助我连接到docker oracle容器
127.0.0.1       localhost <local_computer_name>