¡¾×ª¡¿¼òµ¥ËµÒ»Ëµ Oracle¿âµÄHang
·Ç³£ÉÙµÄÇé¿öÏ£¬ÎÒÃÇ»á¸Ð¾õÎÒÃǵĿ⡱Hang¡±ÁË£¬¼ÓÁËÒþºÅµÄÒâ˼ÊÇ˵ÓÐÊ±ÕæµÄÊÇHangÁË£¬ÓÐһЩÔò²»ÊÇ£¬ÊÇÓÉÓÚÐÔÄܵÄÎÊÌâÒýÆðµÄ¡£ÎÒÓöµ½¹ý¼¸´ÎHangµÄÇé¿ö£¬½áºÏ×ÅÍøÉÏһЩÎÄÕ£¬°Ñ¿ÉÄܵÄÔÒò¡¢µ±Ê±ÎÒÃÇÓ¦¸Ã×öµÄһЩ²Ù×÷½øÐÐÁËÈçϵÄ×ܽᣬ²»¶ÔµÄµØ·½´ó¼Ò¿ÉÒÔ·¢Mail¸øÎÒ:crane@storren.net ¡£
Ò»¡¢Êý¾Ý¿âHangʱ¿ÉÄܵÄÏÖÏó
1¡¢×îÖ±¹ÛµÄÊÇÄãµÄ´ó²¿·ÖµÄÒµÎñ²Ù×÷£¬±ÈÈç˵һ¸ö²éѯ¶¼Ê¹Óúó¤µÄʱ¼ä£¬»ò¸ù±¾¾Í·µ»Ø²»³ö½á¹û¡£ÕâºÍ¼òµ¥ÄÇÖÖËø±íÊÇÓÐÇø±ðµÄ¡£
2¡¢ÔÚ²Ù×÷ϵͳÉÏÓÃHp-unixÓÃglance¡¢AixÓÃnmon¼°ÓÃsar×ö¼à²â»á³öÏÖϵͳ¿ÕÏеļÙÏ󣬱íÃæ¿´ÆðÀ´ÏµÍ³ºÜÏУ¬Êµ¼ÊÉÏϵͳÒѾHangÁË¡£
3¡¢²év$session_wait»á³öÏÖ´óÁ¿µÄ¡±latch free¡±¡¢¡±enqueue¡±¡¢¡± free buffer waits¡±µÈµÈ´ýʼþ£¬ÓÐʱºǫ́»á³öÏÖ´óÁ¿µÄ.trcÎļþ£¬ÁíÍâÐèÒª¹Û×¢Ò»ÏÂ$ORACLE_HOME/rdbms/logÕâ¸öλÖã¬ÓÐһЩʱºîtraceÎļþ»áÉú³Éµ½ÕâÀï¡£
¶þ¡¢Oracle¿âHangʱһЩÓÐÓõIJÙ×÷ºÍ²éѯ
1¡¢Èç¹ûҪѰÇóOracleµÄ¼¼ÊõÖ§³Ö£¬ÎÒÃÇÐèÒªdumpÒ»ÏÂOracleµÄsystemstate£¬²Ù×÷ÈçÏÂ
SQL> alter session set events 'immediate trace name SYSTEMSTATE level 10';
SQL>conn / as sysdba;
SQL>set pagesize 0
SQL> SELECT * from v$parameter;
SQL>SELECT sid, id1, id2, type, lmode, request from v$lock;
SQL>SELECT * from v$session_wait ORDER BY sid; --¸ô¼¸ÃëÖØ¸´Ö´ÐÐ3´Î¡£
µ±µÃµ½OracleµÄ¿âÆæÂý»òHangʱ±£³ÖÀä¾²µÄÍ·ÄÔºÜÖØÒªµÄ£¬¿ÉÒÔ°´ÈçÏµķ½·¨½øÐÐһЩ´¦Àí£º
1¡¢Ê×ÏÈÒªµ½²Ù×÷ϵͳÉÏÈ¥£¬ÓÃglanceµÈ¹¤¾ß½øÐÐһϹ۲죬¿´Ò»ÏÂcpu¡¢ÄÚ´æ¡¢½»»»Çø¡¢´ÅÅ̵ķ±Ã¦³Ì¶ÈÓëÆ½Ê±ÊDz»ÊÇÏàËÆµÄ£¬Í¬Ê±¿´Ò»¿´ÓÐûÓÐռϵͳ×ÊÔ´ÌØ±ð´óµÄ½ø³Ì£¬ÓÐЩʱºîÊÇÕâЩ½ø³ÌÒýÆðµÄ£¬Í¨¹ýv$processºÍv$sessionÁ½¸öÊÓͼÕÒµ½ÕâOracle½ø³ÌµÄsid,serial#,°ÑËüÓÃAlter system kill session ¡®sid,serial#¡¯;ɱµô¾ÍÐÐÁË¡£Èç¹ûƽʱͬÑùµÄʱ¶ÎÄãµÄ´ÅÅ̵ķ±Ã¦³Ì¶ÈÊÇ95%£¬¶øÐ©Ê±ËüΪ20%£¬µ±È»ÊǼÙÉèÁË£¬ËµÃ÷OracleµÄ¿âÃ»×¼ÕæµÄhangÁË¡£
2¡¢Ê±¼äÀ´µÃ¼°µÄ»°Ö´ÐÐһϡ±¶þ¡±ÖеÄÓï¾äÊǺܱØÒªµÄ£¬ÕâÑù¿ÉÒÔ°ÑÕâЩÐÅÏ¢Ìá½»¸øOracleµÄsupporter£¬ÈÃÄãÃǸøÄã·ÖÎöһϣ¬²éÒ»ÏÂÔÒò¡£
3¡¢Èç¹ûÄãµÄ¿â¿ª¹éµµÁË£¬³öÏÖHangµÄʱºîÒ»¶¨Òª¿´Ò»Ï¹鵵ÈÕÖ¾µÄÎļþϵͳÊDz»ÊÇÂúÁË£¬×öÒ»¸öÍ걸һЩµÄÍø¹ÜϵͳÊǺܱØÒªµÄ¡£
4¡¢ÔÚHPϵͳÉÏ´ò¿ªÒì²½IOʱһ¶¨²»ÒªÍü¼ÇΪdbaÕâ¸ö×é¼ÓÉÏMLOCKµÄȨÏÞ£¬ÎÒ¾
Ïà¹ØÎĵµ£º
ѧϰOracle DBAÒ²°ë¸ö¶àѧÆÚÁË£¬½ñÌìÃÍÈ»²Å·¢ÏÖ£¬ÔÀ´ÎÒµÄÊ黹ÊǺÜеģ¬ÉϿβÙ×÷ʱºòÒ²Ö»ÊÇÖªµÀ´ó¸ÅÔõô×ö£¬µ«ÊÇÒªÕæµÄÈ«²¿×Ô¼º×ö£¬¶ø²»È¥·Ê黹ÊÇÓÐÒ»¶¨µÄÄѶȵģ¬ËùÒÔÄØ£¬½ñÌ쿪ʼ½«DBA´ÓÍ·¸´Ï°Ò»±é£¬Í¬Ê±ÔÙ²Ù×÷Ò»±é¡£
µÚÒ»Õ£¬Ñ§µÄÊÇOracleµÄÌåϵ½á¹¹£ ......
1¡¢´ÓrootÓû§Çл»µ½oracleÓû§
#su - oracle
2¡¢ÀûÓÃnologÑ¡ÏîÆô¶¯sql*plus¹¤¾ß³ÌÐò
$slqplus /nolog
3¡¢ÀûÓÃsysdbaÉí·ÝÆô¶¯oracleÊý¾Ý¿â
sql>connect / as sysdba
sql>startup
4¡¢Æô¶¯Êý¾Ý¿âµÄ¼àÌýÆ÷listener
$lsnrctl start
»ò
$lsnrctl
lsnrctl>start
5¡¢¹Ø±ÕoracleÊý¾Ý¿â¼àÌý
$lsnrctl stop
6¡ ......
1¡¢Ê¹ÓÃ%TYPE
ÔÚÐí¶àÇé¿öÏ£¬PL/SQL±äÁ¿¿ÉÒÔÓÃÀ´´æ´¢ÔÚÊý¾Ý¿â±íÖеÄÊý¾Ý¡£ÔÚÕâÖÖÇé¿öÏ£¬±äÁ¿Ó¦¸ÃÓµÓÐÓë±íÁÐÏàͬµÄÀàÐÍ¡£ÀýÈ磬students±íµÄfirst_nameÁеÄÀàÐÍΪVARCHAR2(20),ÎÒÃÇ¿ÉÒÔ°´ÕÕÏÂÊö·½Ê½ÉùÃ÷Ò»¸ö±äÁ¿
DECLARE
v_FirstName VARCHAR2(20);
µ«ÊÇÈç¹ûfirst_nameÁе͍Òå¸Ä±äÁ˻ᷢÉúʲô£¨±ÈÈç˵±í¸Ä±äÁË£¬first ......
ÔÚ´¦ÀíÊý¾Ýʱ·¢ÏÖÒ»¸öÎÊÌ⣬Oracle¶ÔÓÚСÓÚ1µÄСÊý£¬Ð¡ÊýµãÇ°ÃæµÄ0ÊDz»ÏÔʾµÄ¡£
SQL> create table t1_number (num number);
Table created
SQL> insert into t1_number values(0.3268);
1 row inserted
SQL> insert into t1_number values(0.57965686);
1 row inserted
&nb ......
Õâ´ÎÈ¥ÉÇÍ·ÊǸøÉÇÍ·µçÐŽ²¿Î,Ö÷½²ORACLEÊý¾Ý¿âÐÔÄÜÓÅ»¯,ΪÆÚ4Ìì.´ÓÂÞºþÆû³µÕ¾³ö·¢,×ßÉîÉǸßËÙ,´óÔ¼4,5¸öÖӾ͵½ÉÇÍ·ÁË.
³ö·¢Ê±ÊǰøÍí,³µ×ÓÔÚÉîÉǸßËÙÐнø,ϦÑôÎ÷Ï£¬ÂäÈÕµÄÓà»ÔÕÕÓ³ÔÚ¹«Â·Á½±ßµÄÇðÁê,ɽÌÁÉÏ£¬¿´ÉÏÈ¥ºÜÃÀ¡£ÉîÉǸßËٴ󲿷ÖÊÇÑØ×ź£°¶ÏßòêÑÑ£¬ËùÒÔ£¬ÓÐʱÔÚ³µÉϾÍÄܹ»¿´µ½º££¬ÂäÈÕµÄÓà»ÔÕÕÔÚ´óº£ÉÏ£¬²¨¹âÁÛÁÛ£¬¼ ......