楼主: arron刘

【话题讨论】谈经验 赢门票 2013技术盛典等待你的到来

[复制链接]
论坛徽章:
1
2013年新春福章
日期:2013-02-25 14:51:24
21#
发表于 2013-2-1 09:16 | 只看该作者

支持,期待中...

使用道具 举报

回复
论坛徽章:
10
奥运纪念徽章
日期:2012-11-28 09:37:302013年新春福章
日期:2013-02-25 14:51:242013年新春福章
日期:2013-02-27 16:54:00迷宫蛋
日期:2013-02-20 12:33:13茶鸡蛋
日期:2013-01-31 10:56:53茶鸡蛋
日期:2013-01-30 10:27:04咸鸭蛋
日期:2013-02-17 23:42:39迷宫蛋
日期:2013-02-17 23:42:39鲜花蛋
日期:2013-02-17 23:42:39大众
日期:2013-11-01 13:43:53
22#
发表于 2013-2-1 12:38 | 只看该作者
强烈支持

使用道具 举报

回复
论坛徽章:
10
奥运纪念徽章
日期:2012-11-28 09:37:302013年新春福章
日期:2013-02-25 14:51:242013年新春福章
日期:2013-02-27 16:54:00迷宫蛋
日期:2013-02-20 12:33:13茶鸡蛋
日期:2013-01-31 10:56:53茶鸡蛋
日期:2013-01-30 10:27:04咸鸭蛋
日期:2013-02-17 23:42:39迷宫蛋
日期:2013-02-17 23:42:39鲜花蛋
日期:2013-02-17 23:42:39大众
日期:2013-11-01 13:43:53
23#
发表于 2013-2-1 12:39 | 只看该作者
数据库啊,是越做越大,越快越好,安全性也是最重要的

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
21
ITPUB十周年纪念徽章
日期:2013-06-18 22:48:19马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-02-18 16:42:02优秀写手
日期:2013-12-18 09:29:12林肯
日期:2013-10-31 18:06:48奥迪
日期:2013-09-12 15:57:04ITPUB社区12周年站庆徽章
日期:2013-08-20 11:30:11蛋疼蛋
日期:2013-06-17 14:35:03ITPUB社区千里马徽章
日期:2013-06-09 10:15:342013年新春福章
日期:2013-05-27 10:23:00
24#
发表于 2013-2-1 12:46 | 只看该作者
遇到任何难题,查资料,模拟故障,处理故障尝试


全靠自己,累就一个字,收获慢,但是牢靠

使用道具 举报

回复
论坛徽章:
4
双黄蛋
日期:2012-12-26 11:35:292013年新春福章
日期:2013-02-25 14:51:24奥运纪念徽章
日期:2013-06-18 09:13:52优秀写手
日期:2014-03-25 05:59:50
25#
发表于 2013-2-1 18:02 | 只看该作者
门票不想,来个蛋

使用道具 举报

回复
招聘 : Oracle 课程老师
论坛徽章:
48
19周年集字徽章-周
日期:2019-09-03 17:47:002011数据库大会纪念章
日期:2015-04-23 10:33:192010数据库技术大会纪念徽章
日期:2015-04-23 10:33:192014年世界杯参赛球队: 俄罗斯
日期:2014-07-17 17:21:42ITPUB伯乐
日期:2014-07-17 14:45:422014年世界杯参赛球队: 希腊
日期:2014-06-20 16:01:122014年世界杯参赛球队:克罗地亚
日期:2014-06-12 16:53:56马上加薪
日期:2014-04-25 14:18:13目光如炬
日期:2014-04-21 06:00:12马上有房
日期:2014-03-31 15:10:37
26#
发表于 2013-2-2 10:22 | 只看该作者
1、谈谈你遇见过的技术难题,以及怎样攻克的?分享自己的技术经验
ora-00054 表被lock导致资源忙等待不能操作案例

8月20日
1.联通现场状态
时间:2012年8月20日
数据库版本:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
操作系统平台:HP-UX
告警日志: more   alert_mdsoss.log

2.定位问题
报错现象:
ORA-00054: resource busy acquire with nowait specified        资源正忙,指定以nowait方式获取资源
select * from leo where number>1 for update nowait;  如果不想让其他会话继续等待,可以用【nowait】方式获得一个通知而无需等待下去
协成日志报错:SQL ERR :insert into table GNTCPCNN12082015     不能插入表

3.分析原因
一般像这种情况可能是这个表正在被使用,有可能有lock暂时不能使用,在dba权限下查看一下是否有v$locked_object,有的话把session干掉

