加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle-ORA-27102错误

发布时间:2021-01-25 12:36:38 所属栏目:站长百科 来源:网络整理
导读:?out of memory HP-UX Error: 12: Not enough space??????????? ORA-30019: Illegal rollback Segment operation in Automatic Undo mode ORA-30036: unable to extend segment by 1024 in undo tablespace ‘UNDOTBS1‘ TNS-12500 ? ....系统资源耗竭,意味
副标题[/!--empirenews.page--]

?out of memory HP-UX Error: 12: Not enough space???????????

ORA-30019: Illegal rollback Segment operation in Automatic Undo mode

ORA-30036: unable to extend segment by 1024 in undo tablespace ‘UNDOTBS1‘

TNS-12500

?

....系统资源耗竭,意味着系统分配给oracle的内存用尽了。虽然我们有4G的物理内存,但正常情况下系统只能给oracle分配2G的内存,这2G的内存中,包括了SGA、PGA等oracle需要使用的全部内存。在独占模式下,每一个session将单独分配2M左右的内存。在本例中,SGA分配了约600M,按每一个用户分配2M内存计算,连接数达到750个时,总分配内存已达到2G,将不能再增加新的连接数。如果要解决这个问题,在不做大的调整的前提下,要么减小SGA大小,要么减小为每一个会话分配的内存大小,以能连接更多的用户。

解决过程:

1?重置init.ora参数文件,调小以下四个参数的值:

....short_area_size
....hash_area_size
....bitmap_merge_area_size
....create_bitmap_area_seze
....open_cursone

2?调小SGA的大小

3?减小oracle?Job队列数量(job_queue_processes)和并发队列数(parallel_max_servers)

4?重置并减小会话/线程使用的堆栈大小

5?将oracle改为mts模式

6 使用intel的ESMA硬件支持,即使用大内存

..1) 在intel系统上使用 /3G 开关

..2) 使用PSE36内存

?

1? TNS-12154 Error 或ORA-12154

特征:SQL*NET没有找到连接串或别名

原因1:(1)没有找到TNSNAMES.ORA文件,该文件的缺省路径为:

Windows 95/98 client

SQL*Net 2.x - ORAWIN95NETWORKADMIN

Net8 - ORAWIN95NET80admin

Net8i - ORACLEORA81NETWORKADMIN

?

Windows NT client

?

SQL*Net 2.x - ORANTNETWORKADMIN

Net8 - ORANTNET80ADMIN

Net8i - ORACLEORA81NETWORKADMIN

?

?

UNIX Client

?

$ORACLE_HOME/NETWORK/ADMIN

or????????? /etc

or????????? /var/opt/oracle

?

?

?. 在客户端设置TNS_ADMIN?

?

?

在注册表 HKEY_LOCAL_MACHINESoftwareOracle 设置TNS_ADMIN.? TNS_ADMIN 指向TNSNAMES.ORA文件的位置

?

?

措施:按上述说明检查文件位置

?

?

?

原因2:(2)TNSNAMES.ORA文件中内容格式不对

?

?

措施:检查文件格式,标准格式如下:

?

?

DEV1.WORLD =

???????? (DESCRIPTION = (ADDRESS_LIST =

?

?

?????????????? (ADDRESS = (PROTOCOL = TCP) (Host = 145.45.78.56) (Port = 1521) ) )

????????? (CONNECT_DATA = (SID = ORCL) ) )

?

?

原因3: (3) TNSNAMES.ORA与SQLNET.ORA不一致

?

?

措施: SQLNET.ORA格式如下:

?

?

TRACE_LEVEL_CLIENT = OFF

SQLNET.AUTHENTICATION_SERVICES = (NONE)

NAMES.DIRECTORY_PATH = (TNSNAMES)

AUTOMATIC_IPC = OFF

?

?

因为没有NAMES.DEFAULT_DOMAIN=world,所以DEV1.WORLD连接串不能连接,可以在TNSNAMES.ORA中增加

?

?

DEV1 =

???????? (DESCRIPTION = (ADDRESS_LIST =

?

?

?????????????? (ADDRESS = (PROTOCOL = TCP) (Host = 145.45.78.56) (Port = 1521) ) )

????????? (CONNECT_DATA = (SID = ORCL) ) )

?

?

?????? 此时可连接。

2?????? NL-00462 Error 或ORA-00462

?

?

特征:监听器无法启动

?

?

原因:LISTENER.ORA文件内容错误,例如,括号不匹配、参数名错误等、多余的空格等。

?

?

措施:重新编辑文件

?

?

3?????? NL-00405 Error 或ORA-00405

?

?

特征:LISTENER.ORA文件不可读或找不到

?

?

原因:LISTENER.ORA文件内容错误,例如,括号不匹配、参数名错误等、多余的空格等。

?

?

措施:确保文件位置在缺省目录下$ORACLE_HOME/network/admin,或设置环境变量TNS_ADMIN指向这个文件所在位置。

