简析Oracle数据库常见问题及解决方案

Oracle数据库在使用的过程中常常会遇到这样或那样的问题,而这些问题常常又使我们感到很困惑,本文我们总结了Oracle数据库在使用过程中的一些问题,并给出了解决方法,下面我们就开始分析一下这些问题。

一、oracle监听启动后,立即停止。

TNS-12545: 因目标主机或对象不存在,连接失败。

TNS-12560: TNS: 协议适配器错误。

TNS-00515: 因目标主机或对象不存在,连接失败。

32-bit Windows Error: 1004: Unknown error。

不再监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=//./pipe/EXTPROC0ipc)))。

原因是我安装了oracle之后,又修改了主机名。

解决方法:

1.直接修改listener.ora

路径是: oracle安装目录/product/10.2.0/db_1/NETWORK/ADMIN/listener.ora.

修改HOST 为主机名或者IP.

2.通过 Net Manager,在 监听程序/LISTENER 下直接修改主机即可

二.错误码及解决办法

1.ORA:-12545:因目标主机和对象不存在,连接失败。

错误代码ORA-12545表示网络连接串(即tnsnames.ora文件中的HOST处)中使用的机器名和IP地址不存在,重新修改和重新连接即可。

2.ORA-12651:TNS:没有监听器。

该信息说明所要连接的服务器没有启动监听进程Listener(该进程为Oracle服务器上操作系统进程,监听进程没有启动时,服务器可以正常进行,但是客户端不能与服务器产生连接。这时可以在服务器使用操作系统命令lsnrctl正常起启动监听进程)。

3.ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?] 。

产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用。ORA-600的错误经常伴随跟踪文件的状态转储(系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持有的对象,当进程符合了某错误条件时,经常是由于一些信息取自它持有的一个块,如果我们知道这些错误进程持有的块,就容易跟踪问题的来源。

解决方法:一般来说出现这个错误我们本身是无法解决的,只有从提高系统本身各方面来解决这个内部问题,如增加硬件设备,调整系统性能,使用OPS(当然OPS从某种意义上说并不是一种好的解决方式)等。ORA-600错误的第一个变量用于标记代码中错误的位置(代码中的每个部分的第一变量都不一样),从第二个到第五个变量显示附加信息,告诉OSS代码在哪里出现了错误

4.ORA-12560  协议适配器错误:

有关ORA-12560: TNS:协议适配器错误的问题

①.检查Terminal Service, 远程桌面是不是起因。

②.环境变量set oracle_sid=需要的服务名。

③.listener.ora, tnsnames.ora等内机器名或者IP地址是否正确。

④.netstat –a检查端口是否被占用。

⑤.检查注册表HKEY_LOCAL_MACHINE/Software/Oracle/Home0新增字符串USE_SHARED_SOCKET=TRUE, 重新启动服务。

5.ORA-28595: Invalid DLL Path   调用外部DLL出错

原因:A setting in Oracle's LISTENER.ORA file on the server hosting the RDBMS is missing.

解决办法:

(1).Locate the active LISTENER.ORA file on the server.  By default, it will be on the Oracle RDBMS drive in the path ../ora92/network/admin.

(2).Inspect the file and locate all entries associated with "SID_DESC".  Each such entry should have the following option associated with it:

(ENVS = "EXTPROC_DLLS=ANY")

(3).Add the above line to any entry where it is missing.

(4).Restart the Oracle Listener Service (or reboot the server which will in turn restart Oracle).

例子:

The example LISTENER.ORA file below shows a valid configuration for the server named "WOODY" (using TCP/IP on Port 1521) with the correct ENVS entries highlighted:

# LISTENER.ORA Network Configuration File: C:/oracle/ora92/network/admin/listener.ora

# Generated by Oracle configuration tools.

LISTENER = 

(DESCRIPTION_LIST = 

(DESCRIPTION = 

(ADDRESS_LIST = 

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) 

) 

(ADDRESS_LIST = 

(ADDRESS = (PROTOCOL = TCP)(HOST = woody)(PORT = 1521)) 

) 

) 

) 

SID_LIST_LISTENER = 

(SID_LIST = 

(SID_DESC = 

(SID_NAME = PLSExtProc) 

(ORACLE_HOME = C:/oracle/ora92) 

(PROGRAM = extproc) 

(ENVS = "EXTPROC_DLLS=ANY") 

) 

(SID_DESC = 

(GLOBAL_DBNAME = WOODY) 

(ORACLE_HOME = C:/oracle/ora92) 

(SID_NAME = WOODY) 

(ENVS = "EXTPROC_DLLS=ANY") 

) 

)