SQL> select * from v$locked_object;                                                                        
                                                                                                            
    XIDUSN    XIDSLOT     XIDSQN  OBJECT_ID SESSION_ID ORACLE_USERNAME  OS_USER_NAME    PROCESS  LOCKED_MODE
---------- ---------- ---------- ---------- ---------- ---------------- --------------- --------------------
        13         13     681477   79913476        855 MDSOSS           mdsdb2          12897              6
         7         41     600151   79914479        998 MDSOSS           npmuser         10468              3
         7         41     600151   79914483        998 MDSOSS           npmuser         10468              3
         7         41     600151   79914481        998 MDSOSS           npmuser         10468              3
        19         27     701115   79913681       1032 MDSOSS           mdsdb3          8658               6
        61         30     182840     153240       1059 MDSOSS           oracle          12738              3
        61         30     182840        212       1059 MDSOSS           oracle          12738              3
        61         30     182840        165       1059 MDSOSS           oracle          12738              3
        30          7     545652   79915059       1073 MDSOSS           npmuser         20387              3
        52         39     385940   79913551       1085 MDSOSS           mdsdb3          12960              6
        51         17     461665   79914748       1090 MDSOSS           npmuser         15454              3
        51         17     461665   79914756       1090 MDSOSS           npmuser         15454              3
        51         17     461665   79914763       1090 MDSOSS           npmuser         15454              3
        58         24     262815   79914375       1175 MDSOSS           npmuser         6369               3
        58         24     262815   79914380       1175 MDSOSS           npmuser         6369               3
        58         24     262815   79914378       1175 MDSOSS           npmuser         6369               3
        10         46     680893   79913459       1179 MDSOSS           mdsdb2          2581               6
                                                                                                            
17 rows selected                                                                                            
                                                                                                            
SQL>  select * from v$locked_object;                                                                        
                                                                                                            
    XIDUSN    XIDSLOT     XIDSQN  OBJECT_ID SESSION_ID ORACLE_USERNAME  OS_USER_NAME    PROCESS  LOCKED_MODE
---------- ---------- ---------- ---------- ---------- ---------------- --------------- --------------------
        42         22     507847   79915291        976 MDSOSS           npmuser         25324              3
        42         22     507847   79915263        976 MDSOSS           npmuser         25324              3
        42         22     507847   79915282        976 MDSOSS           npmuser         25324              3
         1          5     650009   79915671        989 MDSOSS           npmuser         1175               3
         1          5     650009   79915675        989 MDSOSS           npmuser         1175               3
         1          5     650009   79915676        989 MDSOSS           npmuser         1175               3

我进行了2次查找。第一次发现mdsdb2、mdsdb3用户操作的插入对象正在被锁定,并且锁的级别都是6级,级别非常高,导致资源被占用,如果此时在对表操作就会报ora-00054,后来查询了第二次,就没有mdsdb2、mdsdb3用户的锁对象了,此时就可以操作表了。

4.查询哪些用户下哪些表被锁住了
select A.sid, b.serial#,
  2  decode(A.type,
  3      'MR', 'Media Recovery',
  4      'RT','Redo Thread',
  5      'UN','User Name',
  6      'TX', 'Transaction',
  7      'TM', 'DML',
  8      'UL', 'PL/SQL User Lock',
  9      'DX', 'Distributed Xaction',
10      'CF', 'Control File',
11      'IS', 'Instance State',
12      'FS', 'File Set',
13      'IR', 'Instance Recovery',
14      'ST', 'Disk Space Transaction',
15      'TS', 'Temp Segment',
16      'IV', 'Library Cache Invalida-tion',
17      'LS', 'Log Start or Switch',
18      'RW', 'Row Wait',
19      'SQ', 'Sequence Number',
20      'TE', 'Extend Table',
21      'TT', 'Temp Table',
22      'Unknown') LockType,
23  c.object_name,
24  b.username,
25  b.osuser,
26  decode(a.lmode,   0, 'None',
27              1, 'Null',
28              2, 'Row-S',
29              3, 'Row-X',
30              4, 'Share',
31              5, 'S/Row-X',
32              6, 'Exclusive', 'Unknown') LockMode,
33  B.MACHINE,D.SPID
34  from v$lock a,v$session b,all_objects c,V$PROCESS D
35  where a.sid=b.sid and a.type in ('TM','TX')
36  and c.object_id=a.id1
37  AND B.PADDR=D.ADDR
38  ;

