oracle 常见问题解决
oracle常见故障处理手册

oracle常见故障处理手册一、数据库启动与关闭故障1.数据库启动失败原因:可能是由于Oracle数据库配置不正确、系统环境变量设置不正确、初始化参数设置不正确等原因导致。
解决方法:检查数据库日志文件,查看错误信息,根据错误信息进行相应的修复。
2.数据库关闭失败原因:可能是由于数据库事务未完成、数据库锁未释放等原因导致。
解决方法:检查数据库日志文件,查看错误信息,根据错误信息进行相应的修复。
二、连接故障1.连接不成功原因:可能是由于网络连接问题、数据库用户名或密码错误、数据库实例名错误等原因导致。
解决方法:检查网络连接是否正常,检查数据库用户名和密码是否正确,检查数据库实例名是否正确。
2.连接断开原因:可能是由于网络不稳定、数据库服务器异常等原因导致。
解决方法:检查网络连接是否正常,检查数据库服务器是否正常。
三、数据恢复故障1.数据丢失原因:可能是由于数据库损坏、磁盘故障等原因导致。
解决方法:根据数据丢失的原因,选择相应的恢复方法,如使用备份恢复数据或使用日志文件恢复数据。
2.数据不一致原因:可能是由于数据修改不一致、数据复制不一致等原因导致。
解决方法:检查数据修改和复制的日志文件,找到不一致的数据并修复。
四、性能优化故障1.性能下降原因:可能是由于CPU占用过高、内存占用过高、磁盘IO过大等原因导致。
解决方法:优化数据库配置参数,如增加内存、优化磁盘IO等。
2.查询速度慢原因:可能是由于查询语句不优化、表没有建立索引等原因导致。
解决方法:优化查询语句,为表建立索引等。
五、存储管理故障1.存储空间不足原因:可能是由于磁盘空间不足、表空间不足等原因导致。
解决方法:清理磁盘空间,增加磁盘空间,调整表空间大小等。
2.数据文件丢失或损坏原因:可能是由于磁盘故障、人为误删除或修改等原因导致。
解决方法:使用备份恢复数据文件或修复损坏的数据文件。
六、网络连接故障1.网络连接中断原因:可能是由于网络设备故障、网络连接线故障等原因导致。
Oracle部署常见问题

常见问题问题1 :在SecureCRT等远程访问Linux的软件中,用Oracle用户运行./runInstaller 命令安装Oracle时,提示“DISPLAY尚未设置”、““DISPLAY尚未设置”等信息。
解决方法:实际上为oracle用户没有权限登陆X11图形化界面,且该远程访问软件不能登陆图形化界面。
✧方法一、执行su –oracle命令,再输入“./runInstaller”命令安装数据库即可,因为Linux默认的运行级别即图形化界面,具体设置如/etc/inittab文件里“id:5:initdefault:”,init5即代表图形化界面。
提示“Cannot convert string to type FontStruct”时,可以不用管它,随后在Linux操作系统的窗口中弹出了Oracle的安装界面。
如果还是提示“DISPLAY尚未设置”、““DISPLAY尚未设置”等信息,请执行如下命令:xhost +192.168.7.21,执行后提示“192.168.7.21being added to access control list”时,表明用户可访问Linux图形化界面了。
具体更复杂的设置参照: /12778571/viewspace-353135✧方法二、Xmanager软件则可以规避这个问题,它本身是个图形化界面;运行./runInstaller命令即可成功安装Oracle 。
问题2 :如果在检测Oracle安装的先决条件的安装过程中,提示“gcc-3.2.2未安装通过”,且执行“rpm -ivh gcc-3.2.3-52.i386.rpm”命令后,提示“warning: gcc-3.2.2-5.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e ;error: Failed dependencies:cpp = 3.2.2-5 is needed by gcc-3.2.2-5 ”。
Oracle的常见错误及解决办法

