Oracle数据库操作常见错误
- 格式:doc
- 大小:36.50 KB
- 文档页数:9
oracle server session terminated byfatal error“Oracle server session terminated by fatal error”是Oracle数据库系统出现的一种错误提示,该错误通常表明,在对数据库进行读取、写入、更新等操作时,系统发生了严重的故障。
以下是围绕这一错误提示的详细分步骤阐述:1. 确认错误提示当系统发生“oracle server session terminated by fatal error”错误时,系统会自动弹出一个错误提示框,告诉您出现了一个严重的故障。
首先,您需要确认这个错误提示。
2. 记录错误编号在错误提示框中,系统会为错误分配一个唯一的错误编号。
这个编号是您解决问题的关键。
请务必记录下此编号,以便迅速查找有关解决此错误的文档和论坛帖子。
3. 关闭应用程序当您确认错误提示后,请关闭运行此应用程序的计算机。
在某些情况下,应用程序的某些进程可能会继续运行,进一步破坏数据库。
为了避免进一步的损害,请关闭应用程序。
4. 检查网络连接在某些情况下,出现“orac le server session terminated by fatal error”错误可能是由于网络连接问题造成的。
请检查您的网络连接是否正常。
如果您发现网络出现了问题,请解决这些问题以恢复连接。
5. 恢复数据库如果您确认出现了“oracle server session terminated by fatal error”错误是由于数据库故障造成的,请恢复数据库。
有几种方法可以恢复数据库:a. 运行Oracle Repair命令。
此命令将检查数据库并尝试恢复任何受损的表格和索引。
b. 使用Oracle RMAN备份和恢复工具。
这个工具可以从备份映像中恢复数据库。
c. 如果上述方法都无法恢复数据库,请联系Oracle技术支持。
6. 避免未来的错误为了避免未来的“oracle server session terminated byfatal error”错误,请执行以下操作:a. 对数据库进行定期维护。
ORACLE 数据库故障解决方案引言概述:ORACLE 数据库是目前企业常用的一种数据库管理系统,但在使用过程中难免会遇到各种故障。
本文将介绍一些常见的 ORACLE 数据库故障,并提供相应的解决方案,帮助读者更好地应对数据库故障。
一、数据库连接问题1.1 连接超时:当数据库连接超时时,可以通过增加连接超时时间的方式解决。
在 ORACLE 数据库中,可以通过修改 sqlnet.ora 文件中的SQLNET.INBOUND_CONNECT_TIMEOUT 参数来设置连接超时时间。
1.2 连接被拒绝:如果数据库连接被拒绝,可能是由于数据库实例未启动、监听器未启动或者网络故障等原因导致。
解决方案包括启动数据库实例、启动监听器以及检查网络连接是否正常。
1.3 连接池问题:当数据库连接池达到最大连接数时,新的连接请求会被拒绝。
解决方案包括增加连接池的最大连接数、释放闲置连接以及优化数据库连接的使用。
二、数据丢失问题2.1 意外删除数据:当数据被意外删除时,可以通过数据库备份和恢复的方式解决。
可以使用RMAN 工具进行数据库备份,并在需要时使用备份进行恢复操作。
2.2 数据库文件损坏:当数据库文件损坏时,可以使用 RMAN 工具进行数据库文件的修复。
RMAN 提供了诊断和修复数据库文件的功能,可以帮助解决数据库文件损坏的问题。
2.3 数据库坏块:当数据库出现坏块时,可以使用 RMAN 工具进行坏块的修复。
RMAN 提供了坏块检测和修复的功能,可以帮助解决数据库坏块问题。
三、性能问题3.1 慢查询:当数据库查询变慢时,可以通过优化查询语句、创建索引、增加硬件资源等方式解决。
可以使用 Explain Plan 工具来分析查询语句的执行计划,找出慢查询的原因,并进行相应的优化。
3.2 死锁:当数据库出现死锁时,可以通过锁等待超时、死锁检测和解锁等方式解决。
可以使用 V$LOCK 和 V$SESSION 视图来查看当前的锁信息,并根据情况进行相应的解锁操作。
oracle-14036的方法Oracle-14036是关于Oracle数据库中的错误代码,表示在进行某些操作时出现了缺少或无效的帐户信息。
虽然具体情况可能因操作而异,但一般可通过以下方法解决该错误:1. 检查帐户信息:首先,您需要确保您正在使用的帐户信息是有效的。
请确认帐户名和密码都正确,并且具有所需权限。
您可以使用SQL*Plus或其他方式登录到数据库并测试帐户是否正常。
2. 查看错误日志:如果您无法确定导致该错误的具体操作,可以查看数据库的错误日志。
您可以通过查看数据库的日志文件,如alert.log文件或日志视图来获取更多信息。
错误日志通常会提供错误的具体细节,帮助您确定问题所在。
3. 检查权限:请确保您的帐户具有执行相关操作所需的权限。
在Oracle数据库中,权限由角色或特定权限授予给用户。
您可以使用系统特权用户(如sysdba)检查并授予所需的权限。
4. 重新启动数据库:有时候需要重新启动数据库来解决此问题。
重新启动可以帮助清除缓存和恢复数据库的正常状态。
请确保您在重新启动之前已经保存了所有未保存的工作和数据。
5. 检查网络连接:在某些情况下,该错误可能是由于网络连接问题导致的。
请确保您的网络连接正常,并尝试重新连接数据库。
6. 检查数据库配置:确定您的数据库配置是否正确。
检查Oracle数据库参数文件(如spfile或init.ora)以确保数据库实例的必要配置参数正确设置。
7. 升级或打补丁:在某些情况下,此错误可能是由于Oracle 数据库版本过旧或存在已知错误引起的。
请确保您使用的是最新的数据库版本,并直接从Oracle官方网站下载和安装任何相关的补丁。
以上是解决Oracle-14036错误的一些常见方法。
如若问题仍然存在,请参考Oracle数据库官方文档、论坛或与Oracle支持人员联系以获取更详细的解决方案。
请注意,在实施任何解决方案之前,务必备份数据库以防止数据丢失。
Oracle错误代码大全ORA-01579: 复原过程中显现写错误ORA-01580: 创建操纵备份文件时出错ORA-01581: 尝试使用已分配的回退段 () 新区 ()ORA-01582: 无法打开要备份的操纵文件ORA-01583: 无法获得要备份的操纵文件的块大小ORA-01584: 无法获得要备份的操纵文件的文件大小ORA-01585: 标识备份文件时出错ORA-01586: 无法打开要备份的目标文件ORA-01587: 复制操纵文件的备份文件时出错ORA-01588: 要打开数据库那么必须使用 RESETLOGS 选项ORA-01589: 要打开数据库那么必须使用 RESETLOGS 或 NORESETLOGS 选项ORA-01590: 段可用列表数 () 超出最大数ORA-01591: 锁定已被有问题的分配事务处理挂起ORA-01592: 将第 7 版回退段 () 转换为 Oracle 8 版格式时出错ORA-01593: 回退段最正确大小 ( blks) 小于运算的初始大小 ( blks)ORA-01594: 尝试放回已开释的回退段 () 区 ()ORA-01595: 开释区 () 回退段 () 时出错ORA-01596: 无法在参数中指定系统ORA-01597: 无法改变联机或脱机系统回退段ORA-01598: 回退段''未联机ORA-01599: 无法获得回退段 (), 高速缓存空间已满ORA-01600: 至多只有一个""在子句""〔〕中ORA-01601: 子句""〔〕中的储备桶大小非法ORA-01603: 子句""〔〕中的分组大小非法ORA-01604: 子句""〔〕中的编号范畴非法ORA-01605: 子句""〔〕中缺少编号ORA-01606: gc_files_to_locks 不同于另一已安装例程的参数ORA-01608: 无法将回退段''联机,其状态为 ()ORA-01609: 日志是线程的当前日志 - 无法删除成员ORA-01610: 使用 BACKUP CONTROLFILE 选项的复原必须已完成ORA-01611: 线程编号无效 - 必须介于 1 和之间ORA-01612: 线程差不多启用ORA-01613: 线程只有日志 - 要求至少启用 2 个日志ORA-01614: 线程正忙 - 无法启用ORA-01615: 线程已安装 - 无法禁用ORA-01616: 线程已打开 - 无法禁用ORA-01617: 无法安装: 不是有效的线程编号ORA-01618: 线程未启用 - 无法安装ORA-01619: 线程已由另一例程安装ORA-01620: 没有可用于安装的公用线程ORA-01621: 数据库打开时无法重命名当前日志的成员ORA-01622: 必须指定线程编号 - 没有特定默认值ORA-01623: 日志是线程的当前日志 - 无法删除ORA-01624: 线程的紧急复原需要日志ORA-01625: 回退段''不属于此例程ORA-01626: 回退段号''无法处理更多事务处理ORA-01627: 回退段号''未联机ORA-01628: 已达到 max # extents ()〔回退段〕ORA-01629: 已达到 max # extents (),现在正在储存表空间的撤消ORA-01630: 表空间中的 temp 段达到 max # extents()ORA-01631: 表.达到 max # extents ()ORA-01632: 索引.达到 max # extents ()ORA-01633: 此操作需要 Real Application Clusters 选件ORA- 01634: 回退段号''立即脱机ORA-01635: 指定的回退段编号 '' 不可用ORA-01636: 回退段''已联机ORA-01637: 回退段''正被另一例程 (#) 使用ORA-01638: 参数不承诺 ORACLE 版本装载群集数据库ORA-01640: 无法将活动事务处理的表空间设置为只读ORA-01641: 表空间''未联机- 无法添加数据文件ORA-01642: 只读表空间''无需开始备份ORA-01643: 系统表空间无法设置为只读ORA-01644: 表空间''差不多是只读ORA-01645: 上次尝试设置读写已完成一半ORA-01646: 表空间''不是只读 - 无法设置为读写ORA-01647: 表空间''是只读,无法在其中分配空间ORA-01648: 日志是禁用线程的当前日志ORA-01649: 不承诺进行备份操纵文件操作ORA-01650: 回退段无法通过〔在表空间中〕扩展ORA-01651: 无法通过〔在表空间中〕扩展储存撤消段ORA-01652: 无法通过〔在表空间中〕扩展 temp 段ORA-01653: 表.无法通过〔在表空间中〕扩展ORA-01654: 索引.无法通过〔在表空间中〕扩展ORA-01655: 群集 . 无法通过 (在表空间中) 扩展ORA-01656: 最大区数 () 已在群集 . 中达到ORA-01657: 无效的 SHRINK 选项值ORA-01658: 无法为表空间中的段创建 INITIAL 区ORA-01659: 无法分配超出的 MINEXTENTS〔在表空间中〕ORA-01660: 表空间''已是永久性ORA-01661: 表空间''已是临时性ORA-01662: 表空间''非空且无法设置为临时性ORA-01663: 表空间''的内容不断变动ORA-01664: 扩展排序段的事务处理已终止ORA-01665: 操纵文件不是一个备用操纵文件ORA-01666: 操纵文件用于备用数据库ORA-01667: 无法添加任何其它表空间: 超出限制ORA-01668: 关于数据文件的脱机,备用数据库要求使用 DROP 选项ORA-01669: 备用数据库操纵文件不一致ORA-01670: 备用数据库复原需要新数据文件ORA-01671: 操纵文件是备份文件,无法设置备用操纵文件ORA-01672: 操纵文件可能缺少文件或具有额外文件ORA-01673: 未标识数据文件ORA-01674: 数据文件是一个旧的原型而非当前文件ORA-01675: max_commit_propagation_delay 与其它例程不一致ORA-01676: ''的备用文件名转换超出的最大长度ORA-01677: 备用文件名转换参数不同于其它例程ORA-01678: 参数必须是一对样式字符串和取代字符串ORA-01679: 数据库必须以 EXCLUSIVE 安装且未打开以激活ORA-01680: 无法通过〔在表空间中〕扩展 LOB 段ORA-01681: max # extents () 已在表空间中的 LOB 段达到ORA-01682: 只读 DB 无法在表空间中分配临时空间ORA-01683: 索引.分区无法通过〔在表空间中〕扩展ORA-01684: max # extents () 已在表.分区中达到ORA-01685: max # extents () 已在索引.分区中达到ORA-01686: max # files () 关于表空间已达到ORA-01687: 表空间''的指定记录属性与现有属性相同ORA-01688: 表.分区无法通过〔在表空间中〕扩展ORA-01689: 子句""〔〕中显现语法错误ORA-01690: 排序区太小ORA-01691: Lob 段.无法通过〔在表空间中〕扩展ORA-01692: Lob 段.分区无法通过〔在表空间中〕扩展ORA-01693: max # extents () 已在 lob 段.中达到ORA-01694: max # extents () 已在 lob 段.分区中达到ORA-01695: 将回退段转换为版本 8.0.2 时出错ORA-01696: 操纵文件不是 '克隆' 操纵文件ORA-01697: 操纵文件用于 '克隆' 数据库ORA-01698: '克隆' 数据库仅能够具有 SYSTEM 联机回退段ORA-01699: 正在导入表空间''以用于时刻点复原ORA-01700: 列表中的用户名重复ORA-01701: 此处不承诺有群集ORA-01702: 此处不承诺有视图ORA-01703: 缺少 SYNONYM 关键字ORA-01704: 文字字符串过长ORA-01705: 无法在关联列中指定外部连接ORA-01706: 用户函数的结果值过大ORA-01707: 缺少 LIST 关键字ORA-01708: 需要 ACCESS 或 SESSIONORA-01709: 程序不存在ORA-01710: 缺少 OF 关键字ORA-01711: 列出的权限重复ORA-01712: 您不能授予不具有的权限ORA-01713: 该权限的 GRANT OPTION 不存在ORA-01714: 执行用户函数时出错ORA-01715: UNIQUE 不能够与簇索引一起使用ORA-01716: NOSORT 不能够与簇索引一起使用ORA-01717: seccta: 访问已过时的模式标记无效ORA-01718: NOAUDIT 不承诺 BY ACCESS | SESSION 子句ORA-01719: OR 或 IN 操作数中不承诺外部连接运算符 (+)ORA-01720: 授权选项关于'.'不存在ORA-01721: USERENV(COMMITSCN) 在事务处理中调用了多次ORA-01722: 无效数字ORA-01723: 不承诺长度为 0 的列ORA-01724: 浮点〔数〕精确度超出范畴〔1 到 126〕ORA-01725: 此处不承诺 USERENV('COMMITSCN')ORA-01726: 此处不承诺有表ORA-01727: 数字精度说明符超出范畴〔1 到 38〕ORA-01728: 数字标度说明符超出范畴〔-84 到 127〕ORA-01729: 需要数据库链接名ORA-01730: 指定的列名数无效ORA-01731: 显现循环的视图定义ORA-01732: 此视图的数据操纵操作非法ORA-01733: 此处不承诺虚拟列ORA-01734: 非法的参数 - EXTENT MIN 高于 EXTENT MAXORA-01735: 非法的 ALTER TABLE 选项ORA-01736: 需要 [NOT] SUCCESSFULORA-01737: 有效模式: [ROW] SHARE, [[SHARE] ROW] EXCLUSIVE, SHARE UPDATE ORA-01738: 缺少 IN 关键字ORA-01739: 缺少 MODE 关键字ORA-01740: 标识中缺少双引号ORA-01741: 非法的零长度标识ORA-01742: 备注错误终止ORA-01743: 仅能编制纯函数的索引ORA-01744: 不合理的 INTOORA-01745: 无效的主机/赋值变量名ORA-01746: 此处不承诺指示符变量ORA-01747: 无效的用户.表.列,表.列,或列规格ORA-01748: 此处只承诺简单的列名ORA-01749: 用户不能够自/至自己 GRANT/REVOKE 权限ORA-01750: UPDATE/REFERENCES 仅能够从整个表而不能按列 REVOKEORA-01751: 无效的转储撤消选项ORA-01752: 不能从没有一个键值储存表的视图中删除ORA-01753: 列定义与聚簇列定义不兼容ORA-01754: 表只能包含一个 LONG 类型的列ORA-01755: 必须指定区编号或块编号ORA-01756: 括号内的字符串没有正确终止ORA-01757: 必须指定对象编号ORA-01758: 要添加法定 (NOT NULL) 列,那么表必须为空ORA-01759: 未正确定义用户函数ORA-01760: 函数的参数非法ORA-01761: DML 操作与连结中的唯独表不对应ORA-01762: vopdrv: FROM 中没有视图查询块ORA-01763: 更新或删除涉及到外部连结表ORA-01764: 连结的新更新值不能保证为唯独ORA-01765: 不承诺指定表的所有者名ORA-01766: 此上下文中不承诺有字典表ORA-01767: UPDATE ...SET 表达式必须是子查询ORA-01768: 数字字符串过长ORA-01769: 重复的 CLUSTER 选项说明ORA-01770: CREATE CLUSTER 命令中不承诺有 CLUSTER 选项ORA-01771: 选项对聚簇表非法ORA-01772: 必须指定 LEVEL 的值ORA-01773: 此 CERATE TABLE 中没有指定列的数据类型ORA-01774: 转储撤消选项指定了多次ORA-01775: 同义词的循环嵌套链ORA-01776: 无法通过连接视图修改多个基表ORA-01777: 此系统中不承诺 WITH GRANT OPTIONORA-01778: 超出最大子查询的嵌套层ORA-01779: 无法修改与非键值储存表对应的列ORA-01780: 要求文字字符串ORA-01781: UNRECOVERABLE 不能指定没有 AS SELECTORA-01782: 不能为群集或聚簇表指定 UNRECOVERABLEORA-01783: 只能够指定 RECOVERABLE 或 UNRECOVERABLE 子句ORA-01784: 不能指定 RECOVERABLE 具有禁用的数据库介质复原ORA-01785: ORDER BY 项必须是 SELECT-list 表达式的数目ORA- 01786: 此查询表达式不承诺 FOR UPDATEORA-01787: 每个查询块只承诺有一个子句ORA-01788: 此查询块中要求 CONNECT BY 子句ORA-01789: 查询块具有不正确的结果列数ORA-01790: 表达式必须具有与对应表达式相同的数据类型ORA-01791: 不是 SELECTed 表达式ORA-01792: 表或视图中的最大列数为 1000ORA-01793: 索引列的最大数为 32ORA-01794: 群集列的最大数目为 32ORA-01795: 列表中的最大表达式数为 1000ORA-01796: 此运算符不能与列表一起使用ORA-01797: 此运算符后面必须跟 ANY 或 ALLORA-01798: 缺少 EXCEPTION 关键字ORA-01799: 列不能够外部连接到子查询ORA-01800: 日期格式中的文字过长以致无法处理ORA-01801: 日期格式关于内部缓冲区过长ORA-01802: Julian 日期超出范畴ORA-01803: 无法获得日期/时刻ORA-01804: 时区信息无法初始化ORA-01810: 格式代码显现两次ORA-01811: Julian 日期导致年度中的日无法使用ORA-01812: 只能够指定一次年度ORA-01813: 只能够指定一次小时ORA-01814: AM/PM 因使用 A.M./P.M. 而发生冲突ORA-01815: BC/AD 因使用 B.C./A.D. 而发生冲突ORA-01816: 只能够指定一次月份ORA-01817: 只能够指定一次周中的日ORA-01818: 'HH24' 导致上下午指示符无法使用ORA-01819: 带符号的年度导致 BC/AD 无法使用ORA-01820: 格式代码无法以日期输入格式显示ORA-01821: 日期格式无法识别ORA-01822: 此日历的纪元格式代码无效ORA-01830: 日期格式图片在转换整个输入字符串之前终止ORA-01831: 年度与 Julian 日期发生冲突ORA-01832: 年度中的日与 Julian 日期发生冲突ORA-01833: 月份与 Julian 日期发生冲突ORA-01834: 月份中的日与 Julian 日期发生冲突ORA-01835: 周中的日与 Julian 日期发生冲突ORA-01836: 小时与日中的秒发生冲突ORA-01837: 小时中的分与日中的秒发生冲突ORA-01838: 分中的秒与日中的秒发生冲突ORA-01839: 指定月份的日期无效ORA-01840: 输入值关于日期格式不够长ORA-01841: 〔全〕年度值必须介于 -4713 和 +9999 之间,且不为 0 ORA-01842: 季度值必须介于 1 和 4 之间ORA-01843: 无效的月份ORA-01844: 年度中的周值必须介于 1 和 52 之间ORA-01845: 月份中的周值必须介于 1 和 5 之间ORA-01846: 周中的日无效ORA-01847: 月份中日的值必须介于 1 和当月最后一日之间ORA-01848: 年度中的日值必须介于 1 和 365 之间〔闰年为 366〕ORA-01849: 小时值必须介于 1 和 12 之间ORA-01850: 小时值必须介于 0 和 23 之间ORA-01851: 分钟值必须介于 0 和 59 之间ORA-01852: 秒值必须介于 0 和 59 之间ORA-01853: 日中的秒值必须介于 0 和 86399 之间ORA-01854: julian 日期必须介于 1 和 5373484 之间ORA-01855: 要求 AM/A.M. 或 PM/P.M.ORA-01856: 要求 BC/B.C. 或 AD/A.D.ORA-01857: 无效的时区ORA-01858: 在要求输入数字处找到非数字字符ORA-01859: 在要求输入字母处找到非字母字符ORA-01860: 年度中的周值必须介于 1 和 53 之间ORA-01861: 文字与格式字符串不匹配ORA-01862: 数字值与格式项目的长度不匹配ORA-01863: 年度不支持当前日历ORA-01864: 日期超出当前日历的范畴ORA-01865: 无效的纪元ORA-01866: 日期时刻类无效ORA-01867: 间隔无效ORA-01868: 间隔的前导精度太小ORA-01869: 保留以供今后使用ORA-01870: 间隔或日期时刻不是相互可比较的ORA-01871: 秒数必须少于 60ORA-01872: 保留以供今后使用ORA-01873: 间隔的前导精度太小ORA-01874: 时区小时必须在 -12 和 13 之间ORA-01875: 时区分钟必须在 -59 和 59 之间ORA-01876: 年份必须许多于 -4713ORA-01877: 内部缓冲区的字符串太长ORA-01878: 在日期时刻或间隔中没有找到指定的字段ORA-01879: hh25 字段必须在 0 和 24 之间ORA-01880: 零点几秒必须在 0 和 999999999 之间ORA-01881: 时区区域 ID %d 无效ORA-01882: 未找到时区区域ORA-01883: 在区域转换过程中禁用了重叠ORA-01890: 检测到 NLS 错误ORA-01891: 日期时刻/间隔内部错误ORA-01898: 精确度说明符过多ORA-01899: 错误的精度说明符ORA-01900: 需要 LOGFILE 关键字ORA-01901: 需要 ROLLBACK 关键字ORA-01902: 需要 SEGMENT 关键字ORA-01903: 需要 EVENTS 关键字ORA-01904: 需要 DATAFILE 关键字ORA-01905: 需要 STORAGE 关键字ORA-01906: 需要 BACKUP 关键字ORA-01907: 需要 TABLESPACE 关键字ORA-01908: 需要 EXISTS 关键字ORA-01909: 需要 REUSE 关键字ORA-01910: 需要 TABLES 关键字ORA-01911: 需要 CONTENTS 关键字ORA-01912: 需要 ROW 关键字ORA-01913: 需要 EXCLUSIVE 关键字ORA-01914: 审计选项关于序号无效ORA-01915: 审计选项关于视图无效ORA-01917: 用户或角色 '' 不存在ORA-01918: 用户''不存在ORA-01919: 角色''不存在ORA-01920: 用户名''与另外一个用户名或角色名发生冲突ORA-01921: 角色名''与另一个用户名或角色名发生冲突ORA-01922: 必须指定 CASCADE 以删除''ORA-01923: CASCADE 已中止,对象被另一用户锁定ORA-01924: 角色''未被授权或不存在ORA-01925: 超出已启用角色的最大数ORA-01926: 无法将 WITH GRANT OPTION GRANT 角色ORA-01927: 无法 REVOKE 您未授权的权限ORA-01928: 未对 GRANT 选项授权所有权限ORA-01929: 没有要 GRANT 的权限ORA-01930: 不支持审计对象ORA-01931: 无法将授予角色ORA-01932: ADMIN 选项未授权给角色''ORA-01933: 无法使用角色权限来创建储备对象ORA-01934: 检测到循环的角色授权ORA-01935: 缺少用户或角色名ORA-01936: 不能在创建用户或角色时指定所有者ORA-01937: 缺少或无效的角色名ORA-01938: 必须为 CREATE USER 指定 IDENTIFIED BY ORA-01939: 只能够指定 ADMIN OPTIONORA-01940: 无法删除当前已连接的用户ORA-01941: 需要 SEQUENCE 关键字ORA-01942: 无法同时指定 IDENTIFIED BY 和 EXTERNALLY ORA-01943: 差不多指定 IDENTIFIED BYORA- 01944: 差不多指定 IDENTIFIED EXTERNALLYORA-01945: 差不多指定 DEFAULT ROLE[S]ORA-01946: 差不多指定 DEFAULT TABLESPACEORA-01947: 差不多指定 TEMPORARY TABLESPACEORA-01948: 标识符的名称长度 () 超过最大长度 () ORA-01949: 需要 ROLE 关键字ORA-01950: 表空间''中无权限ORA-01951: ROLE ''未授予''ORA-01952: 系统权限未授予''ORA-01953: 命令不再有效,请参阅 ALTER USERORA-01954: DEFAULT ROLE 子句对 CREATE USER 无效ORA-01955: DEFAULT ROLE ''未授予用户ORA-01956: 使用 OS_ROLES 时命令无效ORA-01957: 需要的 MIN 或 MAX 关键字未找到ORA-01958: 必须为 LAYER 选项提供整数ORA-01959: 必须为 OPCODE 选项提供整数ORA-01960: 无效的转储日志文件选项ORA-01961: 无效的转储选项ORA-01962: 必须指定文件号或日志序号ORA-01963: 必须指定块编号ORA-01964: 必须为 TIME 选项指定时刻ORA-01965: 必须指定 PERIODORA-01967: 无效的 CREATE CONTROLFILE 选项ORA-01968: 仅指定 RESETLOGS 或 NORESETLOGS 一次ORA-01969: 您必须指定 RESETLOGS 或 NORESETLOGSORA-01970: 您必须为 CREATE CONTROLFILE 指定数据库名ORA-01971: 非法的 ALTER TRACING 选项ORA-01972: 必须为 ALTER TRACING ENABLE 或 DISABLE 指定字符串ORA-01973: 缺少更换编号ORA-01974: 非法的存档选项ORA-01975: 更换编号中的字符非法ORA-01976: 缺少更换编号ORA-01977: 缺少线程编号ORA-01978: 缺少序号ORA-01979: 角色''缺少口令或口令无效ORA-01980: OS ROLE 初始化过程中出错ORA-01981: 必须指定 CASCADE CONSTRAINTS 以执行此撤消ORA- 01982: 审计选项关于视图无效ORA-01983: 无效的 DEFAULT 审计选项ORA-01984: 无效的程序/程序包/函数审计选项ORA-01985: 因超出 LICENSE_MAX_USERS 参数而无法创建用户ORA-01986: 无效的 OPTIMIZER_GOAL 选项ORA-01987: 客户 OS 用户名过长ORA-01988: 不承诺远程 os 登录ORA-01989: 操作系统未授权角色''ORA-01990: 打开口令文件''时出错ORA-01991: 无效的口令文件''ORA-01992: 关闭口令文件''时出错ORA-01993: 写口令文件''时出错ORA-01994: GRANT 失败: 无法添加用户至公用口令文件ORA-01995: 读口令文件''时出错ORA-01996: GRANT 失败: 口令文件''已满ORA-01997: GRANT 失败: 用户''由外部标识ORA-01998: REVOKE 失败: 用户 SYS 始终具有 SYSOPER 和 SYSDBA ORA-01999: 口令文件模式已由''更换为''ORA-02000: 缺少关键字ORA-02001: 用户 SYS 不承诺创建可用列表组的索引ORA-02002: 写入审记线索时出错ORA-02003: 无效的 USERENV 参数ORA-02004: 违反安全性ORA-02005: 隐含 (-1) 长度对数据类型的定义和赋值无效ORA-02006: 无效的压缩十进制格式字符串ORA-02007: 不能使用含 REBUILD 的 ALLOCATE 或 DEALLOCATE 选项ORA-02020: 已指定非数字列的非零标度ORA-02020: 指定的文件大小不得为 0ORA-02020: 缺少主机连接字符串ORA-02020: 重复的数据库链接名ORA-02021: 缺少 USING 关键字ORA-02021: 缺少 CONNECT 关键字ORA-02021: 不能从具有 DISTINCT, GROUP BY 等的视图选择 UPDATE FOR ORA-02021: 不能从远程表选择 FOR UPDATEORA-02021: 不能在远程数据库中使用 START WITH 子查询ORA-02021: 要求整数值ORA-02020: 同名的数据库链接具有开放连接ORA-02021: 未找到远程数据库的连接说明ORA-02020: 过多的数据库链接在使用中ORA-02021: 不承诺对远程数据库进行 DDL 操作ORA-02022: 远程语句的远程对象具有未优化的视图ORA-02023: 远程数据库无法对 START WITH 或 CONNECT BY 谓词求值ORA-02024: 未找到数据库链接ORA-02025: SQL 语句的所有表均必须在远程数据库中ORA-02026: 缺少 LINK 关键字ORA-02027: 不支持 LONG 列的多行 UPDATEORA-02028: 服务器不支持行数的准确读取ORA-02029: 缺少 FLLE 关键字ORA-02030: 只能从固定的表/视图查询ORA-02031: 没有 ROWID 适用于固定表或外部组织的表ORA-02032: 聚簇表无法在簇索引建立之前使用ORA-02033: 此簇的簇索引差不多存在ORA-02034: 不承诺加速赋值ORA-02035: 非法的成组操作组合ORA-02036: 自动游标打开的变量描述过多ORA-02037: 未初始化的加速赋值储备ORA-02038: 不承诺对数组类型定义ORA-02039: 不承诺对数组类型赋值ORA-02040: 远程数据库不支持两段式提交ORA-02041: 客户数据库未开始一个事务处理ORA-02042: 分布式事务处理过多ORA-02043: 必须在执行之前终止当前事务处理ORA-02044: 事务处理治理器登录被拒绝: 事务处理正在进行ORA-02045: 全局事务处理中的本地会话过多ORA-02046: 分布式事务处理差不多开始ORA-02047: 无法连接运行中的分布式事务处理ORA-02048: 尝试不登录而开始分布式事务处理ORA-02049: 超时: 分布式事务处理等待锁定ORA-02050: 事务处理已重算,某些远程 DBs 可能有问题ORA-02051: 同一事务处理中的另一会话失败ORA-02052: 远程事务处理在失败ORA-02053: 事务处理已提交,某些远程 DBs 可能有问题ORA-02054: 事务处理有问题ORA-02055: 分布式更新操作失效;要求回退ORA-02056: 2PC: : 无效的两段命令编号〔源于〕ORA-02057: 2PC: : 无效的两段复原状态编号〔源于〕ORA-02058: 未找到 ID的预备事务处理ORA-02059: ORA-2PC-CRASH-TEST- 在提交备注中ORA-02060: 选择指定了分布表连接的更新ORA-02061: 锁定表指定了分布式表的列表ORA-02062: 分布式复原收到 DBID ,估量为ORA-02063: 紧接着〔源于〕ORA-02064: 不支持分布式操作ORA-02065: 非法的 ALTER SYSTEM 选项ORA-02066: DISPATCHERS 文本缺失或无效ORA-02067: 要求事务处理或储存点回退ORA-02068: 以下严峻错误源于ORA-02069: 此操作的 global_names 参数必须设置为 TRUE ORA-02070: 数据库不支持此上下文中的ORA-02071: 初始化远程数据库的功能时出错ORA-02072: 分布式数据库网络协议匹配错误ORA-02073: 远程更新中不支持序号ORA-02074: 无法在分布式事务处理中ORA-02075: 另一例程已更换事务处理的状态ORA-02076: 序列与更新表或 long 列位于不同的地点ORA-02077: 选择的 long 列必须来自于同一地点的表ORA-02078: ALTER SYSTEM FIXED_DATE 的设置无效ORA-02079: 没有新的会话可与提交的分布式事务处理连接ORA-02080: 数据库链接正在使用中ORA-02081: 数据库链接未打开ORA-02082: 回送数据库链接必须具有连结限定词ORA-02083: 数据库名称含有非法字符 ''ORA-02084: 数据库名不全ORA-02085: 数据库链接与相连结ORA-02086: 数据库 (链路) 名过长ORA-02087: 对象被同一事务处理的另一进程锁定ORA-02088: 未安装分布式数据库选项ORA-02089: COMMIT 不承诺在附属会话中ORA-02090: 网络错误: 试图 callback+passthruORA-02091: 事务处理已重算ORA-02092: 超出分布式事务处理的事务处理表槽ORA-02093: TRANSACTIONS_PER_ROLLBACK_SEGMENT() 大于最大的可能数 () ORA-02094: 未安装复制选项ORA-02095: 无法修改指定的初始化参数ORA-02096: 此选项的指定初始化参数不可修改ORA-02097: 无法修改参数,因为指定的值无效ORA-02098: 对索引表引用 (: I) 进行语法分析时出错ORA-02099: 内部使用,不得打印ORA-02100: PCC: 内存不足 (如无法分配)ORA-02101: PCC: 不一致的游标高速缓存 (uce/cuc 不匹配)ORA-02102: PCC: 不一致的游标高速缓存 (此 uce 无 cur 条目)ORA-02103: PCC: 不一致的游标高速缓存 (超出 cuc 的引用范畴)ORA-02104: PCC: 不一致的主高速缓存 (cuc 不可用)ORA-02105: PCC: 不一致的游标高速缓存 (高速缓存中无 cuc 条目)ORA-02106: PCC: 不一致的游标高速缓存 (OraCursor nr 已坏)ORA-02107: PCC: 对运行时库来说此程序过旧: 请重新对其编译ORA-02108: PCC: 无效的描述符传送给运行时库ORA-02109: PCC: 不一致的主高速缓存 (超出位置引用范畴)ORA-02110: PCC: 不一致的主高速缓存 (无效的 sqi 类型)ORA-02111: PCC: 堆栈 (Heap) 一致性错误ORA-02112: PCC: SELECT..INTO 返回过多行ORA-02140: 无效的表空间名称ORA-02141: 无效的 OFFLINE 选项ORA-02142: 缺少或无效的 ALTER TABLESPACE 选项ORA-02143: 无效的 STORAGE 选项ORA-02144: 未指定 ALTER CLUSTER 的选项ORA-02145: 缺少 STORAGE 选项ORA-02146: SHARED 指定了多次ORA-02147: 与 SHARED/EXCLUSIVE 选项冲突ORA-02148: EXCLUSIVE 指定了多次ORA-02149: 指定的分区不存在PL/SQL中预定义的专门名:。
Oracle错误ora-12514解决⽅法成功连到数据库上之后,查看listener状态:lsnrctl statusstatus READY 状态,需要由⾮归档转为归档模式,故操作如下:1.关闭数据库shutdown immediate 正常关闭;2.启动数据库到mount状态,startup mount,发⽣报错:3.此时查看listener状态: lsnrctl status为status BLOCKED状态,⽹上搜索解决⽅法4.重写listener.ora⽂件(蓝⾊为增加部分)SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = f:\oracle\product\10.1.0\Db_1)(PROGRAM = extproc))(SID_DESC =(GLOBAL_DBNAME = orcl)(ORACLE_HOME = f:\oracle\product\10.1.0\Db_1)(SID_NAME = orcl)))5.重启监听:lsnrctl start;查看状态lsnrctl status:为status UNKNOWN状态。
6.连到实例,关闭数据库,启动数据库到mount状态,均正常!查看某服务是动态注册或是静态注册。
可以使⽤命令lsnrctl status 来查看数据库是动态注册还是静态注册。
实例状态为UNKNOWN时,表⽰此服务是静态注册的设置,监听器表明他不知道关于该实例的任何信息,只有当⽤户发出连接请求时,他才检查该实例是否存在。
⽽动态注册的数据库通过状态信息中的状态为READY或BLOCKED来指明。
不管何时关闭数据库,动态注册的数据库都会动态的从监听器中注销掉,⽽与之相关的信息将会从状态列表消失,这样不管数据库是在运⾏还是已经关闭,监听器都知道他的状态。
待补充。
************************************************************ORACLE XE 修改⽅法解决办法:修改⽬录E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server\NETWORK\ADMIN下的⽂件tnsnames.ora、listener.ora将这两个⽂件中HOST后⾯的主机都修改为127.0.0.1然后重启OracleServiceXE、OracleXETNSListener服务这时pl/sql developer连接oracle时报出“ORA-12514: TNS: 监听程序当前⽆法识别连接描述符中请求的服务”的错误,再次修改listener.ora⽂件,修改前该⽂件内容为SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)(PROGRAM = extproc))(SID_DESC =(SID_NAME = CLRExtProc)(ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)(PROGRAM = extproc)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))))DEFAULT_SERVICE_LISTENER = (XE)修改的⽅式是:再在该⽂件中添加⼀个需要连接的数据库实例的描述,就是添加⼀个SID_DESC,我⾃⼰连接的数据库实例是XE,添加后的⽂件内容为:SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)(PROGRAM = extproc))(SID_DESC =(SID_NAME = CLRExtProc)(ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server)(PROGRAM = extproc))(SID_DESC =(SID_NAME = XE)(ORACLE_HOME = E:\Oracle10gXEUniv\app\oracle\product\10.2.0\server))/*红⾊字体部分即为新加的数据库实例XE的实例描述,注意该实例描述的ORACLE_HOME后⾯不能像其它实例那样加(PROGRAM = extproc),否则会报“ORA-28547: TNS: 连接服务器失败,可能是Net8管理错误。
Oracle 错误一览表RA-00001: 违抗独一束缚前提(.)orA-00017: 要求会话以设置跟踪事宜orA-00018: 超出最大年夜会话数orA-00019: 超出最大年夜会话许可数orA-00020: 超出最大年夜过程数()orA- 00021: 会话从属于其它某些过程;无法转换会话orA-00022: 无效的会话ID;拜望被拒绝orA-00023: 会话引用过程私用内存;无法分别会话orA-00024: 单一过程模式下不许可从多个过程注册orA-00025: 无法分派orA-00026: 损掉或无效的会话IDorA-00027: 无法删去当前会话orA-00028: 您的会话己被删去orA-00029: 会话不是用户会话orA-00030: 用户会话ID 不存在。
orA-00031: 标记要删去的会话orA-00032: 无效的会话移植口令orA-00033: 当前的会话具有空的移植口令orA-00034: 无法在当前PL/SQL 会话中orA-00035: LICENSE_MAX_USERS 不克不及小于当前用户数orA-00036: 跨过递归SQL () 级的最大年夜值orA-00037: 无法转换到属于不合办事器组的会话orA-00038: 无法创建会话: 办事器组属于其它用户orA-00050: 猎取入队时操作体系掉足orA-00051: 等待资本超时orA-00052: 超出最大年夜入队资本数()orA-00053: 超出最大年夜入队数orA-00054: 资本正忙,要求指定NOWAITorA-00055: 超出DML 锁的最大年夜数orA-00056: 对象'.' 上的DDL 锁以不兼容模式挂起orA-00057: 超出临时表锁的最大年夜数orA-00058: DB_BLOCK_SIZE 必须为才可安装此数据库(非) orA-00059: 超出DB_FILES 的最大年夜值orA-00060: 等待资本时检测到逝世锁orA-00061: 另一个例程设置了不合的DML_LOCKSorA-00062: 无法获得DML 全表锁定;DML_LOCKS 为0 orA-00063: 超出LOG_FILES 的最大年夜数orA-00064: 对象过大年夜以至无法分派在此O/S (,)orA-00065: FIXED_DATE 的初始化掉败orA-00066: LOG_FILES 为但须要成为才可兼容orA-00067: 值对参数无效;至少必须为orA-00068: 值对参数无效,必须在和之间orA-00069: 无法获得锁定-- 禁用了表锁定orA-00070: 敕令无效orA-00071: 过程号必须介于1 和之间orA-00072: 过程""不活动orA- 00073: 敕令介于和个参数之间时应用orA-00074: 未指定过程orA-00075: 在此例程未找到过程""orA-00076: 未找到转储orA-00077: 转储无效orA-00078: 无法按名称转储变量orA-00079: 未找到变量orA-00080: 层次指定的全局区域无效orA-00081: 地址范畴[,) 弗成读orA-00082: 的内存大年夜小不在有效集合[1], [2], [4] 之内orA-00083: 警告: 可能破坏映射的SGAorA-00084: 全局区域必须为PGA, SGA 或UGAorA-00085: 当前调用不存在orA-00086: 用户调用不存在orA-00087: 敕令无法在长途例程上履行orA- 00088: 共享办事器无法履行敕令orA-00089: orADEBUG 敕令中无效的例程号orA-00090: 未能将内存分派给群集数据库orADEBUG 敕令orA-00091: LARGE_POOL_SIZE 至少必须为orA-00092: LARGE_POOL_SIZE 必须大年夜于LARGE_POOL_MIN_ALLOC orA-00093: 必须介于和之间orA-00094: 要求整数值orA-00096: 值对参数无效,它必须来自之间orA-00097: 应用oracle SQL 特点不在SQL92 级中orA-00099: 等待资本时产生超时,可能是PDML 逝世锁所致orA-00100: 未找到数据orA-00101: 体系参数DISPATCHERS 的说明无效orA-00102: 调剂法度榜样无法应用收集协定orA-00103: 无效的收集协定;供调剂法度榜样备用orA-00104: 检测到逝世锁;全部公用办事器已锁按等待资本orA-00105: 未设备收集协定的调剂机制orA-00106: 无法在连接到调剂法度榜样时启动/封闭数据库orA-00107: 无法连接到orACLE 监听器过程orA-00108: 无法设置调剂法度榜样以同步进行连接orA-00111: 因为办事器数量限制在, 因此没有启动所有办事器orA-00112: 仅能创建多达 (最多指定) 个调剂法度榜样orA-00113: 协定名过长orA-00114: 缺乏体系参数SERVICE_NAMES 的值orA-00115: 连接被拒绝;调剂法度榜样连接表已满orA-00116: SERVICE_NAMES 名过长orA-00117: 体系参数SERVICE_NAMES 的值超出范畴orA- 00118: 体系参数DISPATCHERS 的值超出范畴orA-00119: 体系参数的说明无效orA-00120: 未启用或安装调剂机制orA-00121: 在缺乏DISPATCHERS 的情形下指定了SHARED_SERVERSorA-00122: 无法初始化收集设备orA-00123: 余暇公用办事器终止orA-00124: 在缺乏MAX_SHARED_SERVERS 的情形下指定了DISPATCHERS orA-00125: 连接被拒绝;无效的演示文稿orA-00126: 连接被拒绝;无效的反复orA-00127: 调剂过程不存在orA-00128: 此敕令须要调剂过程名orA-00129: 监听法度榜样地址验证掉败''orA-00130: 监听法度榜样地址'' 无效orA-00131: 收集协定不支撑注册''orA-00132: 语法缺点或无法解析的收集名称''orA-00150: 反复的事务处理IDorA-00151: 无效的事务处理IDorA-00152: 当前会话与要求的会话不匹配orA-00153: XA 库中的内部缺点orA-00154: 事务处理监督器中的协定缺点orA-00155: 无法在全局事务处理之外履行工作orA-00160: 全局事务处理长度超出了最大年夜值()orA-00161: 事务处理的分支长度不法(许可的最大年夜长度为)orA-00162: 外部dbid 的长度超出了最大年夜值()orA-00163: 内部数据库名长度超出了最大年夜值()orA-00164: 在分布式事务处理中不许可自力的事务处理orA-00165: 不许可对长途操作进行可移植分布式自治转换ORACLE缺点一览表(2)作者ORA-00200: 无法创建操纵文件orA-00201: 操纵文件版本与orACLE 版本不兼容orA-00202: 操纵文件: ''orA-00203: 应用缺点的操纵文件orA-00204: 读操纵文件时掉足(块,# 块)orA-00205: 标识操纵文件掉足,有关详情,请检查警告日记orA-00206: 写操纵文件时掉足(块,# 块)orA-00207: 操纵文件不克不及用于同一数据库orA-00208: 操纵文件的名称数超出限制orA-00209: 操纵文件块大年夜小不匹配,有关详情,请检查警告日记orA-00210: 无法打开指定的操纵文件orA-00211: 操纵文件与先前的操纵文件不匹配orA-00212: 块大年夜小低于要求的最小大年夜小( 字节)orA-00213: 不克不及从新应用操纵文件;原文件大年夜小为,还需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: 存档器缺点。
Oracle协议适配器错误在Oracle数据库的使用过程中,可能会遇到各种错误和异常情况。
其中,协议适配器错误是比较常见的一种错误类型。
本文将介绍Oracle协议适配器错误的原因、解决方法以及一些常见的错误示例。
1. 什么是协议适配器错误在Oracle数据库中,协议适配器是用于与其他系统或者应用程序进行通信的组件。
它负责将不同的协议转换成数据库可以理解的格式,从而实现数据库与外部系统的数据交互。
当我们在使用Oracle数据库时,如果协议适配器出现错误,就会导致数据库无法正常与其他系统进行通信,从而影响到数据库的正常运行。
2. 协议适配器错误的原因协议适配器错误可能由多种原因引起,下面列举了一些常见的原因:•网络问题:网络连接不稳定、防火墙配置错误等问题,都可能导致协议适配器错误的发生。
•配置错误:协议适配器的配置文件中存在错误或者缺失,都会导致错误的发生。
•版本不兼容:外部系统的协议与数据库的协议版本不兼容,也会导致协议适配器错误的发生。
•数据库配置错误:数据库的网络配置、监听器配置等方面的错误,也可能导致协议适配器错误的发生。
3. 如何解决协议适配器错误解决协议适配器错误需要根据具体的错误信息和原因进行分析。
下面介绍一些常见的解决方法:•检查网络连接:首先要检查数据库所在的服务器与其他系统之间的网络连接是否正常。
可以使用ping命令或者其他网络诊断工具来检查网络是否通畅。
•检查配置文件:如果协议适配器的配置文件出现错误,可以通过检查配置文件的内容和语法来解决。
可以参考Oracle官方文档或者相关的技术论坛来获取更多的帮助。
•检查版本兼容性:如果协议适配器错误是由版本不兼容引起的,可以尝试升级或者降级数据库的协议版本,或者与外部系统进行协商,以实现版本的兼容性。
•检查数据库配置:如果协议适配器错误与数据库的配置有关,可以检查数据库的网络配置、监听器配置等方面的错误。
可以参考Oracle官方文档或者相关的技术论坛来获取更多的帮助。
Oracle数据库监听配置与报错解决方法作者:范美卉张俊萌来源:《电脑知识与技术》2023年第24期关键词:监听日志;Oracle数据库;监听器中图分类号:TP311 文献标识码:A文章编号:1009-3044(2023)24-0073-030 引言想要使用Oracle数据库,首先需要用户与数据库建立连接,而怎么在两者之间建立连接,Oracle使用了一个叫网络服务的概念,从而客户端或者中间层的应用服务器与数据库服务器能建立连接,并能在两者之间传递数据。
在客户端,网络服务作为后台运行的进程,在数据库服务器端,网络服务则通过一个叫“监听器”的组件接收来自客户端的连接请求。
监听器(LIS⁃TENER)是位于服务器端的、独立运行的一个后台进程,运行在服务器端,但独立于数据库服务器单独运行,在数据库没有启动的时候,监听器也能独立运行。
1 Oracle 数据库监听配置Oracle监听负责监听客户端传入的连接请求,同时也负责调整服务器的连接负荷。
客户端试图连接数据库服务器时,监听器将接收到客户端的请求并将其传递给服务器进行处理。
一旦客户端与服务器建立连接,它们之后将直接进行通信,而不再需要监听器的介入,监听器将保持空闲状态。
dbca建库后一般会有默认配置好的监听,默认服务端口是1521,通常一个库一个监听就足够,但如果需要处理大量并发请求数,就可能需要配置多个监听,非默认监听的端口号设置成大于1024,不同监听之间服务名和端口号不能一样[1]。
配置监听器有两种方法。
1.1 通过图形界面工具Net Manager如图1所示,选中图中的Oracle Net配置下的本地树形目录中的监听程序项,再点击左侧绿色的“+”按钮添加监听程序,点击监听程序目录,新加的监听器名称默认为LISTENER。
选中该名称,窗口右侧栏的下拉选项中含有四个选项:一般参数、监听位置、数据库服务、其他服务,选中“监听位置”,点击添加地址按钮。
在出现的网络地址栏的协议下拉选项中选中“TCP/IP”,主机文本框中输入主机名称或IP地址(如果主机即用作服务端也作为客户端,输入两项之一均有效;如果主机作为服务端并需要通过网络连接,建议输入IP地址),端口文本框中输入数字端口,默认是1521,也可以自定义任意有效数字端口[2]。
Oracle数据库操作常见错误及解决方案(1) 数据库基础教程
2011-10-06 10:00 来源: 51cto | | 网友评论 0 条 浏览次数 0
本文总结了一些Oracle数据库操作中常见错误及其解决方案,供参考。包括ORA-01650、ORA-01652、ORA-01578、ORA-01628、ORA-00600、ORA-03113、ORA-00942、ORA-1636、ORA-01688。 ORA-01650:unable to extend rollback segment NAME by NUM inta
本文总结了一些Oracle数据库操作中常见错误及其解决方案,供参考。包括ORA-01650、ORA-01652、ORA-01578、ORA-01628、ORA-00600、ORA-03113、ORA-00942、ORA-1636、ORA-01688。
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 from V$open_cursor where 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。 ORA-01652:unable to extend temp segment by num in tablespace name 产生原因:ORACLE临时段表空间不足,因为ORACLE总是尽量分配连续空间,一但没有足够的可分配空间或者分配不连续就会出现上述的现象。 解决方法:我们知道由于ORACLE将表空间作为逻辑结构-单元,而表空间的物理结构是数据文件,数据文件在磁盘上物理地创建,表空间的所有对象也存在于磁盘上,为了给表空间增加空间,就必须增加数据文件。先查看一下指定表空间的可用空间,使用视图SYS.DBA_FREE_SPACE,视图中每条记录代表可用空间的碎片大小: SQL>Select file_id,block_id,blocks, bytes from sys.dba_free_space where tablespace_name=’’; 返回的信息可初步确定可用空间的最大块,看一下它是否小于错误信息中提到的尺寸,再查看一下缺省的表空间参数: SQL>SELECT INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS, PCT_INCREASE FROM SYS.DBA_TABLESPACES WHERE TABLESPACE_NAME=name; 通过下面的SQL命令修改临时段表空间的缺省存储值: SQL>ALTER TABLESPACE name DEFAULT STORAGE (INITIAL XXX NEXT YYY); 适当增大缺省值的大小有可能解决出现的错误问题,也可以通过修改用户的临时表空间大小来解决这个问题: SQL>ALTER USER username TEMPORARY TABLESPACE new_tablespace_name; 使用ALTER TABLESPACE命令,一但完成,所增加的空间就可使用,无需退出数据库或使表空间脱机,但要注意,一旦添加了数据文件,就不能再删除它,若要删除,就要删除表空间。 一个报错例子如下: ORA-1652:unable to extend temp segment by 207381 in tablespace TEMPSPACE ORA-01578:Oracle data block corrupted(file # num,block # num) 产生原因:当ORACLE访问一个数据块时,由于: 1、硬件的I/O错误; 2、操作系统的I/O错误或缓冲问题; 3、内存或paging问题; 4、ORACLE试图访问一个未被格式化的系统块失败;5、数据文件部分溢出等上述几种情况的一种引起了逻辑坏块或者物理坏块,这时就会报ORA-01578的错误。 解决方式:由于ORACLE只有在访问到有问题的数据文件时才会报错,所以报错的时间有可能会比实际出错的时间要晚,如果ORA-01578出错信息提示数据坏块指向的是用户自己的数据文件,则用以下方法来解决: 如果通过下面的SQL语句查出的坏块出现有索引上,则只需重建索引即可 SQL> Select owner,segment_name,segment_type from dba_extents where file_id= and between block_id and block_id+blocks-1; (和分别是ORA-01578报出的坏块出现的文件号和块号) 如果坏块出现在表上,先用以下语句分析是否为永久性坏块(建议多执行一两次,有助于鉴别数据坏块是永久性的(硬盘上的物理坏块)还是随机性的(内存或硬件错误引起)): SQL>Analyze table validate structure cascade; 执行该命令后,可能会出现以下的结果: ORA-01578:与原先错误信息有相同的参数,为永久性的物理或逻辑坏块;与原先错误信息有不同的参数,可能与内存,page space和I/O设备有关。 如果用户有此表的最新备份,那么最好是用此备份来恢复此表,或者使用event 10231来取出坏块以外的数据: <1>.先关闭数据库 <2>.编辑init.ora文件,加入: event=”10231 trace name context forever,level 10” <3>.startup restrict <4>.创建一个临时表:SQL>create table errortemp as select * from error;(error是坏表的表名) <5>.把event从init.ora文件中删掉并重起数据库 <6>.rename坏表,把临时表rename成坏表的表名 <7>.创建表上的INDEX等 如果ORA-01578出错信息提示数据坏块指向的是数据字典或者是回滚段的话,你应该立即与ORACLE公司联系,共同商量一个好的解决办法。 这里所讲的解决方法只是比较常见的一种,一些更为具体的解决办法可以查看一下ORACLE的故障解决手册,那里面有浞及使用ROWID方法来取出坏块以外的数据的方法,这里就不介绍了。 ORA-01628:max # of extents num reached for rollback segment num 产生原因:这种错误通常为一个回滚段和一个表空间已经达到MAXEXTENTS参数设置的极限。要注意的是这个MAXEXTENTS不是该回滚段或表空间的硬件极限,硬件极限取决于数据库创建时在init.ora文件中指定的DB_BLOCK_SIZE参数的值。 解决方法:使用SQL命令ALTER TABLESPACE„STORAGE(MAXEXTENTS XXXX)来增加 MAXEXTENTS,其中“XXXX”值必须大于错误信息中所指的数值,但不能大于LARGEST MAXEXTENT的值,如果已经达到了LARGEST MAXEXTENT VALUE,解决的办法就是重新创建较大的范围尺寸,使用带有选项COMPRESS=Y的Export工具导出表,如果表空间有可用空间,先给表做一个备份,用alter tablespace tablespace_name更改其名字,然后再装载表回数据库。 查看其错误出现的地方,如果出现在回滚段或索引上,那么必须将其删除并重建,如果出现在临时表空间,修改临时表空间的存储字段,便可解决这个问题。 一个报错例子如下: ORA-1628:max # extents 50 reached for rollback segment RBS_1 ORA-00600:internal error code,arguments:[num],[?],[?],[?],[?] 产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用。ORA-600的错误经常伴随跟踪文件的状态转储(系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持有的对象,当进程符合了某错误条件时,经常是由于一些信息取自它持有的一个块,如果我们知道这些错误进程持有的块,就容易跟踪问题的来源。 解决方法:一般来说出现这个错误我们本身是无法解决的,只有从提高系统本身各方面来解决这个内部问题,如增加硬件设备,调整系统性能,使用OPS(当然OPS从某种意义上说并不是一种好的解决方式)等。ORA-600错误的第一个变量用于标记代码中错误的位置(代码中的每个部分的第一变量都不一样),从第二个到第五个变量显示附加信息,告诉OSS代码在哪里出现了错误。 一个报错例子如下: ORA-00600: internal error code, arguments: [1237], [], [], [], [], [], [], []