SID     SERIAL# LOCKTYPE     OBJECT_NAME         USERNAME      OSUSER          LOCKMODE  MACHINE                       SPID           
--------------- ------------ ------------------- ------------- --------------- --------- ----------------------------- ------------   
867       6254 DML          TMP2720003          MDSOSS        npmuser         Row-X     TJGRAPP                       28373         
935      46865 DML          GNWEBBRW12082016    MDSOSS        mdsdb1          Exclusive TJ-Unicom-Group-Analyse-02    4632           
1120      33384 DML          TMP244701           MDSOSS        npmuser         Row-X     TJGRAPP                       844            
1120      33384 DML          TMP244702           MDSOSS        npmuser         Row-X     TJGRAPP                       844            
1120      33384 DML          TMP244703           MDSOSS        npmuser         Row-X     TJGRAPP                       844            
1030      53327 DML          GNMMO12082016       MDSOSS        mdsdb3          Exclusive TJ-Unicom-Group-Analyse-02    5211           
867       6254 DML          TMP2720001          MDSOSS        npmuser         Row-X     TJGRAPP                       28373         
867       6254 DML          TMP2720002          MDSOSS        npmuser         Row-X     TJGRAPP                       28373         
1014      46058 DML          TMP748801           MDSOSS        npmuser         Row-X     TJGRAPP                       3086           
1014      46058 DML          TMP748802           MDSOSS        npmuser         Row-X     TJGRAPP                       3086           
1014      46058 DML          TMP748803           MDSOSS        npmuser         Row-X     TJGRAPP                       3086           
1176      22983 DML          TMP790301           MDSOSS        npmuser         Row-X     TJGRAPP                       3168           
994      20324 DML          TMP791601           MDSOSS        npmuser         Row-X     TJGRAPP                       3170           
                                                                                                                                      
13 rows selected                                                                                                                     
小结:例如 GNWEBBRW12082016 这个表现在已经被mdsdb1用户使用,在没有commit之前,其他用户是不能使用的,如果其他用户此时也想访问这个表就会发生ora-00054错误!就会有资源争用导致资源忙等待

解决方法:
1.重启数据库  startup  force
2.等待锁解除  commit  rollback
3.强制kill会话
4.select * from leo where number>1 for update nowait;  如果不想让其他会话继续等待,可以用【nowait】方式获得一个通知而无需等待下去

Leonarding
2012.8.20
天津&autumn
分享技术~收获快乐
Blog:http://space.itpub.net/26686207
2.你最期待会议现场出现哪些你喜欢的技术牛人?

tigerfish-黄志洪      tom大叔

使用道具 举报

回复
招聘 : Oracle 课程老师
论坛徽章:
48
19周年集字徽章-周
日期:2019-09-03 17:47:002011数据库大会纪念章
日期:2015-04-23 10:33:192010数据库技术大会纪念徽章
日期:2015-04-23 10:33:192014年世界杯参赛球队: 俄罗斯
日期:2014-07-17 17:21:42ITPUB伯乐
日期:2014-07-17 14:45:422014年世界杯参赛球队: 希腊
日期:2014-06-20 16:01:122014年世界杯参赛球队:克罗地亚
日期:2014-06-12 16:53:56马上加薪
日期:2014-04-25 14:18:13目光如炬
日期:2014-04-21 06:00:12马上有房
日期:2014-03-31 15:10:37
27#
发表于 2013-2-2 10:25 | 只看该作者
1、谈谈你遇见过的技术难题,以及怎样攻克的?分享自己的技术经验
问题描述:
新疆oracle客户端无法链接
问题分析:
查看alter日志,发现打开apmdbs26_11.dbf时出错,同时看到有新建apmdbs26_11.dbf数据文件的日志,说明和apmdbs26_11.dbf是有关系的,观察oracle进程发现oracle进程已经全部退出,这下可以确认是创建数据文件造成的,咨询现场得知,刚开始apmdbs26_11.dbf是建立在/orc_arch目录下,发现剩余空间不够,又取消了,另外建立在ora_data2目录下,这样就造成了这个问题。

处理过程:
SQL> startup mount
ORACLE instance started.

Total System Global Area 914358272 bytes
Fixed Size 2088184 bytes
Variable Size 528483080 bytes
Database Buffers 377487360 bytes
Redo Buffers 6299648 bytes
Database mounted.
SQL> alter database datafile '/orc_arch/mdsoss/apmdbs26_11.dbf' offline drop;

Database altered.
SQL> alter database datafile '/ora_data2/mdsoss/apmdbs26_11.dbf' offline drop;
此时你是可以删除这个文件的在操作系统上

