我谷歌[d]出现此错误 ORA-12560:TNS:协议适配器错误但无法找到实际原因以及如何解决此错误?
任何人都可以告诉我解决登录问题的完美解决方案。
答案 0 :(得分:77)
转到开始 - >运行 - > Windows中的Services.msc。
找到 OracleService< SID> (此处为OracleServiceORCL
)并单击Start
以启动oracle数据库服务(如果尚未运行)
启动并运行后,从命令提示符运行以下命令:
tnsping < tnsalias >
( tnsalias 条目,您可以在tnsnames.ora
文件中找到它)
答案 1 :(得分:23)
就我而言,OracleService
中描述的Windows Services.msc
中没有C:\> ORADIM -NEW -SID ORCL
(OracleServiceORCL)。
我执行了这个命令:
OracleService
然后调用OracleServiceORCL的{{1}}刚出现并在Services.msc中启动。非常好。
答案 2 :(得分:22)
似乎数据库不起来。这可能是由于重新启动机器而实例未设置为自动启动,因此在从服务屏幕启动后不会以实时方式启动。
只需转到命令提示符
设置Oracle SID C:&gt;设置oracle_sid = ORCL
现在运行 Net start 命令。 C:&gt; net start oracleserviceORCL
答案 3 :(得分:9)
在环境中添加以下变量和值以标识tnsnames.ora文件的位置:
TNS_ADMIN
C:\ ORACLE \产品\ 10.2.0 \的Client_1 \网络\管理员
答案 4 :(得分:5)
,如果出现此错误,可以通过键入来避免此错误 sqlplus / nolog
然后你可以连接 conn user / pass @host:port / service
答案 5 :(得分:3)
这通常意味着听众还没有开始。检查“服务”面板。
在Windows上(因为您),另一个常见原因是注册表中未定义ORACLE_SID。编辑注册表或在CMD框中设置ORACLE_SID。 (因为你想运行sqlplusw.exe我建议你编辑注册表。)
答案 6 :(得分:2)
我已经轻松解决了这个问题。我的oracle过去运行得很好。我安装MS SQL Server之后就注意到了这个问题。我刚刚在我的机器上卸载了MS SQL Server,然后问题就消失了。确保在此之后重新启动计算机。现在我可以再次通过SQLPlus连接到Oracle数据库。我的猜测是两者之间存在一些冲突。希望这会有所帮助。
答案 7 :(得分:2)
经过搜索后得到了一个简单的方法来解决它。 只需按照步骤操作即可。
lsnrctl status
现在打开以下目录中的listener.ora
文件:C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN
右键单击My Computer
可以获取计算机名称并检查计算机名称,并将主机参数替换为您的计算机名称,如下所示:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = Electron-PC)(PORT = 1521)
)
)
)
所以在这里你可以观察HOST = Electron-PC
,这是我的电脑名称。
保存listener.ora文件并再次返回cammand propt
3.在命令提示符lsnrctl start
这将启动OracleTNSListner
。
您可以通过打开任务管理器的服务选项卡在服务中进行检查。如果没有自动启动,你可以启动它。
就是这么多,你准备再次在oracle上工作了。
最好的运气。
答案 8 :(得分:2)
另一个可能对我有用的解决方案......考虑到我使用本地登录作为dba权限。
按照步骤进入服务。右键单击实例并转到“登录”? (可能不是名称,但它是包含权限的选项卡之一)。更改设置以使用LOCAL。
答案 9 :(得分:1)
如果上述工作都没有,那么试试这个:
修改LISTENER.ora
(我的位于:oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
)==&gt;添加一个指向您的数据库(SID)的自定义侦听器,例如我的SID是XZ0301,所以:
## Base XZ03001
SID_LIST_LISTENER_XZ03001=(SID_LIST=(SID_DESC=(ORACLE_HOME =
E:\oracle\product\11.2.0\dbhome_1)(SID_NAME= XZ03001)))
LISTENER_XZ03001=(DESCRIPTION_LIST=(ADDRESS=(PROTOCOL =
TCP)(HOST=MyComputerName)(PORT= 1521)))
DIAG_ADR_ENABLED_LISTENER_XZ03001=ON
ADR_BASE_LISTENER_XZ03001=E:\oracle
重启您的机器
对于Windows 7,请使用以下命令修改LISTENER.ora: - 转到开始&gt;所有程序&gt;饰品 - 右键单击记事本,然后单击以管理员身份运行。 - 文件&gt;打开并导航到tnsnames.ora文件。 - 进行更改然后它应该允许您保存
答案 10 :(得分:1)
在我的情况下(对于OracleExpress)服务正在运行,但是在尝试通过没有连接标识符的sqlplus访问数据库时遇到了这个问题:
sqlplus sys/mypassword as sysdba
为了使其工作,我需要添加连接标识符(适用于Oracle Express的XE),因此以下命令可以正常工作:
sqlplus sys/mypassword@XE as sysdba
如果您仍然获得ORA-12560,请确保您可以ping XE服务。使用:
tnsping XE
你应该得到OK消息以及完整的连接字符串(tnsping命令位于oracle的安装目录:[oracle express installation dir] \ app \ oracle \ product \ 11.2.0 \ server \ bin)。如果您无法ping通,请确保sqlplus可以访问tnsnames.ora
文件。您可能需要将TNS_ADMIN环境变量设置为指向文件所在的ADMIN目录,例如:
TNS_ADMIN=[oracle express installation dir]\app\oracle\product\11.2.0\server\network\ADMIN
答案 11 :(得分:1)
流动流动的步骤:
编辑您的listener.ora和tnsnames.ora文件 $ Oracle_home \ product \ 11.2.0 \ client_1 \ NETWORK \ ADMIN location
一个。添加listener.ora文件
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
ADR_BASE_LISTENER = C:[这里c是oralce主目录]
湾添加tnsnames.ora文件
SCHEMADEV =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dabase_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = SCHEMADEV)
)
)
示例:
用户名:your_database_username
密码:Your_database_password
oracle_connection_alias:上面例子的SCHEMADEV。
答案 12 :(得分:0)
它确实在我的机器上运行。但是我找到了OracleServiceXE而不是OracleServiceOR。
答案 13 :(得分:0)
您需要告诉SQLPlus您要登录的数据库。 Host String必须是连接字符串或TNSNames.ora文件中配置的别名。
答案 14 :(得分:0)
在我的情况下,( ORA-12560:TNS协议适配器错误)问题数据库连接问题的原因,如数据库,用户名和密码。
一旦你遇到了这个问题。在检查oracle服务之后,您最初必须检查连接详细信息。
我错过了一些连接细节,所以只有 TNS协议适配器错误, 我会更改连接详情,它会正常工作 。
答案 15 :(得分:0)
ORA-12560:TNS:erro de adaptador de protocolo
答案 16 :(得分:0)
我遇到“ ORA-12560:TNS:协议适配器错误”的问题,我用了2个小时的时间在Google上搜索,因为它没有关注细节。我打开命令提示符,然后有了这个命令:
C:\Users\Frodo>set oracle_sid=<DB name>
...虽然应该撒谎:
C:\>set oracle_sid=<DB name>
C:> 应该代替 C:\ Users \ Frodo> -这是我的问题;这样就可以了:
C:\Users\Frodo> cd c:
C:\>set oracle_sid=<DB name>
C:\>exp ........
答案 17 :(得分:0)
答案 18 :(得分:0)
我尝试2种选择:
答案 19 :(得分:0)
可以应用以下修复来解决 TNS 12560
错误
SQL*NET
客户端软件的最新补丁$ORACLE_HOME
和 $PATH
变量(系统用户应该可以访问)$TNS_ADMIN
变量