Oracle的常见错误及解决办法ORA-12528:TNS:listener: all appropriate instances are blocking new connectionsORA-12528问题是因为监听中的服务使⽤了动态服务,实例虽然启动,但没有注册到监听。
实例是通过PMON进程注册到监听上的,⽽PMON进程需要在MOUNT状态下才会启动。
所以造成了上⾯的错误。
解决这个问题,有三种⽅法:1、把监听设置为静态;2、在tnsnames.ora中追加(UR=A);3、重新启动服务;⽅法1、通过修改listener.ora的参数,把listener.ora动态注册设置为静态注册,然后重新启动监听# listener.ora Network Configuration File: $ORACLE_HOME\network\admin\listener.ora# Generated by Oracle configuration tools.LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = [IP])(PORT = 1521))))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = [DBNAME])(ORACLE_HOME = [$ORACLE_HOME])(SID_NAME = [SID])))静态注册的风险:如果在instance运⾏中,lisener重新启动,就找不到instance了。
静态注册需要先启动lisener,再启动instance。
且静态模式下,lisener status显⽰的是unknown⽅法2、启动到nomount状态,通过修改tnsnames.ora的参数# tnsnames.ora Network Configuration File: $ORACLE_HOME\network\admin\tnsnames.ora# Generated by Oracle configuration tools.SYK =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = [IP])(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = SYK)(UR=A)))然后连接上数据库SQL>alter database mount;SQL>alter database open;⽅法3、重启ORACLE或者重启ORACLE服务在oracle帐户下依序执⾏如下命令:sqlplus / as sysdba;//在其它帐户(如root)下执⾏可能会报错(ORA-01031)因为这些帐户没有在dba组中shutdown immediate;startup;oracle实例名: error while loading shared libraries: libskgxp10.so: cannot open shared object file: No such file or directory是环境变量LD_LIBRARY_PATH的问题。
oracle常见故障处理

oracle常见故障处理
--1.语句级故障,通常为DML ,DQL,DCL,DDL等等
⽆效数据 -->使⽤数据符合相关约束,满⾜值域的数据
缺少权限 -->给予⽤户所需的权限
空间分配问题 -->使⽤alter session enable resumable,增加⽤户配额,增加表空间⼤⼩
应⽤程序逻辑错误 -->修正逻辑错误
--2.⽤户进程故障
⽤户⾮登出的异常退出
⽤户会话异常终⽌
程序错误导致会话结束
对于上述错误,实例后台进程PMON会⾃动回滚未提交的事务,并释放相关锁资源
--3.⽹络故障
侦听器故障 -->配置⼀个备份的侦听器,connect-time故障转移
⽹络接⼝卡故障 -->使⽤多个⽹络接⼝卡
⽹络连接故障(路由) -->配置⼀个备份的⽹络连接
--4.⽤户错误
⽤户意外删除或修改数据 -->回滚或使⽤闪回查询来恢复
⽤户删除表 -->从回收站闪回删除
--5.介质故障
磁盘故障
磁盘控制器故障
删除或损坏数据⽂件
可能的解决⽅案,使⽤联机事务⽇志从备份恢复受影响的⽂件或恢复数据⽂件到新的物理位置
--6.实例故障
电源负载故障
硬件故障
后台进程失败
异常关闭数据库
解决⽅案,使⽤startup 重新启动实例。
实例实现⾃动恢复,根据联机⽇志⽂件前滚提交的事务,回滚未提交的事务查看告警⽇志、跟踪⽇志等找出出现故障的原因。
Oracle常见错误及解决方案

O r a c l e常见错误及解决方案问题1:Oracle服务器进入PL/SQL Developer时报ora-01033:oracle initialization or shutdown in progress 错误提示,应用系统无法连接Oracle服务。
解决方法如下:⑴进入CMD,执行set ORACLE_SID=fbms,确保连接到正确的SID;⑵运行sqlplus "/as sysdba"SQL>shutdown immediate停止服务SQL>startup启动服务,观察启动时有无数据文件加载报错,并记住出错数据文件标号SQL>shutdown immediate再次停止服务SQL>startup mountSQL> recover datafile 2恢复出错的数据文件SQL>shutdown immediate再次停止服务SQL>startup启动服务,此次正常。
⑶进入PL/SQL Developer检查,没有再提示错误。
问题2:Oracle密码忘记了怎么办?解决方法有很多种,这里讲述以下三种:⑴打开cmd,输入sqlplus /nolog,回车;输入“conn / as sysdba”;输入“alter user sys identified by 新密码”。
注意:新密码最好以字母开头,否则可能出现错误Ora-00988。
有了这个方法后,只要自己对oracle 服务器有管理员权限,Oracle密码忘记了也不用着急,可以随意修改密码。
⑵在命令行执行如下命令:sqlplus "/@服务名as sysdba"然后在sqlplus中运行以上命令即可修改密码:alter user sys identified by 新密码;alter user system identified by 新密码;⑶运行到C盘根目录输入:SET ORACLE_SID = 你的SID名称输入:sqlplus/nolog输入:connect/as sysdba输入:alert user sys identified by sys输入:alert user system identified by system完成以上5步,则密码更改完成,密码是Oracle数据库的初始密码。
oracle错误ORA-01017问题分析与解决方法