Database altered.
指定apmdbs26_11.dbf数据文件offline,offline drop这个命令只是把控制文件中的datafile标识成recover状态,并不是物理上真正删除apmdbs26_11.dbf数据文件
只是处于一个recover状态,只要你recover(靠redo日志恢复的)一下就变成offline状态,然后再alter online一下就可以使用了(非归档下在open状态 offline 一个datafile 需要勇气~因为如果需要的redo被覆盖,你将面临无法recover的状况,也就没法online了)
SQL> select NAME,STATUS from v$datafile;

NAME                                                             STATUS
------------------------------------------------------------ -------

/ora_data2/mdsoss/apmdbs26_11.dbf           RECOVER
SQL> alter database recover datafile '/ora_data2/mdsoss/apmdbs26_11.dbf ';
SQL> select NAME,STATUS from v$datafile;

NAME                                                             STATUS
------------------------------------------------------------ ---------------
/ora_data2/mdsoss/apmdbs26_11.dbf               OFFLINE
SQL> shutdown
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

对一个datafile执行offline和offline drop的区别
1、对一个datafile执行offline或offline drop本质上是一回事,但对一个datafile执行offline只能在归档模式下;而对一个datafile执行offline drop则既可以在归档模式也可以在非归档模式下;

2、对一个datafile无论是执行offline还是offline drop,都是只改写了control文件,不会更新file$和ts$,这就是为什么可以在mount状态下对某个datafile执行offline/offline drop的本质原因;

3、只有当对datafile所在的表空间执行offline normal的时候,才会既改写control文件,又更新ts$和seg$,oracle这里会把ts$的online$字段的值由1改为2,但依然不会去更新file$;

4、只有当对datafile所在的表空间执行drop操作的时候,oracle才会去更新ts$和file$,oracle这里会把ts$的online$字段的值由1改为3,会把file$的status$字段由2改为1;
注意,无论是file$的file#还是ts$的ts#,它们都是连续的!并且oracle会重用file$的file#,但是不会重用ts$里的ts#,这本质上是因为ts$里会记录tablespace的名字,而file$里并没有记录datafile的名字,所以file$里的记录可以重用而ts$则不能。

5、只要你对一个datafile执行了offline或者offline drop操作,则oracle在open的时候就不会去存储上(无论是文件系统、裸设备还是ASM)校验这个文件了,所以即使这个文件已经在存储上被删掉了,此时库依然可以open。

6、无论你是在归档模式还是在非归档模式,且无论你对某个datafile是执行了offline还是offline drop操作,只要归档日志还在(对应于归档模式)或者相关的online redo log没有被logfile switch覆盖(对应于非归档模式),则这个datafile始终是可以online的,里面的数据都还在。当然,即使归档日志不在了,online redo log被logfile switch覆盖了,这个datafile也是可以online的,只是里面的数据可能会不一致。

使用道具 举报

回复
论坛徽章:
2
2011新春纪念徽章
日期:2011-02-18 11:43:362013年新春福章
日期:2013-02-25 14:51:24
28#
发表于 2013-2-4 11:21 | 只看该作者
1、谈谈你遇见过的技术难题,以及怎样攻克的?分享自己的技术经验。
问题:MySQL数据库,如果数据库中日期字段为空为值为'0000-00-00 00:00:00"时,查询的时候回报:Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP
解决办法: 更改连接数据库方式: 后面加上一个参数zeroDateTimeBehavior=convertToNull
2、你最期待会议现场出现哪些你喜欢的技术牛人?
taobao团队的大牛

使用道具 举报

