Oracle_ORA一些错误整理

合集下载

Oracle数据库操作常见错误及解决方案

Oracle数据库操作常见错误及解决方案

Oracle数据库操作常见错误及解决方案 ORA-01650:unable to extend rollback segment NAME by NUM intablespace NAME产生原因:上述ORACLE错误为回滚段表空间不足引起的,这也是ORACLE数据管理员最常见的ORACLE错误信息。

当用户在做一个非常庞大的数据操作导致现有回滚段的不足,使可分配用的回滚段表空间已满,无法再进行分配,就会出现上述的错误。

解决方式:使用“ALTER TABLESPACE tablespace_name ADD DATAFILE filename SIZE size_of_file”命令向指定的数据增加表空间,根据具体的情况可以增加一个或多个表空间。

当然这与还与你主机上的裸盘设备有关,如果你主机的裸盘设备已经没有多余的使用空间,建议你不要轻意的增加回滚段表空间的大小,可使用下列的语句先查询一下剩余的tablespace空间有多少:Select user_name,sql_text fromV$open_cursor where user_name=’<user_name>’;如果多余的空间比较多,就可以适当追加一个大的回滚段给表空间使用,从而避免上述的错误。

你也可以用以下语句来检测一下rollback segment的竞争状况:Select class,count from V$waitstat where calss in(‘system undo header’,’system undo block’,’undo header’,’undo block’);和Select sum(value) from V$sysstat where name in(‘db_block_gets’,’consistents gets’);如果任何一个class in count/sum(value)大于1%,就应该考虑增加rollback segment。

oracle常见故障处理手册

oracle常见故障处理手册

oracle常见故障处理手册一、数据库启动与关闭故障1.数据库启动失败原因:可能是由于Oracle数据库配置不正确、系统环境变量设置不正确、初始化参数设置不正确等原因导致。

解决方法:检查数据库日志文件,查看错误信息,根据错误信息进行相应的修复。

2.数据库关闭失败原因:可能是由于数据库事务未完成、数据库锁未释放等原因导致。

解决方法:检查数据库日志文件,查看错误信息,根据错误信息进行相应的修复。

二、连接故障1.连接不成功原因:可能是由于网络连接问题、数据库用户名或密码错误、数据库实例名错误等原因导致。

解决方法:检查网络连接是否正常,检查数据库用户名和密码是否正确,检查数据库实例名是否正确。

2.连接断开原因:可能是由于网络不稳定、数据库服务器异常等原因导致。

解决方法:检查网络连接是否正常,检查数据库服务器是否正常。

三、数据恢复故障1.数据丢失原因:可能是由于数据库损坏、磁盘故障等原因导致。

解决方法:根据数据丢失的原因,选择相应的恢复方法,如使用备份恢复数据或使用日志文件恢复数据。

2.数据不一致原因:可能是由于数据修改不一致、数据复制不一致等原因导致。

解决方法:检查数据修改和复制的日志文件,找到不一致的数据并修复。

四、性能优化故障1.性能下降原因:可能是由于CPU占用过高、内存占用过高、磁盘IO过大等原因导致。

解决方法:优化数据库配置参数,如增加内存、优化磁盘IO等。

2.查询速度慢原因:可能是由于查询语句不优化、表没有建立索引等原因导致。

解决方法:优化查询语句,为表建立索引等。

五、存储管理故障1.存储空间不足原因:可能是由于磁盘空间不足、表空间不足等原因导致。

解决方法:清理磁盘空间,增加磁盘空间,调整表空间大小等。

2.数据文件丢失或损坏原因:可能是由于磁盘故障、人为误删除或修改等原因导致。

解决方法:使用备份恢复数据文件或修复损坏的数据文件。

六、网络连接故障1.网络连接中断原因:可能是由于网络设备故障、网络连接线故障等原因导致。

oracle错误ORA-01017问题分析与解决方法

oracle错误ORA-01017问题分析与解决方法

Oracle常见错误 ORA-01017通常表示用户名或密码不正确,但在您的情况下,问题可能与 Oracle 11g 客户端和 Oracle 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 19c 数据库实例:sqlplus / as sysdba重新设置用户密码:ALTER USER <username> IDENTIFIED BY <new_password>;5. 检查和调整数据库参数某些数据库参数可能需要调整以支持旧版本客户端的连接。

Oracle在命令窗口ORA错误提示相关说明(下)

Oracle在命令窗口ORA错误提示相关说明(下)

