Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

11

积分

0

好友

4

主题
1#
发表于 2013-8-19 11:09:53 | 查看: 5701| 回复: 6
环境 REDHAT 5.7
oracle 11.2.0.3
2个节点RAC,底层使用ASM 实例,
当前ASM 实例的内存设置 memory_max_target=4G,memory_target=1536M

最近rac1节点ASM的alert报
Tue Aug 13 22:32:35 2013
Errors in file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_20908.trc  (incident=88005):
ORA-00600: internal error code, arguments: [ksxp_rm_check0], [0x7F9D5FB687A8], [0], [0x159FABB80], [], [], [], [], [], [], [], []
Incident details in: /u01/app/grid/diag/asm/+asm/+ASM1/incident/incdir_88005/+ASM1_ora_20908_i88005.trc
Tue Aug 13 22:32:37 2013

参考老杨的博客 http://yangtingkun.net/?p=1346
根据MOS文档Bug 12925089 – ORA-600 [ksxp_rm_check0] can occur on process startup [ID 12925089.8],当一个进程启动时除非了ORA-4031错误,就可能会导致ORA-600[ksxp_rm_check()]的错误。而当前是m000进程启动出现了ORA-4031错误。至于当前ASM的ORA-4031错误,是由于11.2.0.3默认的MEMORY_TARGET不足导致的。这个错误影响的版本为11.2.0.2和11.2.0.3,Oracle在12.1.0.1中以及将要发布的11.2.0.4中解决了这个问题。其实要避免这个错误的根源是给ASM实例的MEMORY_TARGET分配足够的空间,至少应分配1536M以上。

我们的环境没有出现 ORA-4031错误,不过后来检查发现当时出现shared pool 扩展,
SQL> select * from v$memory_resize_ops where start_time>sysdate-2;

COMPONENT                                                        OPER_TYPE
---------------------------------------------------------------- -------------
OPER_MODE
---------
PARAMETER
--------------------------------------------------------------------------------
INITIAL_SIZE TARGET_SIZE FINAL_SIZE STATUS    START_TIME
------------ ----------- ---------- --------- -------------------
END_TIME
-------------------
shared pool                                                      GROW
IMMEDIATE
shared_pool_size
   469762048   486539264  486539264 COMPLETE  2013-08-13 22:32:35
2013-08-13 22:32:35

shared pool                                                      GROW
IMMEDIATE
shared_pool_size
   469762048   486539264  486539264 PENDING   2013-08-13 22:32:35
2013-08-13 22:32:35

后来计划对内存参数进行调整
将 memory_target 设置为 2G,将 sga_target设置为 1200m,将 shared_pool 设置为 800M,
不过修改 shared_pool 参数报错,最后只能将 shared pool 修改为 600M

SQL> alter system set shared_pool_size =736m sid='+ASM1';
alter system set shared_pool_size =736m sid='+ASM1'
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-04033: Insufficient memory to grow pool

调整后检查ASM实例的shared pool 子池情况
SQL> SELECT      'shared pool (' || NVL (DECODE (TO_CHAR (ksmdsidx), '0', '0 - Unused', ksmdsidx),'Total') || '):' subpool,
  2  SUM (ksmsslen) BYTES, ROUND (SUM (ksmsslen) / 1048576, 2) mb
  3  FROM x$ksmss WHERE ksmsslen > 0
  4  GROUP BY ROLLUP (ksmdsidx) ORDER BY subpool ASC;

SUBPOOL                                                      BYTES         MB
------------------------------------------------------- ---------- ----------
shared pool (0 - Unused):                                150994944        144
shared pool (1):                                          83886080         80
shared pool (2):                                         134217728        128
shared pool (3):                                         150994944        144
shared pool (4):                                         117440512        112
shared pool (Total):                                     637534208        608

6 rows selected.

请刘老大帮忙看一下,分析和调整是否有问题。
2#
发表于 2013-8-19 11:11:26
压缩打包上传 /u01/app/grid/diag/asm/+asm/+ASM1/incident/incdir_88005/+ASM1_ora_20908_i88005.trc

回复 只看该作者 道具 举报

3#
发表于 2013-8-19 11:17:19
/u01/app/grid/diag/asm/+asm/+ASM1/incident/incdir_88005/+ASM1_ora_20908_i88005.trc