?

?

4?????? TNS-01155 Error 或ORA-01155

?

?

特征:LISTENER.ORA文件中SID_LIST_LISTENER变量赋值不对

?

?

原因:LISTENER.ORA文件内容错误,SID_LIST_LISTENER变量赋值不对。

?

?

措施:确保文件中赋值正确,$ORACLE_HOME/network/admin/samples目录下有样例文件,可供参考。

?

5????? ?TNS-12537 、TNS-12560、TNS-00507 Error

?

?

特征:LISTENER.ORA文件中引用了一个无效的协议适配程序

?

?

原因:LISTENER.ORA文件中PROCOTOL变量赋值不对。

?

?

措施:确保文件中赋值正确,一般用TCP协议,$ORACLE_HOME/network/admin/samples目录下有样例文件,可供参考。用adapters tnslsnr检查协议程序

6?????? TNS-12203 Error

特征:不能与目标连接

原因:监听器是否启动;别名是否配置

措施:检查监听器是否启动,例如lsnrctl status;检查TNSNAMES.ORA的别名配置

7?????? TNS-12533 Error

特征:不能与目标连接

原因:非法的address参数,

措施:检查TNSNAMES.ORA的ADDRESS参数

1?????? ORA-12571、ORA-03113、ORA-03114、ORA-01041

?

?

特征:客户端(代理或应用服务器)有时报这类断连错误

?

?

原因:如果偶尔出现一次,则可能为网络原因或用户异常中止,如果经常出现则为客户端与服务端的字符集不一致。

?

?

措施:如果偶尔出现,可在服务端的协议配置文件PROTOCOL.ORA中增加一行

?

?

TCP.NODELAY=YES;

?

?

如果经常出现,则为客户端与服务端字符集不一致或网络原因。

?

?

客户端的字符集在注册表里定义:??????? HKEY__LOCAL__MACHINE/SOFTWARE/ORACLE/NLS__LANG

?

?

在客户端注册表中的TCP参数项中设置????????????????????????????????????????????????????????????????? ?????????????????TCPMAXDATARETRANSMITIONS=20。??????

?

2?????? ORA-01000

?

?

特征:达到会话允许的最大游标数

?

?

原因:达到会话允许的最大游标数

?

?

措施:有两种解决方法:

?

?

(1)?????? 在初始化文件INIT<SID>.ORA文件中增加OPEN_CURSORS的数量,一般要求大于200。

?

?

(2)?????? 在应用级,与开发工具有关,例如设置MAXOPEN_CURSORS等。

?

?

3?????? ORA-01545

?

?

特征:某个回滚段不可用

?

?

原因:(1)当使回滚段ONLINE时,但回滚段不可用,例如回滚段所在表空间OFFLINE;

?

?

???? (2)当使回滚段ONLINE时,但回滚段已ONLINE,例如回滚段被使用两次,典型的案例如OPS方式时,回滚段不能公有;

?

?

???? (3)删除回滚段时,回滚段中有活动的事务;

?

?

措施:(1)确保回滚段可

?

?

(2)从初始化文件INIT<SID>.ORA的参数ROLLBACK)SEGMENTS中删除指定的回滚段。

?

?

(3)?????? 可以将回滚段所在表空间删除,取消UNDO事务

?

?

4?????? ORA-0165x

?

?

特征:表空间没有足够的空间供分配

?

?

原因:表空间已满;存储参数不合理,NEXT太小;没有连续的区间

?

?

措施:如果表空间已满,则需为表空间增加文件;如果存储参数不合理,则需增加INITIAL和NEXT;如果没有连续的区间,需要合并空闲的表空间。

?

?

????? 查看空间碎片用DBA_FREE_SPACE

?

?

5?????? ORA-01555

?

?

特征:当前会话无法读到以前版本的数据

?

?

原因:原因很多,主要原因有下列:回滚段太小、太少;回滚段冲突;交叉提交(FETCH_ACROSS)

?

?

措施:增加回滚段数量;

?

?

?

?

?

?

6?????? ORA-04031

?

?

特征:共享池内存区内存不够,或产生内存碎片

?

?

原因:当试图装载一个大包时或执行一个较大的存储过程时,而共享池没有连续的内存空间。

?

?

措施:如果是内存不够,则增加SHARE)POOL_SIZE;

?

?

????? 如果是内存碎片,执行alter system flush share_pool

?

?

7?????? ORA-04091

?

?

特征:触发器工作不正常

?

?

原因:一个行触发读取或修改变化的表(正在修改、插入)时,产生这种错误。

?

?

措施:检查触发器脚本,保证引用完整性

?

?

8?????? ORA-01242、ORA-01113

?

?

特征:介质故障导致数据库宕机

?

?

原因:介质故障。

?

?

措施:检查硬件故障;修改dbshut脚本,将其中的STARTUP命令修改为:

?

?

????????????? Startup open recover

?

?

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读