首页 > 代码库 > 转 Oracle监听器启动出错:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了解决方案

转 Oracle监听器启动出错:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了解决方案

今早刚上班、客户打电话过来说系统访问不了,输入用户名、用户号不能加载出来!听到这个问题,第一时间想到的是不是服务器重新启动了,Oracle数据库的相关服务没有启动的原因、查看服务的时候,发现相关的服务都是启动的状态。第二想法就是查看的程序配置文件是否被修改过、也没有异常;第三个就是用PL/SQL连接Oracle数据库,输入登录名和密码后,提示如下错误:ora-01033:oracle initialization or shutdown in progress;

 

在网上搜索了一圈,终于发现几个比较有详细步骤的解决方案,参考如下:

 

第一种解决方法:

第一步,运行cmd

<iframe id="iframe_0.01838844600254652" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://dl.iteye.com/upload/attachment/0078/3870/797255ca-a706-3098-8724-97fd7839533d.png?_=3688141%22%20style=%22border:none;max-width:1256px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.01838844600254652‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe> 第一步、sqlplus /NOLOG

第二步、SQL>connect sys/change_on_install as sysdba

提示:已成功

第三步、SQL>shutdown normal

      提示:数据库已经关闭       已经卸载数据库       ORACLE 例程已经关闭

第四步、SQL>startup mount

第五步、SQL>alter database open;

 

提示:(我在操作的时候没有遇到下边着中错误)

第1 行出现错误: ORA-01157: 无法标识/锁定数据文件19 - 请参阅DBWR 跟踪文件

ORA-01110: 数据文件19: ‘‘‘‘C:\oracle\oradata\oradb\FYGL.ORA‘‘

这个提示文件部分根据每个人不同情况有点差别。

继续输入 第六步、SQL>alter database datafile 19 offline drop;

第七步、重复使用第五第六步,直到出现“数据库已更改”的提示,然后如下图,

继续输入shutdown normal,startup mount就OK啦

<iframe id="iframe_0.20644354734188197" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://dl.iteye.com/upload/attachment/0078/3878/a76fd3ca-4cbe-3819-9c69-479b9acd0566.png?_=3688141%22%20style=%22border:none;max-width:1256px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.20644354734188197‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

 

内容来源:http://www.2cto.com/database/201202/118194.html

              http://yuxisanren.iteye.com/blog/1754018

     

    测试了一遍,发现还是没有解决我这个问题;

 

第二种方法:

 

      把Oracle的相关服务都停止后、在重新启动、发现可以正常登录。

--------------------------

Oracle监听器启动出错:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了解决方案

一、错误描述

登陆PL/SQL Developer登陆本地数据库时先报没有监听程序,查看服务发现Oracle监听服务没有启动。右击启动监听程序,报错:

错误描述:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了。一些服务自动停止,如果它们没有什么可做的,例如 "性能日志和警报 "服务。

二、原因分析

你安装oracle的时候是连网的,那么listener.ora文件里的HOST=网络给你分配的IP地址,而在你断网的时候就会出现这样的情况。

三、解决办法

方法一:监听器

通过listener.ora或者Net Manager修改监听器配置。将原来本地字符串127.0.0.1或者localhost改为主机名。

首先查阅你的**\product\11.2.0\dbhome_1\NETWORK\ADMIN目录下的"tnsnames.ora"和"listener.ora"这两个文件,然后看看里面的"HOST"信息,看看是不是你当前的ip地址,如果不是尝试着把这个2个文件改成你的ip地址,或直接就改成127.0.0.1(或计算机名字):

注意:此时的监听配置文件"listener.ora"里面的HOST=的内容(IP或者主机名)必须和,服务配置文件"tnsnames.ora"里面,你想要链接的服务的HOST=的内容完全一致。意思就是说要么都是IP地址,要么都是主机名。如果有多个服务(Net Manager中配置的网络服务)那么查看"tnsnames.ora"文件中与监听HOST内容一致的PL/SQL才可正常登录进去,否则无监听程序。如:

<iframe id="iframe_0.5209415602152052" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://s4.sinaimg.cn/middle/001JVAxLzy6GYlbvTQ793&amp;690?_=3819605%22%20style=%22border:none;max-width:1323px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.5209415602152052‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

 