trace.zip

436.52 KB, 下载次数: 900

回复 只看该作者 道具 举报

4#
发表于 2013-8-19 11:27:17
11.2.0.3.0 +  ORACLE_HOME = /u01/11.2.0/grid  + Real Application Clusters +ASM + 2.6.32-200.13.1.el5uek

ORA-00600: internal error code, arguments: [ksxp_rm_check0], [0x7F9D5FB687A8], [0], [0x159FABB80], [], [], [], [], [], [], [], []

kmgs_move_gran_for_imm=>kmgs_sleep_wait=>kslwaitctx=>ksliwat=>ksxp_rm_check

回复 只看该作者 道具 举报

5#
发表于 2013-8-19 11:39:34
----- End of Abridged Call Stack Trace -----
----- Auto SGA Transfer History -----
GRANULE SIZE is 16777216
COMPONENT NAME : shared pool, curnum=29, usrsz=0, tgt=29, min=2, st=0, flg=80, r=(nil)
Number of granules in inuse list (listid 2) is 29
COMPONENT NAME : large pool, curnum=2, usrsz=1, tgt=2, min=2, st=0, flg=80, r=(nil)
Number of granules in inuse list (listid 2) is 2
COMPONENT NAME : SGA Target, curnum=66, usrsz=0, tgt=66, min=0, st=0, flg=0, r=(nil)
COMPONENT NAME : System Memory, curnum=221, usrsz=0, tgt=221, min=0, st=0, flg=0, r=(nil)
Number of granules in inactive list (listid 0) is 221
COMPONENT NAME : PGA Target, curnum=30, usrsz=0, tgt=30, min=0, st=0, flg=0, r=(nil)

Dumping Work Area Table (level=1)
=====================================

  Global SGA Info
  ---------------

    global target:      624 MB
    auto target:          0 MB
    max pga:            200 MB
    pga limit:            0 MB
    pga limit known:  0
    pga limit errors:     0

    pga inuse:            0 MB
    pga alloc:            0 MB
    pga freeable:         0 MB
    pga freed:            0 MB
    pga to free:        100 %
    broker request:       1

    pga auto:             0 MB
    pga manual:           0 MB

    pga alloc  (max):     0 MB
    pga auto   (max):     0 MB
    pga manual (max):     0 MB

    # workareas     :     0
    # workareas(max):     0


COMPONENT NAME : ASM Buffer Cache, curnum=2, usrsz=0, tgt=0, min=0, st=0, flg=80, r=(nil)
Number of granules in inuse list (listid 2) is 2
log + fixed sga = 33554432
Mapping for Component id to Component name:
1: shared pool



--------- GC Source: [Non_Default_Kernel_Parameters] --------
[0004]: __shared_pool_size=486539264
[0004]: __large_pool_size=33554432
[0004]: large_pool_size=16777216
[0004]: instance_type=asm
[0004]: memory_target=1610612736
[0004]: memory_max_target=4294967296
[0004]: remote_login_passwordfile=EXCLUSIVE
[0004]: local_listener=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.0.62.60)(PORT=1521))))
[0004]: __pga_aggregate_target=654311424
[0004]: asm_diskstring=/dev/oracleasm/disks
[0004]: asm_diskgroups=DG_DATA, DG_FRA
[0004]: asm_power_limit=1
[0004]: diagnostic_dest=/u01/app/grid



把shared_pool_size 调大 到 800M 确保无误

回复 只看该作者 道具 举报

6#
发表于 2013-8-19 11:53:11
对 shared_pool_size 参数的调整报错
SQL> alter system set shared_pool_size =736m sid='+ASM1';
alter system set shared_pool_size =736m sid='+ASM1'
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-04033: Insufficient memory to grow pool

这个是否正常,
是建议将 将参数修改写入到 spfile,然后重启实例吗?

回复 只看该作者 道具 举报

7#
发表于 2013-8-19 15:14:21
typ281 发表于 2013-8-19 11:53
对 shared_pool_size 参数的调整报错
SQL> alter system set shared_pool_size =736m sid='+ASM1';
alter s ...

这个属于常规操作部分,请 查手册

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2025-1-1 10:54 , Processed in 0.049598 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569