Oracle 使用PLSQL或sqlplus中脚本窗口和sql窗口提示ORA错误相关说明(下) 前言:在Oracle 使用PLSQL或sqlplus中脚本窗口和sql窗口等时候,我们需要输入sql语句或者Oracle自带的程序设置、脚本命令时候,一旦出现错误或者命令未结束,都会弹出相关提示,根据提示我在这里进行汇总。

我是HadesZ 相关计算机类学习可联系1107712415以下为ORA提示的相关记录,主要是从网站上收集汇总:ORA-20005:对象的统计数据都是锁着的说明:统计信息锁着,无法导入报错,大多由不同Oracle版本间EXP\IMP引起。

解决:待imp结束后,先执行DBMS_STATS.UNLOCK_TABLE_STATS('MID_SC','DM_OLD_FEATURE_VALUE');再analyze table即可。

ORA-22992: 无法使用从远程表选择的LOB 定位器说明:当通过DBLINK连接数据库,select的表有CLOB字段的时候,就会报这个错。

解决办法在数据库新建一张临时表把数据插进去。

ORA-22813:操作数值超出系统的限制说明:select wm_concat(TECH_OBJECT_NAME) TECH_OBJECT_NAME from PROD_EXPERIMENT_OBJECT@zwsc_gz,合并完之后TECH_OBJECT_NAME字段长度超过4000ORA-27101:shared memory realm does not existORA-25156:旧样式的外部联接(+)不能与ANSI联接一起使用说明:当新式外部联接(例如left join)和旧式外部联接(例如 a.g3e_fid = b.g3e_fid(+))一起使用,就会报此类错误。

解决:全部改为新式外部联接。

ORA-27486:权限不足ORA-28000:账号已被锁定解决1:alter profile default limit FAILED_LOGIN_ATTEMPTS 20;--设置为错误20次才锁定ORA-28002:the password will expire within 10 days.密码将在10天内到期。

oracle操作常见错误

oracle操作常见错误

1.[Err] ORA-02438: Column check constraint cannot reference other columnsORA-02438: 列检查约束条件无法引用其它列--通常可能是constraint 拼写错误2. [Err] ORA-02250: missing or invalid constraint name约束条件名缺失或者无效。

比如:alter table tbl_schooladd s_level number(7) constraint unique; //错误的====add s_level number(7) unique; 正确的4. [Err] ORA-01861: literal does not match format stringORA-01861: 文字与格式字符串不匹配比如:insert into tbl_school(id,s_name,address,establish_time,style)values(1,'清华','北京','1976-05-05','理');日期的输入,要有固定的格式=====values(1,'清华','北京',to_date('1976-05-01','rrrr-mm-dd'),'理');5:select index_name,table_name from user_indexesWhere table_name=’s_emp’;提示错误:为选定行。

‘’里面的就变成了字符串,是区分大小写的,select index_name,table_name from user_indexesWhere table_name=’S_EMP’;6:Ora-02290【】违反检查约束条件可能原因:check里面出错,在传值的时候,出现乱码了,只能重建表7.A.number类型如果是后面带小数点的呢,最好在实体类里面做一下转化。

ORACLE错误大全