Oracle常见错误 ORA-01017通常表示用户名或密码不正确,但在您的情况下,问题可能与 Oracle 11g 客户端和 Oracle 19c 数据库之间的兼容性有关。
可能的原因用户名或密码错误:首先,确保输入的用户名和密码是正确的。
密码案例敏感性:Oracle 11g 和 19c 在处理密码时的大小写敏感性可能有所不同。
密码版本兼容性:Oracle 19c 默认使用更高版本的密码加密算法,而 Oracle 11g 客户端可能不支持。
数据库参数配置:某些数据库参数可能需要调整以支持旧版本客户端的连接。
解决方案1. 确认用户名和密码首先,确保您输入的用户名和密码是正确的,并且没有输入错误。
2. 检查密码案例敏感性Oracle 11g 和 19c 在处理密码时可能有不同的大小写敏感性。
确保密码的大小写与创建用户时设置的密码一致。
3. 调整密码版本兼容性Oracle 19c 默认使用 12c 及以上版本的密码加密算法。
为了兼容旧版本客户端,可以调整数据库参数,使其支持旧版本的密码加密算法。
连接到 Oracle 19c 数据库实例:sqlplus / as sysdba检查当前的 SQLNET.ALLOWED_LOGON_VERSION_SERVER 参数:SHOW PARAMETER SQLNET.ALLOWED_LOGON_VERSION_SERVER;如果需要修改参数,可以编辑 sqlnet.ora 文件:vi $ORACLE_HOME/network/admin/sqlnet.ora添加或修改以下参数:SQLNET.ALLOWED_LOGON_VERSION_SERVER=11SQLNET.ALLOWED_LOGON_VERSION_CLIENT=11保存并关闭文件,然后重启数据库监听程序:lsnrctl stoplsnrctl start4. 重新设置用户密码重新设置用户密码可以确保密码使用兼容的加密算法。
Oracle常见错误及解决办法

Oracle常见错误及解决办法Ø简介本⽂主要记录 Oracle 常见错误及解决办法,包括以下内容:1.ORA-00054: 资源正忙, 但指定以 NOWAIT ⽅式获取资源, 或者超时失效2.ORA-01034: ORACLE not available3.ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated(启动数据库报错)4.ORA-12154: TNS: ⽆法解析指定的连接标识符5.ORA-12514: TNS:listener does not currently know of service requested in connect descriptor6.ORA-12541: TNS:no listener7.ORA-12560: TNS: 协议适配器错误8.ORA-27125: unable to create shared memory segment(启动数据库报错)9.ORA-28040: 没有匹配的验证协议((11g dblink 连接 12c 时)1.ORA-00054: 资源正忙, 但指定以 NOWAIT ⽅式获取资源, 或者超时失效n错误原因由于其他 Session 已经对⽬标表做了操作,并且已经有排他锁在表上了,所以新的 Session ⽆法再对表进⾏DDL操作。
n解决办法以 system ⽤户登录:1)查询被锁的会话IDselect session_id from v$locked_object;2)查询 sid, serial# 字段SELECT sid, serial#, username, osuser FROM v$session where sid = 9;3)将锁定的会话关闭ALTER SYSTEM KILL SESSION '9,99';2.ORA-01034: ORACLE not available1)检查当前数据库实例是否启动3.ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated(启动数据库报错)n错误描述SQL> startupORA-01261: Parameter db_recovery_file_dest destination string cannot be translatedORA-01262: Stat failed on a file destination directoryLinux-x86_64 Error: 2: No such file or directoryn解决办法(没有效果)不知道是什么原因,导致 $ORACLE_BASE/fast_recovery_area 少了这个⽬录,⽽导致了这个错误。
ORACLE数据库故障解决方案

