服务-》启动ORACLE TNSListener 不成功

本文记录了一次Oracle Listener启动失败的问题排查过程。通过修改tnsnames.ora和hosts文件中的HOST名称,解决了Listener无法启动的问题,但仍存在TOAD连接失败的情况。
发现一个好贴,顺便粘这:数据库常见问题解决方法 [url]http://blog.youkuaiyun.com/hdhai9451/archive/2009/03/04/3957094.aspx[/url]

现象描述:服务-》启动OracleOraDb10g_home1TNSListener,如下图操作:

[img]http://dl.iteye.com/upload/attachment/331014/e8860b69-c50c-3d9e-8e24-9e1010af22cc.png[/img]

[img]http://dl.iteye.com/upload/attachment/331016/a782bfc6-fdd0-3a34-8675-776131ac0726.png[/img]

[img]http://dl.iteye.com/upload/attachment/331018/a10e35ab-bab3-3daa-abbc-6cca6b47d9d6.png[/img]

启动后,立即自动停止。

注意:不要右键直接点“启动”,否则,看不到效果,原因:你启动后,虽然程序又自行停止了,但其状态栏里还是显示“已启动”,容易生成混淆。


到“D:\oracle\product\10.2.0\db_1\NETWORK\log”的listener.log里看日志,有如下内容:

[color=red]系统参数文件为D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
写入D:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
写入D:\oracle\product\10.2.0\db_1\network\trace\listener.trc的跟踪信息
跟踪级别当前为0

以 pid=5832 开始
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ibm-dabcd6d6269)(PORT=1521)))
TNS-12545: 因目标主机或对象不存在, 连接失败
TNS-12560: TNS: 协议适配器错误
TNS-00515: 因目标主机或对象不存在, 连接失败
32-bit Windows Error: 1001: Unknown error
不再监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))[/color]


HOST=ibm-dabcd6d6269,再查看“D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN”下的tnsname.ora,内容如下:
[color=red]ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ibm-dabcd6d6269)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)[/color]

再看“C:\WINDOWS\system32\drivers\etc”下的hosts文件,内容如下:
[color=red]127.0.0.1 localhost[/color]

改成 127.0.0.1 ibm-dabcd6d6269
服务可以启动,但TOAD连接仍然报错:[color=red]TNS-12545: 因目标主机或对象不存在, 连接失败[/color]


还有个疑问就是,在哪个地方能随意的改这个HOST名称,因为我在调错过程中,发现,我把tnsnames.ora里的HOST名称与HOSTS里的名称改一致,但不是ibm-dabcd6d6269,就怎么样也不成功,就是说还是会启动不了。我就想,应该有个地方可以把这个名字彻底改了吧?

还有个情况,就是我的电脑为了加域改过名称,在网上搜说,这个会影响到TOAD连接,我后来想起来,刚安装库的时候(也就是没加域之前)是没有这个错误的,所以,这个论断应该是正确的。

服务启动不了的问题解决成功了,但是TOAD连接还是不成功,正在解决中。。。。


[size=x-large]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[/size]
激动ing,对于昨天自己的“在哪个地方能随意的改这个HOST名称”今天终于找到了,

[img]http://dl.iteye.com/upload/attachment/331786/b7c174d4-6ff3-32d3-9b83-e49a4e2587fe.png[/img]

[img]http://dl.iteye.com/upload/attachment/331790/761d8958-3cda-3bbb-9943-70ce01aa7e7f.png[/img]


这里可以随意改,不过,当你添加一个新地址的时候,会默认带出你当前主机名称,我想,这个名称可能还是要和主机的名称保持一致吧???还没得到证实,待确认。

不过,现在TOAD仍然无法连接,错误一如昨天。晕菜ING。

[size=x-large]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[/size]

又搞了一会,按着“数据库常见问题”中的一,当服务器损坏处理解决,搞完后发现登录TOAD的错误改变了,ORA-01017:invalid username/password; logon denied

所以,证明了我的的确是因为Listener坏掉了。
### 在操作系统层面手动启动 Oracle 数据库服务 在操作系统层面手动启动 Oracle 数据库服务,通常需要根据操作系统类型(Windows 或 Linux)执行相应的操作。以下是具体的操作步骤: #### 在 Windows 系统中手动启动 Oracle 服务 1. **打开服务管理器** 使用 `Win + R` 快捷键打开运行窗口,输入命令 `services.msc` 按回车。 2. **找到 Oracle 相关服务** 在服务列表中找到以下两个关键服务- `OracleServiceORCL`:这是 Oracle 数据库实例服务- `OracleOraDb11g_home1TNSListener`:这是监听服务,用于处理客户端连接请求[^2]。 3. **手动启动服务** 右键点击上述服务,选择“启动”即可手动启动相应的服务。如果希望服务在下次开机时会自动启动,可以右键服务,选择“属性”,将“启动类型”修改为“手动”。 #### 在 Linux 系统中手动启动 Oracle 服务 1. **切换到 Oracle 用户** 在终端中执行以下命令切换到 Oracle 用户: ```bash su - oracle ``` 2. **启动监听服务** 使用以下命令启动 Oracle 数据库的监听服务: ```bash lsnrctl start ``` 如果启动成功,会显示: ``` The listener supports no services The command completed successfully ``` 这表明监听服务已经启动成功[^3]。 3. **启动数据库实例** 使用以下命令启动 Oracle 数据库实例: ```bash sqlplus / as sysdba SQL> startup ``` 这将启动数据库实例,确保数据库处于运行状态。 #### 验证 Oracle 数据库是否启动 1. **检查监听服务状态** 使用以下命令检查监听服务是否正在运行: ```bash lsnrctl status ``` 2. **检查数据库实例状态** 登录到 SQL*Plus 并执行以下命令检查数据库状态: ```bash sqlplus / as sysdba SQL> select status from v$instance; ``` 如果返回 `OPEN`,则表示数据库实例已经成功启动。 #### 相关问题 1. 如何在 Windows 中设置 Oracle 服务为手动启动? 2. 在 Linux 系统中,如何停止 Oracle 数据库服务? 3. Oracle 数据库监听服务的作用是什么? 4. 如果 Oracle 服务启动失败,应该如何排查问题? 5. 如何在 Linux 中配置 Oracle 数据库的自动启动
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值