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

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

207

积分

1

好友

4

主题
1#
发表于 2012-7-30 10:36:35 | 查看: 6930| 回复: 7
如题,偶尔遇到这样的案例,但是诊断和排查思路一直不是很明晰,求ML和各位大拿指点。
Global Enqueue Services Deadlock detected. More info in file
/opt/oracle/product/admin/dbsid/bdump/portal1_lmd0_11173.trc.
附件是告警日志。环境是hpunix+10gr2rac。

alert_dbsid1.rar

17.48 KB, 下载次数: 955

dbsid1_lmd0_11173.rar

225.67 KB, 下载次数: 961

爱老婆,爱FM,爱音乐;挨踢,爱折腾,爱Oracle
2#
发表于 2012-7-30 10:42:26
user session for deadlock lock 0xc00000023c8ad080
  pid=136 serial=4551 audsid=30604716 user: 59/RBT
  O/S info: user: root, term: unknown, ospid: 1234, machine: rbt108
            program: JDBC Thin Client
  application name: JDBC Thin Client, hash value=2546894660
  Current SQL Statement:
  INSERT INTO T_RBT_GIFT_ACTIVE (ID, PHONE_NUMBER, CONTENT, KIND, TYPE, LOTTERY, UPDATE_DATE, CREATE_DATE) VALUES (:B4 , :B3 , :B2 , 3, 2, 0, :B1 , :B1 )
user session for deadlock lock 0xc00000023c8ad9c8
  pid=138 serial=5628 audsid=30604596 user: 59/RBT
  O/S info: user: root, term: unknown, ospid: 1234, machine: rbt108
            program: JDBC Thin Client
  application name: JDBC Thin Client, hash value=2546894660
  Current SQL Statement:
  INSERT INTO T_RBT_GIFT_ACTIVE (ID, PHONE_NUMBER, CONTENT, KIND, TYPE, LOTTERY, UPDATE_DATE, CREATE_DATE) VALUES (:B5 , :B4 , :B3 , 4, 2, :B2 , :B1 , :B1 )
user session for deadlock lock 0xc00000023c8ae058
  pid=138 serial=5628 audsid=30604596 user: 59/RBT
  O/S info: user: root, term: unknown, ospid: 1234, machine: rbt108
            program: JDBC Thin Client
  application name: JDBC Thin Client, hash value=2546894660
  Current SQL Statement:
  INSERT INTO T_RBT_GIFT_ACTIVE (ID, PHONE_NUMBER, CONTENT, KIND, TYPE, LOTTERY, UPDATE_DATE, CREATE_DATE) VALUES (:B5 , :B4 , :B3 , 4, 2, :B2 , :B1 , :B1 )
user session for deadlock lock 0xc00000023c8ad878
  pid=136 serial=4551 audsid=30604716 user: 59/RBT
  O/S info: user: root, term: unknown, ospid: 1234, machine: rbt108
            program: JDBC Thin Client
  application name: JDBC Thin Client, hash value=2546894660
  Current SQL Statement:
  INSERT INTO T_RBT_GIFT_ACTIVE (ID, PHONE_NUMBER, CONTENT, KIND, TYPE, LOTTERY, UPDATE_DATE, CREATE_DATE) VALUES (:B4 , :B3 , :B2 , 3, 2, 0, :B1 , :B1 )



请列出  T_RBT_GIFT_ACTIVE  表和其所有索引的DDL语句

回复 只看该作者 道具 举报

3#
发表于 2012-7-30 10:46:40