ORACLE数据库故障解决方案Oracle数据库是当前世界上应用最广泛的关系型数据库之一,但在日常运维中,难免会遇到各种故障,如数据损坏、数据库停机等。
因此,能够迅速、准确地解决数据库故障至关重要。
本文将介绍几种常见的Oracle数据库故障解决方案。
1.数据库无法启动当Oracle数据库无法启动时,往往是由于以下原因导致的:数据库实例未启动、数据库文件损坏或不完整、数据库连接问题等。
我们可以采取以下步骤来解决这个问题:- 检查错误日志:查看数据库的错误日志文件(alert.log)以获取详细的错误信息,确定故障原因。
- 检查数据库实例:在Oracle数据库中,数据库实例由后台进程(如后台进程和前台进程)组成。
如果实例未启动,可以使用SQL*Plus 工具来手动启动实例,并确保每个后台进程正常运行。
- 恢复数据库文件:如果数据库文件损坏或不完整,可以使用Oracle提供的RMAN工具来恢复文件,或者使用备份文件进行恢复。
- 检查数据库连接:使用SQL*Plus工具检查数据库连接是否正常,如果存在连接问题,可以尝试重新配置网络服务或重启数据库监听器。
2.数据损坏数据损坏是Oracle数据库常见的故障之一,可能由硬件故障、软件错误、人为操作错误等原因引起。
当发生数据损坏时,可以使用以下方案进行修复:-恢复备份数据:如果有备份数据,则可以通过将备份数据恢复到故障数据库来解决数据损坏问题。
尽量选择最新的备份数据,以尽可能减少数据丢失。
- 利用日志文件:如果无法恢复备份数据,可以使用Oracle的恢复管理工具RMAN来利用归档日志文件进行恢复。
RMAN可以将日志文件中的变更应用到数据库中,避免数据丢失。
-手动修复:在一些情况下,可能需要手动修复数据。
具体操作方法取决于数据损坏的程度和类型,需要根据具体的情况采取相应的措施。
3.性能问题Oracle数据库性能问题常常涉及到数据库的优化、调整和配置。
下面是解决性能问题的一些常见方法:-查询优化:通过优化SQL查询语句,可以提高查询的性能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Technical Seminar
ORACLE常见问题分析 常见问题分析
问题:如何修改数据库的名字? 问题:如何修改数据库的名字? 解决: 解决: sqldba>alter database backup controfile to trace; 在?/rdbms/log目录下,找到最新生成的 目录下, 目录下 找到最新生成的trace文件 文件 ora_nnnn.trc, nnnn表示一个数字 表示一个数字 Edit该trace文件,找到 该 文件, 文件 找到create controlfile命令 ,存于 命令 存于 一个文件ccf.sql 一个文件 修改旧命令为: 修改旧命令为: create controlfile set database newdbname resetlogs CONTINUE Technical Seminar
Technical Seminar
ORACLE常见问题分析 常见问题分析
问题:如何得知 的剩余空间有多少? 问题:如何得知tablespace的剩余空间有多少? 的剩余空间有多少 解决: 解决: select sum(bytes), sum(blocks) from sys.dba_free_space where tablespace_name = tbsname
Technical Seminar
ORACLE常见问题分析 常见问题分析
问题:如何把一个 问题:如何把一个User的Schema从一个 的 从一个 Tablespace移到另一个 移到另一个Tablespace? 移到另一个 解决: 解决: 将用户的Schema export出来 将用户的 出来 Drop原来的用户 原来的用户 在新的 在新的Tablespace中重新建用户 中重新建用户 将用户的 将用户的Schema import到新建用户中 到新建用户中
Technical Seminar
ORACLE常见问题分析 常见问题分析
问题:为什么有时非 问题:为什么有时非oracle用户不能使用 用户不能使用 oracle? 解决: 解决: 检查?/bin/oracle的mode是否为 的 是否为4751 检查 是否为 检查.profile文件中是否设置环境变量 检查 文件中是否设置环境变量 –ORACLE_HOME –ORACLE_SID –ORACLE_TERM –PATH Technical Seminar
ORACLE常见问题分析 常见问题分析
问题:为什么有时输入的汉字查询出来是问号? 问题:为什么有时输入的汉字查询出来是问号? 原因: 端和Server端字符集设置不一致 原因:Client端和 端和 端字符集设置不一致 解决: 解决: 检查Server的字符的设置 的字符的设置 检查 select value from nls_database_parameters where parameter=NLS_CHARACTERSET 使client端的字符集设置与 端的字符集设置与Server端相同 端的字符集设置与 端相同 – unix: 环境变量 环境变量NLS_LANG – windows: 在oracle.ini文件这设置 文件这设置NLS_LANG 文件这设置 NLS_LANG=American_America.zhs16cgb23128 0 Technical Seminar
Technical Seminar
ORACLE常见问题分析 常见问题分析
问题: 如何区分v$session中windows client的 问题:DBA如何区分 如何区分 中 的 osuser? 解决: 解决: 在oracle.ini文件中加入 USERNAME=<username> 文件中加入 或 USERNAME=<ip address> sqldba>select saddr,osuser from v$session; 可通过 可通过saddr在v$cursor中查出该用户所执行的 在 中查出该用户所执行的SQL 中查出该用户所执行的 语句
ORACLE常见问题分析 常见问题分析
问题: 如何得知某一user/process所执行的 语句 所执行的sql语句 问题:DBA如何得知某一 如何得知某一 所执行的 的具体内容? 的具体内容? 解决: 解决: select saddr, user_name, sql_text from v$open_cursor where user_name = <user_r
ORACLE常见问题分析 常见问题分析
问题:如果误删了 文件, 问题:如果误删了redo log文件,数据库起不来怎么办? 文件 数据库起不来怎么办? 解决: 解决: 如果删掉的日志文件为 如果删掉的日志文件为Inactive – sqldba>startup mount – sqldba>alter database drop logfile filename – sqldba>alter database add logfile filename – recover database until cancel CONTINUE Technical Seminar
ORACLE常见问题分析 常见问题分析
CONTINUE 解决: 解决: 确认所有的 确认所有的tablespace和datafile都online,如果不 和 都 , 能解决则做以下的步骤 中加入 在initsid.ora中加入 event=?0015 trace name context forever level 10 shutdown数据库然后重新启动 数据库然后重新启动 在?/rdbms/log找到 找到startup时生成的 时生成的trace file, 在 找到 时生成的 trace file中,可找到下列信息: 中 可找到下列信息: error recover tx(#,#) object # Technical Seminar
ORACLE常见问题分析 常见问题分析
CONTINUE – <cancel recovery> – alter database open reset logs 如果删掉的日志文件为current 或active, 联系 如果删掉的日志文件为 oracle 的技术支持部门,然后采取相应的措施 的技术支持部门,
Technical Seminar
ORACLE常见问题分析 常见问题分析
问题:如何解决 错误? 问题:如何解决DBA-314错误? 错误 错误:不能 错误:不能attach到缺省主机 到缺省主机 原因: 原因:缺省主机设置不正确 解决: 解决: 检查环境变量是否设置正确 – ORACLE_SID ORACLE_HOME 检查 检查oracle用户是否属于 用户是否属于DBA组 用户是否属于 组 检查 检查oracle可执行文件是否被破坏,relink 可执行文件是否被破坏, 可执行文件是否被破坏
Technical Seminar
ORACLE常见问题分析 常见问题分析
问题:如何为一个 指定Rollback Segment? 问题:如何为一个Transaction指定 指定 解决: 解决: set transaction use rollback segment rollback_segs 原则: 原则: OLTP或小的 或小的transaction指定到小的 指定到小的rollback segment 或小的 指定到小的 大数据量修改的 大数据量修改的transaction指定到大的 指定到大的rollback segment 指定到大的 修改正在进行长查询的 修改正在进行长查询的table的transaction指定到大的 的 指定到大的rollback 指定到大的 segment
Technical Seminar
ORACLE常见问题分析 常见问题分析
问题:如何做 问题:如何做online backup? 解决: 解决: database 必须使用 必须使用archivelog mode sqldba>alter tablespace <ts_name> begin backup 使用操作系统命令备份属于该 使用操作系统命令备份属于该tablespace的datafiles 的 sqldba>alter tablespace <ts_name> end backup
Welcome
ORACLE常见问题分析 常见问题分析
李云凌 Oracle公司广州办事处技术支持部 公司广州办事处技术支持部
Technical Seminar
ORACLE常见问题分析 常见问题分析
问题:如果误删了某个 问题:如果误删了某个datafile,数据库起不来怎么办? ,数据库起不来怎么办? 解决: 解决: sqldba connect internal startup mount alter database datafile filename offline drop alter database open 备份 备份Tablespace中的数据 中的数据
Technical Seminar
ORACLE常见问题分析 常见问题分析
问题:如果一个 的状态为Need 问题:如果一个rollback segment的状态为 的状态为 Recovery怎么办? 怎么办? 怎么办 Need Recover 表示oracle试图回退一个事务表中的没有提交的事务 试图回退一个事务表中的没有提交的事务 表示 时失败 原因: 原因: 所涉及的目标属于一个 所涉及的目标属于一个offline的datafile或tablespace 的 或 undo涉及的目标被破坏或 涉及的目标被破坏或rollback segment被破坏 涉及的目标被破坏或 被破坏 CONTINUE Technical Seminar
ORACLE常见问题分析 常见问题分析
CONTINUE 备份所有旧的 备份所有旧的control file 编辑 编辑initsid.ora, 修改 db_name=newdbname sqldba>startup nomount sqldba>@ccf sqldba>alter database open