回复
论坛徽章:
82
2013年新春福章
日期:2013-02-25 14:51:24奥运会纪念徽章:排球
日期:2013-04-11 18:16:37奥运会纪念徽章:曲棍球
日期:2013-04-11 18:16:47奥运会纪念徽章:垒球
日期:2013-04-27 15:03:48奥运会纪念徽章:跳水
日期:2013-04-27 15:04:27奥运会纪念徽章:举重
日期:2013-04-27 15:04:27奥运会纪念徽章:田径
日期:2013-04-27 15:04:27奥运会纪念徽章:赛艇
日期:2013-04-27 15:04:27奥运会纪念徽章:垒球
日期:2013-04-27 15:04:27咸鸭蛋
日期:2013-03-24 21:25:32
29#
发表于 2013-2-7 20:05 | 只看该作者
1、谈谈你遇见过的技术难题,以及怎样攻克的?分享自己的技术经验。
答:遇到的技术问题很多很多了。
    场景一:
    OS: Windows7 旗舰版本64位
    Oracle: 11g R2 64位

    安装了Oracle之后,手动修改过listener.ora和tnsnames.ora文件中的主机名(HOST)
     由localhost改为了具体的IP地址。
    造成OEM无法连接数据库
   
    攻克问题的过程:
    a. google,参考已有的解决方案
    b. 翻阅自己的学习文档
    c. 反复查看官方文档中的相关章节和部分的内容

    场景二:
    显示基线中捕获的时间段中度量阙值。当使用适配器阙值,基线包括AWR数据,数据库可以使用来计算度量阙值。SELECT_BASELINE_METRICS函数允许你显示在基线期间度量值的统计。
    01.BEGIN  DBMS_WORKLOAD_REPOSITORY.select_baseline_metric(            l_baseline_name => 'peak mondays',            l_dbid => 2565556506,             l_instance_num => 1);END;
     
     
     解决办法:
    a. 翻阅自己的学习文档
    b. Itpub求援

    场景三:
       
     
     
     为什么第一个和第二结果不为NULL呢?   
   
    解决:
    反复阅读相关文档中的内容.
     同时向Itpub求助,希望能得到指点,快速找到问题的标准答案。

    总结:
    a. 善于使用搜索引擎, 快速定位关键字,减少确定性的结果。
    b. 官方文档是最权威的文档,很多问题都可以找到相关的解决办法
    c. 善于使用各种论坛,哪怕得到的不是最终的解决方法和步骤,得到一此思路也是好的。
    d. 善于使用MOS,官方技术支持(当然是需要具有MOS帐号)
    e. 善于总结和积累,不断把自己遇到和解决的问题整理成文档和技术博客中的文章

2、你最期待会议现场出现哪些你喜欢的技术牛人?
答:已经见赤一小部分牛人了,所以期待见到自己喜欢的其它技术牛人,技术狂人。
    如eagle,白善,lastwinner, knewkid, OO很多很多,不胜枚举。
    当然这些牛人,也都是在itpub上相识的朋友。

使用道具 举报

回复
论坛徽章:
7
2010新春纪念徽章
日期:2010-03-01 11:20:51茶鸡蛋
日期:2013-02-06 11:40:022013年新春福章
日期:2013-02-25 14:51:24ITPUB社区OCM联盟徽章
日期:2013-03-21 15:35:43马上有车
日期:2014-02-25 08:59:13懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18
30#
发表于 2013-2-8 09:37 | 只看该作者
一、遇到的问题: Ora-04031问题处理

1、查看保留区的大小:
SQL> show parameter shared_pool_reserved_size;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
shared_pool_reserved_size            big integer 80530636
SQL>

2、查看门限值的大小:
SQL> select ksppstvl from x$ksppsv where indx=(select indx from x$ksppi Where upper(ksppinm) = '_SHARED_POOL_RESERVED_MIN_ALLOC');
KSPPSTVL
-----------------------------------------------------------------------
4400
SQL>


3、查看shared_pool_reserved的使用情况
SQL> select requests,request_misses,request_failures,last_failure_size,aborted_request_threshold ab_re_th, aborted_requests,last_aborted_sizelst_ab_sz from v$shared_pool_reserved;

  REQUESTS REQUEST_MISSES REQUEST_FAILURES LAST_FAILURE_SIZE   AB_RE_TH
---------- -------------- ---------------- ----------------- ----------
ABORTED_REQUESTS  LST_AB_SZ
---------------- ----------
  47587610            500              158            163136 2147483647
               0          0


SQL>


4、查看shared_pool_reserved空间情况
SQL> select free_space,free_count,used_space,avg_used_size from v$shared_pool_reserved;

FREE_SPACE FREE_COUNT USED_SPACE AVG_USED_SIZE
---------- ---------- ---------- -------------
  60127312        323   20464304    23658.1549

SQL>


5、修改shared_pool_reserved的大小
通过对以上统计信息的收集,我们发现共享池保留区的大小偏小,建议修改共享池保留区的大小,同时注意在修改前进行参数文件的备份工作;
[oracle@node1 bak]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jan 7 17:59:35 2013

Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create pfile='/home/oracle/bak/init.ora' from spfile;

File created.

修改保留区的大小
SQL>alter system set shared_pool_reserved_size=180530636  scope=spfile SID='xxx1';                           /-- xxx1为实例名字--/

停止实例1
srvctl stop instance -d <数据库名> -i xxx1
启动实例1
srvctl start instance -d <数据库名> -i xxx1

SQL>alter system set shared_pool_reserved_size=180530636  scope=spfile SID='xxx2';                             /-- xxx2为实例名字--/

停止实例2
srvctl stop instance -d <数据库名> -i xxx2
启动实例2
srvctl start instance -d <数据库名> -i xxx2


二、希望见到的人:
eygle

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表