ddl信息

  1. -- Create table
  2. create table T_RBT_GIFT_ACTIVE
  3. (
  4.   id           NUMBER(10) not null,
  5.   phone_number VARCHAR2(20) not null,
  6.   content      VARCHAR2(80),
  7.   kind         NUMBER(2) not null,
  8.   type         NUMBER(2) not null,
  9.   lottery      NUMBER(2) not null,
  10.   update_date  DATE not null,
  11.   create_date  DATE not null
  12. )
  13. tablespace RBT
  14.   pctfree 10
  15.   initrans 1
  16.   maxtrans 255
  17.   storage
  18.   (
  19.     initial 64K
  20.     minextents 1
  21.     maxextents unlimited
  22.   );

  23. -- Create/Recreate primary, unique and foreign key constraints
  24. alter table T_RBT_GIFT_ACTIVE
  25.   add constraint PK_RBT_GIFT_ACTIVE primary key (ID)
  26.   using index
  27.   tablespace RBTIDX
  28.   pctfree 10
  29.   initrans 2
  30.   maxtrans 255
  31.   storage
  32.   (
  33.     initial 64K
  34.     minextents 1
  35.     maxextents unlimited
  36.   );
  37. -- Create/Recreate indexes
  38. create index IDX_RBT_GIFT_ACTIVE_CDATE on T_RBT_GIFT_ACTIVE (CREATE_DATE)
  39.   tablespace RBTIDX
  40.   pctfree 10
  41.   initrans 2
  42.   maxtrans 255
  43.   storage
  44.   (
  45.     initial 64K
  46.     minextents 1
  47.     maxextents unlimited
  48.   );
  49. create bitmap index IDX_RBT_GIFT_ACTIVE_KIND on T_RBT_GIFT_ACTIVE (KIND)
  50.   tablespace RBTIDX
  51.   pctfree 10
  52.   initrans 2
  53.   maxtrans 255
  54.   storage
  55.   (
  56.     initial 64K
  57.     minextents 1
  58.     maxextents unlimited
  59.   );
  60. create bitmap index IDX_RBT_GIFT_ACTIVE_LOTTERY on T_RBT_GIFT_ACTIVE (LOTTERY)
  61.   tablespace RBTIDX
  62.   pctfree 10
  63.   initrans 2
  64.   maxtrans 255
  65.   storage
  66.   (
  67.     initial 64K
  68.     minextents 1
  69.     maxextents unlimited
  70.   );
  71. create index IDX_RBT_GIFT_ACTIVE_PH on T_RBT_GIFT_ACTIVE (PHONE_NUMBER)
  72.   tablespace RBTIDX
  73.   pctfree 10
  74.   initrans 2
  75.   maxtrans 255
  76.   storage
  77.   (
  78.     initial 64K
  79.     minextents 1
  80.     maxextents unlimited
  81.   );
  82. create bitmap index IDX_RBT_GIFT_ACTIVE_TYPE on T_RBT_GIFT_ACTIVE (TYPE)
  83.   tablespace RBTIDX
  84.   pctfree 10
  85.   initrans 2
  86.   maxtrans 255
  87.   storage
  88.   (
  89.     initial 64K
  90.     minextents 1
  91.     maxextents unlimited
  92.   );
复制代码

回复 只看该作者 道具 举报

4#
发表于 2012-7-30 10:47:10

相关位图索引查询结果

  1. SQL> Select kind,Count(*) From  T_RBT_GIFT_ACTIVE Group By kind;

  2. KIND   COUNT(*)
  3. ---- ----------
  4.    1        608
  5.    2    1072480
  6.    3     169356
  7.    4     172633
  8. SQL> Select LOTTERY,Count(*) From  T_RBT_GIFT_ACTIVE Group By LOTTERY;

  9. LOTTERY   COUNT(*)
  10. ------- ----------
  11.      -7          1
  12.      -4          1
  13.      -1         31
  14.       1     191485
  15.       2     240403
  16.       3      85183
  17.      -3          5
  18.      -2          3
  19.      -6          1
  20.       0     898001

  21. 10 rows selected
  22. SQL> Select TYPE,Count(*) From  T_RBT_GIFT_ACTIVE Group By TYPE;

  23. TYPE   COUNT(*)
  24. ---- ----------
  25.    5     168913
  26.    1     710188
  27.    2     531469
  28.    3       4067
  29.    4        503
复制代码

回复 只看该作者 道具 举报

5#
发表于 2012-7-30 10:50:45

我的判断

貌似是滥用的bitmap的结果吧~?

回复 只看该作者 道具 举报

6#
发表于 2012-7-30 10:51:30
create bitmap index IDX_RBT_GIFT_ACTIVE_LOTTERY on T_RBT_GIFT_ACTIVE (LOTTERY)
  tablespace RBTIDX
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
create index IDX_RBT_GIFT_ACTIVE_PH on T_RBT_GIFT_ACTIVE (PHONE_NUMBER)
  tablespace RBTIDX
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
create bitmap index IDX_RBT_GIFT_ACTIVE_TYPE on T_RBT_GIFT_ACTIVE (TYPE)
  tablespace RBTIDX
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );



应当是由  BITMAP INDEX引起的  INSERT锁问题造成了出现死锁, 尝试在测试环境中 DROP这些INDEX 并重复以测试

回复 只看该作者 道具 举报

7#
发表于 2012-7-30 10:52:55
嗯,虽然我在看了ddl之后也推测是这个原因,但是如何从trc信息中获得关键的指示呢?

回复 只看该作者 道具 举报

8#
发表于 2012-7-30 11:09:29
多谢ML了,还是的继续多阅读啊,不然被trc闷了。

回复 只看该作者 道具 举报

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

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

GMT+8, 2024-12-25 14:25 , Processed in 0.050442 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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