ORACLE错误大全
ORA-00237: 快照操作不允许: 控制文件新近创建
ORA-00238: 操作将重用属于数据库一部分的文件名
ORA-00250: 未启动存档器
ORA-00251: LOG_ARCHIVE_DUPLEX_DEST 不能是与字符串 相同的目的地
ORA-00252: 日志 在线程 上为空,无法存档
ORA-00327: 日志 (线程 ),实际大小 小于需要的
ORA-00328: 归档日志在更改 结束,需要稍后的更改
ORA-00329: 归档日志在更改 开始,需要更改
ORA-00330: 归档日志在更改 结束,需要更改
ORA-00331: 日志版本 与 ORACLE 版本 不兼容
ORA-00332: 归档日志过小 - 可能未完全归档
ORA-00253: 字符限制在 以内,归档目的字符串 超出此限制
ORA-00254: 存档控制字符串 '' 时出错
ORA-00255: 存档日志 (线程 , 序列 # ) 时出错
ORA-00256: 无法翻译归档目的字符串
ORA-00257: 存档器错误。在释放之前仅限于内部连接
ORA-00258: NOARCHIVELOG 模式下的人工存档必须标识日志
ORA-00317: 标题中的文件类型 不是日志文件
ORA-00318: 日志 (线程 ),预计文件大小 与 不匹配
ORA-00319: 日志 (线程 ) 具有错误的日志重置状态
ORA-00320: 无法从日志 (线程 ) 读取文件标题
ORA-00321: 日志 (线程 ),无法更新日志文件标题
ORACLE错误大全2(2009-11-20 18:14:13)

oracle数据库中ora-报错原因及处理

oracle数据库中ora-报错原因及处理

ORA-00214 控制文件''版本与文件''版本不一致 ORA-00215 必须至少存在一个控制文件 ORA-00216 无法重新调整从8.0.2移植的控制文件大小 ORA-00217 从9.0.1进行移植无法重新调整控制文件的大小 ORA-00218 控制文件的块大小与DB_BLOCK_SIZE()不匹配 ORA-00219 要求的控制文件大小超出了允许的最大值 ORA-00220 第一个例程未安装控制文件,有关详情,请检查警告日志 ORA-00221 写入控制文件出错 ORA-00222 操作将重新使用当前已安装控制文件的名称 ORA-00223 转换文件无效或版本不正确 ORA-00224 控制文件重设大小尝试使用非法记录类型() ORA-00225 控制文件的预期大小与实际大小不同 ORA-00226 备用控制文件打开时不允许进行操作 ORA-00227 控制文件中检测到损坏的块:(块,#块) ORA-00228 备用控制文件名长度超出了最大长度 ORA-00229 操作不允许:已挂起快照控制文件入队 ORA-00230 操作不允许:无法使用快照控制文件入队 ORA-00231 快照控制文件未命名 ORA-00232 快照控制文件不存在,已损坏或无法读取 ORA-00233 控制文件副本已损坏或无法读取 ORA-00234 标识或打开快照或复制控制文件时出错 ORA-00235 控制文件固定表因并发更新而不一致 ORA-00236 快照操作不允许:挂上的控制文件为备份文件 ORA-00237 快照操作不允许:控制文件新近创建 ORA-00238 操作将重用属于数据库一部分的文件名 ORA-00250 未启动存档器 ORA-00251 LOG_ARCHIVE_DUPLEX_DEST不能是与字符串相同的目的地 ORA-00252 日志在线程上为空,无法存档 ORA-00253 字符限制在以内,归档目的字符串超出此限制 ORA-00254 存档控制字符串''时出错 ORA-00255 存档日志(线程,序列#)时出错 ORA-00256 无法翻译归档目的字符串 ORA-00257 存档器错误。在释放之前仅限于内部连接 ORA-00258 NOARCHIVELOG模式下的人工存档必须标识日志 ORA-00259 日志(打开线程)为当前日志,无法存档 ORA-00260 无法找到联机日志序列(线程) ORA-00261 正在存档或修改日志(线程)

Oracle常见错误及解决方案

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数据库的初始密码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、ORA-12560: TNS: 协议适配器错误场景:在cmd窗口输入:sqlplus "/as sysdba"想打开数据库时报的错;原因:没有启动Oracle服务器;解决:WIN+R,跳出运行窗口,输入"services.msc",打开服务窗口;找到OracleServiceORACLE服务,查看是否为启动,右键启动即可。

2、ORA-12541:TNS:no listener场景:用pl/sql developer客户端连接数据库;原因:监听器没有启动;解决:打开服务,启动OracleOraDB12Home1TNSListener。

3、ORA-28547:connection to server failed,probable Oracle Net admin error 场景:将监听器配置文件:listener.ora中的SID_NAME 更改后导致的;原因:多数是因为navicat本地的OCI版本与Oracle服务器器不符造成的;解决:将SID_NAME修改为原来的名称。

4、ORA-01438因为插入的数值大于所在的列的最大允许精度。

5、ORA-12899字符值大于此列指定的允许精度6、ORA-00942:表或视图不存在表或试图不存在7、ORA-01400: 无法将NULL 插入("SCOTT"."ITEMS"."ITEMNAME")因向表中插入数据时,主键/约束的列为空。

8、ORA-00001: 违反唯一约束条件(SCOTT.PK_ITEMS)因想表中插入数据时,某列设置了唯一约束,插入的值,表中已经存在了。

9、ORA-01017: 用户名/口令无效; 登录被拒绝有可能用户名或者密码错误10、ORA-01507有可能是关系数据库后,启动的时候没有加载数据库,如:startup nomount就是启动实例不加载数据库的11、ORA-01034: ORACLE not available数据库处于关闭状态。

12、ORA-01045: user MENG lacks CREATE SESSION privilege; logon denied 该用户没有连接到数据库的权限,解决:grant connect, resource to 用户名;13、ORA-28000: the account is locked账户被锁定;使用命令解锁用户。

命令为:alter user username account unlock;重置用户密码。

命令为:alter user username identified by password;其中username为用户名,password为新密码。

14、ORA-00904: "EMP": 标识符无效答:①数据库中引用到的列和自己SQL中书写的列名是否一致;②对于某些工具生成的SQL,可能导致列名和期望不符的情况,比如cmd使用双引号会报错,使用单引号'';15、ORA-00936: 缺失表达式答:一般是关键字的问题。

如:select id,name,from test_index; 问题是多了一个逗号导致的。

16、ORA-01109数据库未打开(先试一下红色字体的命令)答:造成上述问题的原因是误把'F:\ORADB.DEF'这个数据文件删掉了,这种删法是不正常的,如果删掉了用户及表空间,然后再把数据文件删除应该是没问题的,但这次只是把数据文件删掉了,用户及表空间还在。

解决方法:1)MOUNT数据库:STARTUP MOUNT ;2)OFFLINE DROP数据文件:ALTER DATABASE DATAFILE '<full_path_file_name>' OFFLINE DROP;3)打开数据库:ALTER DATABASE OPEN;ps:这时候再open数据库就ok了4)删除表空间:DROP TABLESPACE <tablespace_name> INCLUDING CONTENTS;ps:如果是误删的,只需重建表空间即可。