6.在控制面板中启动服务,出现以下错误:

服务:在本地计算机无法启动OracleOraDb10g_home1TNSListener 服务。

错误3:系统找不到指定的路径。

查看属性发现,OracleOraDb10g_home1TNSListener 服务的可执行文件的路径为空。

解决办法:

开始-->运行REGEDIT -->进入注册表找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/OracleOraDb10g_home1TNSListener

发现ImagePath关键值没有了,新建一个名为ImagePath的可扩充字符串值,编辑字符串的数值数据为:Oracle安装路径/BIN/TNSLSNR

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

解决办法:C:/oracle/product/10.2.0/db_1/NETWORK/ADMIN/listener.ora把这这文件里的内容改下 HOST=你的计算机名字。

关于Oracle数据库的问题及解决方法就介绍到这里,希望能够对您有所帮助。

(0)

相关推荐

  • ORACLE数据库日常维护知识点总结

    首先要说的是,不同版本数据库提供的系统表会有不同,你可以根据数据字典查看该版本数据库所提供的表 like this: select * from dict where table_name like '%SESSION% '; 就可以查出一些表,然后根据这些表就可以获得会话信息. 像这样就是 查询当前正在操作的会话: SELECT SID, SERIAL#, STATUS, USERNAME, SCHEMANAME, OSUSER,TERMINAL, MACHINE, PROGRAM, A.NA

  • Oracle数据库数据丢失恢复的几种方法总结

    根据oracle数据库的特点和提供的工具,主要方法有以下几种方法: 利用逻辑备份使用import工具丢失数据的表 利用物理备份来通过还原数据文件并进行不完全恢复 利用dbms_logmnr包从redo log文件中恢复 利用flashback特性恢复数据 前提 为了方便使用方法的介绍,上述恢复方法都将基于以下场景进行:系统管理员在前一天晚上11点用export对数据库做了全库逻辑备份,然后对所有数据文件进行了热备份.第二天上午10点,系统管理员在修改表TFUNDASSET的数据时,由于修改语句的

  • DB2数据库切换为oracle数据库经验教训总结(必看篇)

    由于DB2数据库使用的人太少,公司有没有专业的DBA,决定把数据库从DB2数据库切换为oracle数据库,本以为很简单,可当真的切换时,却发现,有很多东西出乎意料. 由于系统底层使用的是ORM映射工具,由于没有使用存储过程,自定义函数,触发器,因此我以为系统改动不大,但发现的问题却不少. 1.我们的主键基本上都采用共的是Sequence,没有采用自动增长作为主键. 但获取Sequence在两种数据库中是不相同的. DB2获取的方法 values next value for eas.seq_Se

  • oracle数据库sql的优化总结

    一:使用where少使用having; 二:查两张以上表时,把记录少的放在右边: 三:减少对表的访问次数: 四:有where子查询时,子查询放在最前: 五:select语句中尽量避免使用*(执行时会把*依次转换为列名): 六:尽量多的使用commit: 七:Decode可以避免重复扫描相同的记录或重复连接相同的表: 八:通过内部函数也可提高sql效率: 九:连接多个表时,使用别名并把别名前缀于每个字段上: 十:用exists代替in 十一:not exists代替 not in(not in 字

  • 简析Oracle数据库常见问题及解决方案

    Oracle数据库在使用的过程中常常会遇到这样或那样的问题,而这些问题常常又使我们感到很困惑,本文我们总结了Oracle数据库在使用过程中的一些问题,并给出了解决方法,下面我们就开始分析一下这些问题. 一.oracle监听启动后,立即停止. TNS-12545: 因目标主机或对象不存在,连接失败. TNS-12560: TNS: 协议适配器错误. TNS-00515: 因目标主机或对象不存在,连接失败. 32-bit Windows Error: 1004: Unknown error. 不再监

  • JDBC连接Oracle数据库常见问题及解决方法

    注:本文是斑竹从JDBC & Transaction版摘录广大站友的提问以及各种解答整理而来,如果您认为本文的内容已触犯了您的权益,请联系管理员进行修改. Jbuilder正确连接 oracle 9i需要注意的几个问题 oracle8以上的应该都使用classes12.jar文件作为jdbc驱动: 正确设置windows的classpath和jbuilder中的enterprise setup .configure libraries,将casses12.jar路径正确添加到上述需要设置的地方:

  • oracle 数据库数据迁移解决方案

    去年年底做了不少系统的数据迁移,大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁移,有一些心得体会,与大家分享. 首先说说迁移流程,在迁移之前,写好方案,特别是实施的方案步骤一定要写清楚,然后进行完整的测试.我们在迁移时,有的系统测试了四五次,通过测试来完善方案和流程. 针对物理迁移,也即通过RMAN备份来进行还原并应用归档的方式(这里不讨论通过dd方式进行的冷迁移),虽然注意的是要将数据库设为force logging的方式,在用RMAN做全备之前,一定要执行: 否则可能会产

  • Oracle的数据字典技术简析

    正在看的ORACLE教程是:Oracle的数据字典技术简析.数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等.当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息. Oracle中的数据字典有静态和动态之分.静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的.以下

  • 基于Oracle的面向对象技术入门基础简析开发者网络Oracle

    正在看的ORACLE教程是:基于Oracle的面向对象技术入门基础简析开发者网络Oracle.一.概述 对象是Oracle8i以上版本中的一个新的特性,对象实际是对一组数据和操作的封装,对象的抽象就是类.在面向对象技术中,对象涉及到以下几个重要的特性:  封装性 通过对数据和操作的封装,将用户关心的数据和操作暴露出来作为接口,其他数据和操作则隐藏到对象内部,这样便于用户使用和维护.  继承性 对象具有继承性,通过这一特性可以增强程序的可扩展性,适合大型项目的开发.  多态性 同一操作在运行时刻有

  • 简析mysql字符集导致恢复数据库报错问题

    mysql字符集编码错误的导入数据会提示错误了,这个和插入数据一样如果保存的数据与mysql编码不一样那么肯定会出现导入乱码或插入数据丢失的问题,下面我们一起来看一个例子. <script>ec(2);</script> 恢复数据库报错:由于字符集问题,最原始的数据库默认编码是latin1,新备份的数据库的编码是utf8,因此导致恢复错误. [root@hk byrd]# /usr/local/mysql/bin/mysql -uroot -p'admin' t4x < /t

  • Oracle ASM数据库故障数据恢复解决方案

    一.故障描述 ASM磁盘组掉线 ,ASM实例不能mount.ASM磁盘组有4个500G的磁盘组成,数据库和ASM软件为10.2.0.1,急需恢复oracle数据库. 二.故障分析 分析组成ASM磁盘组的磁盘,取出ASM元数据,对元数据进行分析:ASM存储元数据损坏,导致diskgroup无法mount.重组ASM存储空间,从ASM磁盘组中导出数据库文件,然后对数据库文件进行检测,修复.如果数据库文件完好,可以利用从ASM磁盘组中导出的数据库文件启动数据库.如果数据库文件损坏,这底层解析这些数据库

  • ORACLE数据库应用开发常见问题及排除

    正在看的ORACLE教程是:ORACLE数据库应用开发常见问题及排除.硬件平台:SUN Ultra Enterprise 3000 操作系统:Solaris 2.5(中文简体) 磁盘:4.2GB 内存:256MB ORACLE B版本:7.3.2.1 安装目录:/database/oracle(/database下有2GB空间) 安装产品:ORACLE RDBMS,SQL*NET,SQL*Plus,Pro *C,Server Manager等 产品安装正常,运行稳定. 二.应用开发中常见问题及排

  • 使用ef6创建oracle数据库的实体模型遇到的问题及解决方案

    解决方案中的数据层项目最初使用的是oracle 11g + ef5 创建的实体模型,在分页时遇到了skip参数为0报错的问题,没有找到相关资料. 于是决定升级到ef6,在oracle官网中得知,Oracle Data Provider for .NET in ODAC 12c Release 3 开始支持ef6(https://docs.oracle.com/cd/E56485_01/win.121/e55744/release_changes.htm#CIHGIAEG) 安装步骤: 1.安装o

  • Oracle数据完整性和锁机制简析

    本课内容属于Oracle高级课程范畴,内容略微偏向理论性,但是与数据库程序开发和管理.优化密切相关:另外本课的部分内容在前面章节已经涉及,请注意理论联系实际. 事务 事务(Transaction)从 通讯的角度看:是用户定义的数据库操作序列,这些操作要么全做.要么全不做,是不可分割的一个工作单元.事务控制语句称为TCL,一般包括Commit和Rollback. 事务不是程序,事务和程序分属两个概念.在RDBMS中,一个事务可以有一条SQL语句.一组SQL语句或者整个程序:一个应用程序又通常包含多

随机推荐