zoukankan      html  css  js  c++  java
  • 转 Oracle监听器启动出错:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了解决方案

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

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

    第一种解决方法:

    第一步,运行cmd

     第一步、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:oracleoradataoradbFYGL.ORA''

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

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

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

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

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

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

         

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

    第二种方法:

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

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

    一、错误描述

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

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

    二、原因分析

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

    三、解决办法

    方法一:监听器

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

    首先查阅你的**product11.2.0dbhome_1NETWORKADMIN目录下的"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才可正常登录进去,否则无监听程序。如:

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

    上面这里是"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改为:***(你自己的安装路径)product11.2.0dbhome_1

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

    方法三:注册表

    KEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/OracleOraDb11g_home1TNSListener

    中的ImagePath改为:D:oracleproduct10.2.0db_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 SettingsAdministrator>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
    数据库装载完毕。
    数据库已经打开。
    这样就解决啦~~~哈哈哈~~~~~~~~~~~~~~~~~~~~
  • 相关阅读:
    微信卡券领用中的问题
    abp的开发20180425
    typescript 接口的新认识
    Jquery构建Form表单Post提交数据的简单方法
    EF使用时异常:对一个或多个实体的验证失败。有关详细信息
    VS快捷键简单记录
    比较和排序 IComparable And IComparer
    wpf全局异常
    MailBee的简单使用
    json数据的获取(网络摘抄)
  • 原文地址:https://www.cnblogs.com/liangqihui/p/7293802.html
Copyright © 2011-2022 走看看