se" />
搜档网
当前位置:搜档网 › oracle ASM实例报04031错误

oracle ASM实例报04031错误

oracle ASM实例报04031错误
oracle ASM实例报04031错误

环境:oracle 11.2.0.3 rac ,AIX6.1

第一节点ASM实例报04031,赶到单位检查日志:

ORA-04031: unable to allocate 3896 bytes of shared memory ("shared pool","select name_kfgrp, number_kf...","sga heap(1,0)","kglsim object batch")

登录ASM实例,检查SGA

SQL> select bytes,name,pool from v$sgastat where name like '%free memory%';

60501728 free memory shared pool

未发现异常

设置事件检查TRACE

SQL >alter session set events '4031 trace name heapdump level 536870914';

SQL >alter session set events '4031 trace name context off;

检查TRACE文件

1、Memory Utilization of Subpool 1中未发现异常

2、LIBRARY CACHE STATISTICS--SQL AREA reload较高,其他正常。

MOS上记录了一个11.2.0.3的BUG:

Oracle Server - Enterprise Edition - Version 11.2.0.3 and later

Information in this document applies to any platform.

Symptoms

11.2.0.3.0 ASM instance crash after giving the following errors:

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Tue Mar 27 14:09:16 2012

Errors in file /app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ora_2966.trc (incident=206840):