上面这里是"listener.ora"里面的HOST,我的是主机名。

<iframe id="iframe_0.04252759153109298" src="data:text/html;charset=utf8,%3Cstyle%3Ebody%7Bmargin:0;padding:0%7D%3C/style%3E%3Cimg%20id=%22img%22%20src=%22http://s9.sinaimg.cn/middle/001JVAxLzy6GYlbBA7e38&amp;690?_=3819605%22%20style=%22border:none;max-width:1323px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById(‘img‘);%20window.parent.postMessage(%7BiframeId:‘iframe_0.04252759153109298‘,width:img.width,height:img.height%7D,%20‘http://www.cnblogs.com‘);%7D%3C/script%3E" frameborder="0" scrolling="no" width="320" height="240"></iframe>

上面这里是"tnsnames.ora"的配置信息,由于我的机子上面装了两个数据库DB1,DB2。分别建立了连接服务也叫做DB1,DB2。(不知道什么情况,建好后tnsnames.ora里一个HOST是IP地址,另一个是我的主机名。)结果导致DB1的PL/SQL正常连接进入(因为是IP地址和listener.ora的HOST地址完全匹配),而DB2的PL/SQL却提示没有监听程序。(什么情况,DB1不是都正常进入了么咋还没有监听呢。我去~~)后来网上找教程说是【修改"listener.ora"的HOST地址,如果是IP则改成主机名】于是照搬。运行PL/SQL,DB2登陆成功,爽啊。结果DB1没有监听程序(什么情况啊)。后来查看"listener.ora"发现此问题,说明两个文件的HOST的内容需要完全匹配才行,全部改成主机名,两个数据库登陆都成功,搞定!

 

方法二:环境变量

环境变量中ORACLE_HOME改为:***(你自己的安装路径)\product\11.2.0\dbhome_1

有的情况,装貌似安装客户端被自动改为**:\Ora11InstantClient了

 

方法三:注册表

KEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/OracleOraDb11g_home1TNSListener

中的ImagePath改为:D:\oracle\product\10.2.0\db_1/BIN/TNSLSNR.EXE(之前后面的.EXE没有)。

 

-----------------

 

今儿一直在测试服务器的迁移问题,不断地创建表空间、创建数据库、创建用户。后来感觉创建这么多东西太占用磁盘空间,心想删除一下吧,于是,我们执行了dbca命令,将没用的数据库统统删除,将dbf和dmp文件也统统删除了,再后来发现服务无法启动了,连接时会提示oracle initialization or shutdown in progress,后来经过查询发现,原来这些dbf和dmp不是说删除就能删除的(当时我们明明发现有的不允许删除,我还是故意停停掉oracle服务,然后将其删除滴),最终导致数据库实例无法启动。

我的解决过程如下:
Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.
 
C:\Documents and Settings\Administrator>sqlplus /nolog
 
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 3月 4 18:40:13 2011
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
SQL> connect system/hope;
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress【就是这个错误】
 
【解决方法】
 
SQL> connect sys/hope as sysdba
已连接。
SQL> shutdown normal
ORA-01109: 数据库未打开
 
 
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> start mount
SP2-0310: 无法打开文件 "mount.sql"
SQL> startup mount
ORACLE 例程已经启动。
 
Total System Global Area  612368384 bytes
Fixed Size                  1332348 bytes
Variable Size             183151492 bytes
Database Buffers          423624704 bytes
Redo Buffers                4259840 bytes
数据库装载完毕。
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 5: ‘C:\TYKM.DBF‘
 
 
SQL> alter database datafile 5 offline drop;【5是数据文件中的5】
 
数据库已更改。
 
SQL> alter database open;【我们一直循环这个语句,直至不再提示错误】
 
数据库已更改。
 
SQL> shutdown normal
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
 
Total System Global Area  612368384 bytes
Fixed Size                  1332348 bytes
Variable Size             187345796 bytes
Database Buffers          419430400 bytes
Redo Buffers                4259840 bytes
数据库装载完毕。
数据库已经打开。
这样就解决啦~~~哈哈哈~~~~~~~~~~~~~~~~~~~~

转 Oracle监听器启动出错:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了解决方案