具体操作:SQL> startup mountORA-01081: 无法启动已在运行的ORACLE - 请首先关闭它SQL> shutdown immediateORA-01109: 数据库未打开已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mountORACLE 例程已经启动。

Total System Global Area 612368384 bytesFixed Size 1250428 bytes Variable Size 167775108 bytesDatabase Buffers 436207616 bytesRedo Buffers 7135232 bytes数据库装载完毕。

SQL> alter database datafile 'F:\ORADB.DEF'offline drop2 ;数据库已更改。

SQL> alter database open;数据库已更改。

SQL> drop tablespace oradb including contents;表空间已删除。

17、ORA-28009:connection as SYS should be as SYSDBA OR SYSOPER (1)情况一:使用sqlplus登录口令+as sysdba(2)情况二:使用PL/SQL登录登录界面的时候,将“连接为”选项框的Normal改为SYSDBA或SYSOPER18、ORA-01078: failure in processing system parametersLRM-00109: could not open parameter file '/u01/app/oracle/produ ct/11.2.0/db_1/dbs/initsales.ora'答:将$ORACLE_BASE/admin/orcl/pfile目录下的init.ora.0212012125517形式的文件copy到$ORACLE_HOME/dbs目录下initoracl.ora,然后把文件名改为initsales.ora;最后更改文件的权限。

例如命令如下:cp /u01/app/oracle/admin/orcl/pfile/init.ora* /u01/app/oracle/produ ct/11.2.0/db_1/dbsmv init.ora.* initsales.orachmod -R oracle:oinstall initsales.ora19、ORA-12170:TNS:连接超时客户端连接Linux数据库报错,一般情况是端口问题。

修改iptables,开放1521端口,允许1521端口被连接,vi /etc/sysconfig/iptables#允许21端口通过防火墙-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT20、ORA-12514TNS 监听程序当前无法识别连接描述符中请求服务原因:监听配置文件listener.ora中可以不必指定监听的服务名(安装Oracle10g后也是没有指定的)。

正常情况下一般只要数据库启动,客户端连接数据库也没有什么问题,但是有时重复启动关闭也会出现ORA-12514错误。

解决:(1)通过重启服务的方式启动数据库,再次连接尝试。

(2)∙正确添加listener.ora;∙重新启动了oracle服务器,并检查oracle所有服务是否启动;∙oracle客户端Net Cofiguration Assistant正确添加或重新配置实例名,如:(红色粗体部分是添加进去的,注意:一定要放进蓝色括号内不然会导致启动不了监听器)# listener.ora Network Configuration File: D:\Database\Oracle\product\instantclien t_11_2\listener.ora# Generated by Oracle configuration tools.SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = CLRExtProc)(ORACLE_HOME = D:\Database\oracle\product\11.2.0\dbhome_1)(PROGRAM = extproc)(ENVS = "EXTPROC_DLLS=ONLY:D:\Database\oracle\product\11.2.0\dbhome_ 1\bin\oraclr11.dll"))(SID_DESC =(GLOBAL_DBNAME = ORCL)(ORACLE_HOME = D:\Database\oracle\product\11.2.0\dbhome_1)(SID_NAME = ORCL)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))))ADR_BASE_LISTENER = D:\Database\oracle21、ORA-00937: 不是单组分组函数select 列表项中除了包含聚合函数外,还包含了表的某些列,那么你将必须使用group by 语句,否则语法通不过。

例如:SELECT deptno,COUNT(empno)FROM emp;会报错,添加group by后就不会报错SELECT deptno,COUNT(empno)FROM empGROUP BY deptno;。

相关文档
最新文档