ORA-04031: unable to allocate 3896 bytes of shared memory ("shared pool","DECLARE

hdl number; blk_nu...","sga heap(1,0)","kglsim object batch")

Incident details in: /app/oracle/diag/asm/+asm/+ASM1/incident/incdir_206840/+ASM1_ora_2966_i206840.trc ...

Tue Mar 27 15:11:28 2012

DDE: Problem Key 'ORA 4031' was completely flood controlled (0x6)

Further messages for this problem key will be suppressed for up to 10 minutes

Tue Mar 27 15:15:25 2012

Errors in file /app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ora_2967.trc (incident=211937):

ORA-00600: internal error code, arguments: [ksxp_rm_check0], [0xFFFFFFFF79122998], [0], [0x517854080], [], [], [], [], [], [], [], []

Incident details in: /app/oracle/diag/asm/+asm/+ASM1/incident/incdir_211937/+ASM1_ora_2967_i211937.trc WARNING: ASM communication error: op 0 state 0x0 (15055)

ERROR: direct connection failure with ASM

NOTE: Deferred communication with ASM instance

Errors in file /app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ora_21400.trc:

ORA-15055: unable to connect to ASM instance

ORA-00600: internal error code, arguments: [ORA_NPI_ERROR], [600], [ORA-00600: internal error code, arguments: [ksxp_rm_check0],

[0xFFFFFFFF79122998], [0], [0x517854080], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []

Cause

Non-published Bug:12925089 which fix is included starting 11.2.0.4

根据ID 1370925.1推荐ASM配置:

References

NOTE:437924.1 - ASM & Shared Pool (ORA-4031)

NOTE:1363369.1 - Things to Consider Before Upgrading to 11.2.0.3 Grid Infrastructure/ASM

Hdr: 13605735 11.2.0.3 PCW 11.2.0.3 PRODID-5 PORTID-46

Abstract: SET ASM MEMORY_TARGET TO BE AT LEAST 1536M WHILE UPGRADING TO 11.2.0.3

*** 01/18/12 02:34 pm REQUEST TEXT ***

In 11.2.0.3, init.ora parameter "processes" will be default to "available CPU

cores * 80 + 40". As the default value for "memory_target" is based on

"processes", it can be insufficient if there's large number of CPU cores or

large number of diskgroups which could cause issues, it's recommended to

increase the value of memory_max_target and memory_target while/before

upgrading to 11.2.0.3 to the minimal of 1536m or the default.

*** 01/18/12 02:34 pm BUSINESS NEED ***

*** 01/19/12 01:42 am ***

*** 02/03/12 02:18 pm ***

*** 02/03/12 02:18 pm RESPONSE ***

ER is forwarded for further consideration

修改相关参数

bjschxdbcx01:/u01/app/grid/diag/asm/+asm/+ASM1/trace$vmstat

System configuration: lcpu=40 mem=81920MB ent=10.00

kthr memory page faults cpu

----- ----------- ------------------------ ------------ -----------------------

r b avm fre re pi po fr sr cy in sy cs us sy id wa pc ec

6 1 9409443 1227672 0 0 0 215 399 0 4608 71811 23295 6 2 89 2 1.3

7 13.7

1.修改PROCESSES=CPU.CORE*80+40

2.metalink推荐memory_max_target = 4096m ,memory_target = 1536m

3.修改_library_cache_advice=false

SQL> alter system set "_library_cache_advice"=false scope = spfile;

System altered.

SQL> alter system set memory_max_target = 4096m scope=spfile;

System altered.

SQL> alter system set memory_target = 1536m scope=spfile;

System altered.

SQL> alter system set processes = 3240

2 scope = spfile;

System altered.

--重启第一节点集群后现象消失

crsctl stop cluster -n bjschxdbcx01

crsctl start cluster -n bjschxdbcx01

RAC(ASM)到单机OGG配置案例

RAC(ASM)到单机OGG配置案例 环境说明: 源端DB: 操作系统:AIX 7100-02-07-1524 数据库:oracle_11.2.0.1.0 RAC goldengate:for_11g_ppc 目标端DB: 操作系统:windows 7 数据库:oracle_11.2.0.1.0 goldengate:for_11g_x86 注意: 本实验是模拟在不同平台同版本上面安装和配置OGG,并实现简单的DML复制,至于复杂的其他方面希望大家能自己多多实验。 作者: 姓名:ZhangQY QQ:5056357 配置步骤: 1、 检查源端和目标端正确的IP解析: 源端: # cat /etc/hosts # 10.2.0.2 x25sample # x.25 name/address # 2000:1:1:1:209:6bff:feee:2b7f ipv6sample # ipv6 name/address 127.0.0.1 loopback localhost # loopback (lo0) name/address ::1 loopback localhost # IPv6 loopback (lo0) name/address 172.16.16.101 zqdb 192.169.79.11 zqdb 172.16.16.165 oradg 192.169.79.12 oradg 172.16.16.166 gc1-scan.zqdb 172.16.16.168 zqdb-vip

172.16.16.169 oradg-vip 目标端: C:\Windows\System32\drivers\etc\hosts 无特殊配置 2、 设置LIBPATH,为了安装OGG所用的动态链接库。如果没有配置这个路径的话,在安装OGG的过程中会报找不到动态链接库的错误,用户可以自己尝试一下。 源端: # su - oracle zqdb:/home/oracle>$vi .profile ".profile" 25 lines, 756 characters PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:. export PATH if [ -s "$MAIL" ] # This is at Shell startup. In normal then echo "$MAILMSG" # operation, the Shell checks fi # periodically. OGG_HOME=/oracle/ogg/12.1.2 ORACLE_BASE=/oracle/ora11g ORACLE_HOME=/oracle/ora11g/product/11g ORACLE_SID=ora11g1 export ORACLE_BASE ORACLE_HOME ORACLE_SID ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data NLS_LANG=AMERICAN_AMERICA.ZHS16GBK LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/lib export ORA_NLS33 NLS_LANG LD_LIBRARY_PATH PATH=$PATH:$ORACLE_HOME/bin:$OGG_HOME export PATH LIBPATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib export LIBPATH export DISPLAY=172.17.2.203:0.0 export PS1="`hostname`":'$PWD>$' 目标端: 无特殊配置

Oracle错误代码案例总结及解决方案

常见错误: ORA-00001:违反唯一约束条件(主键错误) ORA-00028:无法连接数据库进程 ORA-00900:无效sql语句 ORA-00904:字段名写错或是建表时最后一个字段有逗号 ORA-00907:缺少右括号 ORA-00911:无效字符 ORA-00917:缺少逗号 ORA-00918:未明确定义列 ORA-00922:丢失或无效的选项(表名等可能有空格) ORA-00923:未找到FROM关键字 ORA-00926:缺少value ORA-00933: SQL命令未正确结束 ORA-00936:缺少表达式 ORA-00937:不是单组分组函数 ORA-00942:表或视图不存在 ORA-00947:没有足够的值(一般是插入语句出现的错,插入值的数量与字段不符) ORA-00979:不是group by的表达式 ORA-01009:缺少法定参数(eg:sql做参数时,且sql语句为空时,报错) ORA-01098:数据库无法关闭及启动 ORA-01400:无法将null值插入 ORA-01401:插入的值对于列过大 ORA-01476:sql中存在除数为零 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: 线程未启用- 无法安装

ASM实例创建及oracle实例的创建

手工建库 一.安装cssd(cluster synchronization service)服务 1.#Rmp -ivh oracleasm-support- 2.1.3-1.el5.i386.rmp 2.#Rmp -ivh oracleasm-2.6.18-194.el5-2.0.5-1.el5.i386.rmp 3.#Rmp -ivh oracleasmlib-2.0.4-1.el5.i386.rmp 在安装上面的软件时要注意顺序 二.配置ASM 1.#service Oracleasm configure Default user to own the driver interface [oracle]: oracle Default group to own the driver interface [oinstall]: oinstall Start Oracle ASM library driver on boot (y/n) [y]: y Scan for Oracle ASM disks on boot (y/n) [y]: y Writing Oracle ASM library driver configuration: done Initializing the Oracle ASMLib driver : [OK] Scanning the system for Oracle ASMLib disks: [OK] 2.创建ASM磁盘 (1)首先对硬盘进行分区fdisk /dev/sd* (2)创建ASM磁盘service oracleasm createdisk VOL1 /dev/sd* service oracleasm createdisk VOL2 /dev/sd* service oracleasm createdisk VOL3 /dev/sd*

Oracle常见错误汇总

1.Oracle ORA-01555快照过旧的错误 首先了解Oracle在什么情况下会产生ORA-01555错误: 假设有一张6000万行数据的testdb表,预计testdb全表扫描1次需要2个小时,参考过程如下: 1、在1点钟,用户A发出了select * from testdb;此时不管将来testdb怎么变化,正确的 结果应该是用户A会看到在1点钟这个时刻的内容。 2、在1点30分,用户B执行了update命令,更新了testdb表中的第4100万行的这条记录, 这时,用户A的全表扫描还没有到达第4100万条。毫无疑问,这个时候,第4100万行的这条记录是被写入了回滚段,假设是回滚段UNDOTS1,如果用户A的全表扫描到达了第4100万行,是应该会正确的从回滚段UNDOTS1中读取出1点钟时刻的内容的。 3、这时,用户B将他刚才做的操作提交了,但是这时,系统仍然可以给用户A提供正确的数据, 因为那第4100万行记录的内容仍然还在回滚段UNDOTS1里,系统可以根据SCN到回滚段里找到正确的数据,但要注意到,这时记录在UNDOTS1里的第4100万行记录已经发生了重大的改变:就是第4100万行在回滚段UNDOTS1里的数据有可能随时被覆盖掉,因为这条记录已经被提交了! 4、由于用户A的查询时间漫长,而业务在一直不断的进行,UNDOTS1回滚段在被多个不同的 transaction使用着,这个回滚段里的extent循环到了第4100万行数据所在的extent,由于这条记录已经被标记提交了,所以这个extent是可以被其他transaction覆盖掉的!5、到了1点45分,用户A的查询终于到了第4100万行,而这时已经出现了第4条说的情况, 需要到回滚段UNDOTS1去找数据,但是已经被覆盖掉了,这时就出现了ORA-01555错误。

ASM下的存储更换迁移方案

ASM是10g版本后oracle大力推荐的一种数据文件存储方式,也是以后的一个重点方向.尽管现在asm在稳定性和一些操作上还存在不少问题,但已经有越来越多的企业把核心系统部署架构到上面. 本文重点不在于探讨ASM的优劣问题,爱青菜与爱白菜的人总有自己的理由支持自己的喜好. 朋友有套系统需要更换存储,数据库文件部署在asm上,需要尽量短的停机时间完成此次存储更换。由于不涉及异构的迁移转换,迁移起来也不难,无需借助三方的工具来完成这次高可用切换.当然,ASM下的一些特性也为我们做迁移提供了更多的选择方案. 针对该环境,列几种选择方案(以下操作都在新存储已挂载在主机上的情况下). 1.利用ASM的热添加和删除磁盘的方式完成存储迁移. 该方案充分发挥了asm管理磁盘数据的能力. 简要步骤: (1).划分raw或者asm disk,并检查或更改asm参数,例如asm_disktring,使得新存储的asm disk对ASM实例可识别 (2).将新存储disk添加到现有的asm diskgroup中. SQL>alter diskgroup < asm_group_name > add disk '< asm_disk_path >'; (3).删除旧存储对应的asm disk SQL>alter diskgroup < asm_group_name > drop disk < asm_disk_name >; 注意:以上2步,通过观察v$asm_operation视图来判断数据重组的进度,注意删除disk的时候,确保整个diskgroup有足够的空间。如果asm disk比较多,可以一个一个的分步执行减缓系统压力.有点可惜的是,在10g版本中,oracle 不支持asm diskgroup冗余类型的转换, 也没有直接提供删除failgroup的方法,否则以添加镜像failgroup的方式来完成这次数据迁移,个人觉得有更强的可控性和更低的风险. 优缺点: 该方案可以实现迁移过程中系统的零停机,但整个操作进度不可控,数据重组过程中我们无法把握进度和风险,如果你对ASM产品足够信任,该方案不失一用 2.利用Switch copy的方式完成存储迁移 Switch copy并不是只能在ASM下才能用,但asm对数据文件的管理使得switch copy变得异常简单,免去了手工输入大量脚本的工作。 简要步骤: (1).在新存储上创建新的diskgroup

Oracle常见问题及其解决方法(doc 10页)

Oracle常见问题及其解决方法(doc 10页)

iSQL*Plus URL:http://10.10.43.137:5560/isqlplus Enteprise Manager 10g Database Control URL: http://information:5500/em OracleDBConsoleorcl不能启动,报错误码2解决策略 解决策略一: 修改你的主机参数文件 修改一下: C:\WINDOWS\system32\drivers\etc下的host文件. 如果没有的话就自己加一个IP和你的计算机名对应,如果已有了就把你的IP地址和你的计算机名对应起来. 如: # copyright (c) 1993-1999 microsoft corp. # # this is a sample hosts file used by microsoft tcp/ip for windows. # # this file contains the mappings of ip addresses to host names. each # entry should be kept on an individual line. the ip address should # be placed in the first column followed by the corresponding host name. # the ip address and the host name should be separated by at least one # space. # # additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # for example: # # 102.54.94.97 https://www.sodocs.net/doc/221990786.html, # source server # 38.25.63.10 https://www.sodocs.net/doc/221990786.html, # x client host 127.0.0.1 localhost 10.10.43.137 information 解决策略二: 启动电脑,到登陆界面,电脑报有个服务启动失败,电脑没有新装软件,周六还没有问题,怎么突然报这个错误?于是到事件查看器中看看什么问题,显示是OracleDBConsoleorcl启动失败,到服务里一看,确实没有启动。手动启动一下,报错误码2 我装的是10g,于是到ORACLEproduct10.2.0db_1test_orclsysmanlog目录看一下log里写了什么,打开OracleDBConsoleorclsrvc.log. log最后记录的是: 日志让看emdbconsole.nohup文件,目录里没有这个文件呀。 手动执行一下emctl.bat,于是启动控制台,执行emctl.bat istart dbconsole,报错,ORACLE_SID 没有定义,打开emctl.bat看看,这里是定义环境变量的地方,其中已经设置了这些:if not defined REMOTE_EMDROOT (set ORACLE_HOME=Ec:oracleproduct10.2.0db_1)

ASM磁盘基本管理与维护

ASM(自动存储管理)是一个专门为Oracle数据库服务的数据文件存储机制,通过ASM管理数据文件,DBA不用再担心I/O性能问题,也不需要知道文件的名称,同时ASM也提供了文件系统到卷管理器的集成,下面依次介绍。 一、ASM的特点 (1)自动调整I/O负载 ASM可以在所有可用的磁盘中自动调整I/O负载,不但避免了人工调整I/O的难度,而且也优化了性能,同时,利用ASM可以在线增加数据库的大小,而无需关闭数据库。 (2)条带化存储 ASM将文件分为多个分配单元(Allocation Units,AU)进行存储,并在所有磁盘间平均分配每个文件的AU。 (3)在线自动负载均衡 当共享存储设备有变化时,ASM中的数据会自动均匀分配到现有存储设备中。同时,还可以调节数据的负载均衡速度。 (4)自动管理数据库文件 在ASM存储管理中,Oracle数据文件是ASM自动管理的。ASM创建的任何文件一旦不再需要,就会被自动删除。但是,ASM不管理二进制文件、跟踪文件、预警日志和口令文件。(5)数据冗余 ASM通过磁盘组镜像可以实现数据冗余,不需要第三方工具。 (6)支持各种Oracle数据文件 ASM存储支持Oracle数据文件、日志文件、控制文件、归档日志、RMAN备份集等。 二、ASM的体系结构与后台进程 图1显示了ASM的物理构成。

从图1可以看出,在顶层是ASM磁盘组,ASM实例和数据库实例可以直接访问这些磁盘组;然后是ASM文件,每个ASM文件只能包含在一个磁盘组中,不过,一个磁盘组中可以包含属于多个数据库的多个ASM文件,并且单个数据库可以使用来自多个磁盘组的存储空间;第三部分是ASM磁盘,多个ASM磁盘组成了ASM磁盘组,但每个ASM磁盘只能属于一个磁盘组;接着是AU(分配单元),AU是ASM磁盘组分配的最小连续磁盘空间,ASM 磁盘按照AU进行分区,每个AU的大小为1MB;这个结构的底层是Oracle数据块,由于AU是ASM分配的最小连续磁盘空间,因此,ASM是不允许跨分配单元拆分一个Oracle数据块的。 要使用ASM,需要在启动数据库实例之前,先启动一个名为“+ASM”的实例,ASM实例不会装载数据库,启动它的目的是为了管理磁盘组和保护其中的数据。同时,ASM实例还可以向数据库实例传递有关文件布局的信息。通过这种方式,数据库实例就可以直接访问磁盘组中存储的文件。图2显示了ASM的一般体系结构。 从图2可以看出,ASM实例与数据库实例进行通信的桥梁是ASMB进程,此进程运行在每个数据库实例上,是两个实例间信息交换的通道。ASMB进程先利用磁盘组名称通过CSS 获得管理该磁盘组的ASM实例连接串,然后建立一个到ASM的持久连接,这样两个实例之间就可以通过这条连接定期交换信息,同时这也是一种心跳监控机制。 另外,在ASM实例中还存在另外一个新的进程,即RBAL,此进程负责规划和协调磁盘组的重新平衡活动。除此之外,ASM实例还有一些与数据库实例中的进程相同的后台进程,例如LGWR、SMON、PMON、DBWR 、CKPT等。

oracle操作常见错误

1.[Err] ORA-02438: Column check constraint cannot reference other columns ORA-02438: 列检查约束条件无法引用其它列 --通常可能是constraint 拼写错误 2. [Err] ORA-02250: missing or invalid constraint name 约束条件名缺失或者无效。 比如: alter table tbl_school add s_level number(7) constraint unique; //错误的 ====add s_level number(7) unique; 正确的 4. [Err] ORA-01861: literal does not match format string ORA-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_indexes Where table_name=’s_emp’; 提示错误:为选定行。 ‘’里面的就变成了字符串,是区分大小写的, select index_name,table_name from user_indexes Where table_name=’S_EMP’; 6:Ora-02290【】违反检查约束条件 可能原因:check里面出错,在传值的时候,出现乱码了,只能重建表

手工删除ASM实例

2节点RAC CRS-->Listener-->ASM实例 到这里时,ASM实例创建好了,crs_stat -t也可以看到这ASM实例: [oracle@db1 ~]$ crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora....SM1.asm application ONLINE ONLINE db1 ora....B1.lsnr application ONLINE ONLINE db1 ora.db1.gsd application ONLINE ONLINE db1 ora.db1.ons application ONLINE ONLINE db1 ora.db1.vip application ONLINE ONLINE db1 ora....SM2.asm application ONLINE ONLINE db2 ora....B2.lsnr application ONLINE ONLINE db2 ora.db2.gsd application ONLINE ONLINE db2 ora.db2.ons application ONLINE ONLINE db2 ora.db2.vip application ONLINE ONLINE db2 但是继续往后时,ASM磁盘组发现不了ASM磁盘. 接着看日志${ORACLE_HOME}/log/${Node_Name}/: 2010-01-14 01:39:40.138: [ RACG][3086912256] [30872][3086912256][ora.db2.ASM2.asm]: SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jan 14 01:39:34 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved. Enter user-name: Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, 2010-01-14 01:39:40.138: [ RACG][3086912256] [30872][3086912256][ora.db2.ASM2.asm]: Real Application Clusters, OLAP and Data Mini ng options SQL> ORA-15100: invalid or missing diskgroup name ASM instance shutdown SQL> Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, Real Ap 2010-01-14 01:39:40.138: [ RACG][3086912256] [30872][3086912256][ora.db2.ASM2.asm]: plication Clusters, OLAP and Data Mining opti ons 这时我可以看到ASM磁盘的卷标的: [oracle@db1 dbs]$ /etc/init.d/oracleasm listdisks VOL1

oracle ASM实例报04031错误

环境:oracle 11.2.0.3 rac ,AIX6.1 第一节点ASM实例报04031,赶到单位检查日志: ORA-04031: unable to allocate 3896 bytes of shared memory ("shared pool","select name_kfgrp, number_kf...","sga heap(1,0)","kglsim object batch") 登录ASM实例,检查SGA SQL> select bytes,name,pool from v$sgastat where name like '%free memory%'; 60501728 free memory shared pool 未发现异常 设置事件检查TRACE SQL >alter session set events '4031 trace name heapdump level 536870914'; SQL >alter session set events '4031 trace name context off; 检查TRACE文件 1、Memory Utilization of Subpool 1中未发现异常 2、LIBRARY CACHE STATISTICS--SQL AREA reload较高,其他正常。 MOS上记录了一个11.2.0.3的BUG: Oracle Server - Enterprise Edition - Version 11.2.0.3 and later Information in this document applies to any platform. Symptoms 11.2.0.3.0 ASM instance crash after giving the following errors: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Tue Mar 27 14:09:16 2012 Errors in file /app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ora_2966.trc (incident=206840): ORA-04031: unable to allocate 3896 bytes of shared memory ("shared pool","DECLARE hdl number; blk_nu...","sga heap(1,0)","kglsim object batch") Incident details in: /app/oracle/diag/asm/+asm/+ASM1/incident/incdir_206840/+ASM1_ora_2966_i206840.trc ... Tue Mar 27 15:11:28 2012 DDE: Problem Key 'ORA 4031' was completely flood controlled (0x6) Further messages for this problem key will be suppressed for up to 10 minutes Tue Mar 27 15:15:25 2012 Errors in file /app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ora_2967.trc (incident=211937): ORA-00600: internal error code, arguments: [ksxp_rm_check0], [0xFFFFFFFF79122998], [0], [0x517854080], [], [], [], [], [], [], [], [] Incident details in: /app/oracle/diag/asm/+asm/+ASM1/incident/incdir_211937/+ASM1_ora_2967_i211937.trc WARNING: ASM communication error: op 0 state 0x0 (15055) ERROR: direct connection failure with ASM NOTE: Deferred communication with ASM instance Errors in file /app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ora_21400.trc: ORA-15055: unable to connect to ASM instance ORA-00600: internal error code, arguments: [ORA_NPI_ERROR], [600], [ORA-00600: internal error code, arguments: [ksxp_rm_check0], [0xFFFFFFFF79122998], [0], [0x517854080], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []

利用RMAN将Oracle 11g的文件系统单实例数据库移植到双机RAC+ASM环境的过程

利用RMAN将Oracle 11g的文件系统单实例数据库移植到 双机RAC+ASM环境的过程 目的:利用单实例的rman全备,恢复到已有的RAC的ASM磁盘组内,删除RAC 已有的数据库,完成单实例数据库到RAC的环境迁移。 环境: 单实例:sid: single 版本:11.1.0.7 ip: 192.168.76.160 data: /home/oracle/single 已有RAC: 数据库:racdb 版本:11.1.0.7 testrac01: 192.168.76.160/161 sid: racdb1 testrac02: 192.168.76.162/163 sid: racdb2 data:+TESTDG/racdb db_name: racdb sidprefix: racdb init file: +TESTDG/racdb/spfileracdb.ora 一、已有RAC的环境。 su - oracle export ORACLE_SID=+ASM1 sqlplus / as sysdba select name,state from v$asm_diskgroup; SQL> select name,state from v$asm_diskgroup; NAME STATE -------------------- ------------------- TESTDG MOUNTED alter system set log_archive_dest_1='Location=/arch_dir' scope=spfile sid='racdb1'; alter system set log_archive_format='racdb_%t_%s_%r.dbf' scope=spfile sid='racdb1'; alter system set log_archive_dest_1='Location=/arch_dir' scope=spfile sid='racdb2'; alter system set log_archive_format='racdb_%t_%s_%r.dbf' scope=spfile sid='racdb2';

oracle常见等待事件及处理方法

我们可以通过视图v$session_wait来查看系统当前的等待事件,以及与等待事件相对应的资源的相关信息 看书笔记db file scattered read DB ,db file sequential read DB,free buffer waits,log buffer space,log file switch,log file sync 我们可以通过视图v$session_wait来查看系统当前的等待事件,以及与等待事件相对应的资源的相关信息,从而可确定出产生瓶颈的类型及其对象。v$session_wait的p1、p2、p3告诉我们等待事件的具体含义,根据事件不同其内容也不相同,下面就一些常见的等待事件如何处理以及如何定位热点对象和阻塞会话作一些介绍。 <1> db file scattered read DB 文件分散读取(太多索引读,全表扫描-----调整代码,将小表放入内存) 这种情况通常显示与全表扫描相关的等待。当全表扫描被限制在内存时,它们很少会进入连续的缓冲区内,而是分散于整个缓冲存储器中。如果这个数目很大,就表明该表找不到索引,或者只能找到有限的索引。尽管在特定条件下执行全表扫描可能比索引扫描更有效,但如果出现这种等待时,最好检查一下这些全表扫描是否必要。因为全表扫描被置于LRU(Least Recently Used,最近最少适用)列表的冷端(cold end),所以应尽量存储较小的表,以避免一次又一次地重复读取它们。 ================================================== 该类事件的p1text=file#,p1是file_id,p2是block_id,通过dba_extents即可确定出热点对象(表或索引) select owner,segment_name,segment_type from dba_extents

单实例环境下安装ASM

单实例环境下安装ASM 说明:紫红色字体部分是与我安装环境相关的信息或补充的安装说明,其他是网上下载的原文(<<单实例环境下安装ASM>>) 环境: 版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 操作系统:Red Hat Enterprise Linux Server release 5.5 (Tikanga) 测试的环境是Red Hat Enterprise Linux Server release 4.4 1、首先安装oracle数据库软件,然后向虚拟机中添加三块2G的硬盘,重启虚拟机 2、安装软件包: 2.1、查看好系统版本,本机是redhat 5,内核版本如下: [root@server3 dev]# uname -a Linux server32.6.18-194.el5#1 SMP Tue Mar 16 21:52:43 EDT 2010 i686 i686 i386 GNU/Linux [root@fwy ~]# cat /proc/version Linux version 2.6.9-42.ELsmp (bhcompile@https://www.sodocs.net/doc/221990786.html,) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-2)) #1 SMP Wed Jul 12 23:27:17 EDT 2006 或 [root@fwy a]# uname -r 2.6.9-42.ELsmp 2.2、上oracle官方网站,搜索关键字oracle asm red hat 5。去下载如下asm 的三个rpm软件包(本机器下载的是标红的三个软件包,安装包一定要下载正确的版本否则第五步会出错,导致后续配置无法进行): Intel IA32 (x86) Architecture Library and Tools ?oracleasm-support-2.1.3-1.el5.i386.rpm ?oracleasmlib-2.0.4-1.el5.i386.rpm Drivers for kernel 2.6.18-194.el5 ?oracleasm-2.6.18-194.el5xen-2.0.5-1.el5.i686.rpm

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 mount SQL> 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数据库的初始密码。 问题3:表空间不足而引发错误怎么办? 解决方法如下: oracle表空间不足,一般有两个原因:

Linux上安装oracle 11gR2单实例+ASM

Linux上安装oracle 11gR2单实例+ASM 安装oracle 11gR2单实例+ASM ,让新手走向数据库管理员 一、介绍 因业务需要,最近在主系统的基础上搭建一套mini系统,本文只讲ORACLE数据库+ASM磁盘管理工具的安装; 1.服务器系统版本:RHEL 5.5 x64Bit ,kernel 2.6.18-194.el5 2.磁盘分区格式:LVM+裸设备 3.ORACLE软件版本:p1*******_112030_Linux-x86-64 4.ASM 组件版本:oracleasm-2.6.18-194.el5-2.0.5-1.el 5.x86_64.rpm oracleasmlib-2.0.4-1.el5.x86_64.rpm oracleasm-support-2.1.7-1.el5.x86_64.rpm 二、安装实施准备 1.创建ORACLE用户和组成员 groupadd oinstall groupadd dba groupadd oper groupadd asmadmin groupadd asmdba groupadd asmoper useradd -g oinstall -G dba,asmdba,oper -d /home/oracle oracle useradd -g oinstall -G dba,asmadmin,asmdba,asmoper -d /home/grid grid

2.分别创建oracle、grid用户的密码 passwd oracle new unix password: oracle passwd grid new unix password: grid 3.磁盘分区 //介绍:本文为项目简化,实际项目磁盘分区为:8块300G 15K SAS磁盘(HP388/G82U 服务器最多支持8块); //前2块做raid1,安装系统包括:/、sawp、boot分区等,可冗余磁盘为:1块; //后6块做raid5, /u01 40G LVM管理安装oracle软件,/u02 450G LVM管理,存放arch 和RMAN 备份等,可冗余磁盘为:1块; //ASM磁盘组为300G*3,DATA1、DATA2、DATA3 存放oracle数据; //本文分区如下:/u01 10G,/u02 20G, ASM 10G*3 DATA1、DATA2、DATA3等;[root@ctp-dbserver ~]# fdisk -l Disk /dev/sda: 80.0 GB, 80026361856 bytes 255 heads, 63 sectors/track, 9729 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 1318 10482412 83 Linux /dev/sda3 1319 2623 10482412 83 Linux /dev/sda4 2624 9729 57078945 5 Extended

相关主题