Flying & Snaking
===========================================================
ÏòÌÆÉ®Ñ§Ï°ITÏîÄ¿¹ÜÀí
===========================================================

¹ÅÓïÓÐÔÆ£¬Îª½«Ö®µÀÔÚ¡°ÖÇ¡¢ÐÅ¡¢ÈÊ¡¢Ó¡¢ÑÏ¡±¡£

ÌÆÉ®×÷ΪһÃû³É¹¦µÄÏîÄ¿¾­Àí£¬×ÔÓÐËûµÄÒ»·¬¾°Ïó¡£ËûËùÁìµ¼µÄÏîÄ¿Êǵ±Ê±×îÅÓ´óµÄÏîÄ¿¡ª¡ªÎ÷ÌìÖ®ÐÐÇóÈ¡Õæ¾­£»ËûËùÁìµ¼µÄÏîÄ¿ÍŶÓÊÇÉñÏÉÍŶӣºËïÎò¿Õ¡¢Öí°Ë½ä¡¢É³É®£¬Íâ¼Óһƥ°×ÁúÂí£»ËûµÄÍŶÓÒµ¼¨Õð˸¹Å½ñ£»ËûÃǵĹÊÊÂÁ÷´«ÖÁ½ñ¡£ËûÊÇÈçºÎ³ÉΪµ±Ê±×îÓÅÐãµÄÏîÄ¿¾­Àí£¿½ñÌìµÄÈËÃÇÓÖ¸ÃÈçºÎÏòËûѧϰÏîÄ¿¹ÜÀíÄØ

 ²é¿´È«ÎÄ
2jliu ·¢±íÓÚ:2008.06.02 09:46 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(37´Î) :: ÆÀÂÛ (0)
===========================================================
һλУ³¤´´Ô쿹ÕðÆæ¼£:°²ÏØÉ£ÔæÖÐѧʦÉúÎÞÒ»ÉËÍö
===========================================================
Ëû°«£¬ÅÖÅֵġ£

¡¡¡¡ËûËùÔÚµÄÖÐѧ£¬ÊÇËÄ´¨°²ÏØÉ£ÔæÖÐѧ£¬ÊÇÒ»Ëù³õ¼¶ÖÐѧ£¬ÔÚÃàÑôÖܱ߷dz£ÓÐÃû¡£Ñ§Ð£Òò½ÌѧÖÊÁ¿¸ß£¬Á¬Ðø£±£³Äê¶¼ÊÇÈ«ÏØÖп¼µÚÒ»Ãû£¬ÖÜΧ¼Ò³¤¶¼Æ´Ãü°Ñº¢×ÓÍùÀïËÍ¡£Ñ§Éú×î¶àµÄ°à£¬ÓУ¸£°¶àÃûѧÉú£¬×îǰÅŵÄѧÉú¼¸ºõ×øÔÚÀÏʦϰÍǰ¡£

¡¡¡¡µØÕðÀ´ÁÙʱ£¬ËûÕýÔÚÃàÑô°ìÊ¡£´óµØÕ𶯣¬ËûÕ¾²»ÎÈ£¬Ö»ºÃÓëѧУµÄ×ÜÎñ³¤»¥Ïà±§×Å¡£

¡¡¡¡ÊÖ»ú´ò²»Í¨£¬µç»°¶ÏÁË£¬µÚÒ»²¨Õðµ´¹ýÈ¥ºó£¬ËûÁ¢¼´Çý³µÍùµØ´¦ÖØÔÖÇøµÄѧУ¸Ï¡£

¡¡¡¡³µ¿ªµÃ·É¿ì£¬Â·ÉÏËûÒ»¾ä»°Ò²²»Ëµ¡£

¡¡¡¡Ëûµë¼Ç×ÅѧУÄǶ°Ã»ÓÐͨ¹ýÑéÊÕµÄʵÑé½Ìѧ¥£¬ÐÄÀï×îŵÄÊÇÄǶ°Â¥³öÊ¡£

¡¡¡¡ÉÏÊÀ¼Í£¸£°Äê´úÖУ¬ÄǶ°Â¥½¨Éèʱ£¬Ñ§Ð£Ã»ÓÐÕÒÕý¹æµÄ½¨Öþ¹«Ë¾£¬¶Ï¶ÏÐøÐøµØ¸ÇÁËÁ½Äê¶à¡£µ½ºóÀ´£¬Ã»ÓÐÈ˸ÒΪÕâ¶°Â¥ÑéÊÕ¡£

¡¡¡¡ÐµÄʵÑé½Ìѧ¥¸ÇºÃÁË£¬ÀÏʦºÍѧÉúË­Ò²²»Ô¸Òâ°á½øÈ¥£¬Äĸö¶¼ÖªµÀûÓÐÈ˸ÒÑéÊÕµÄÂ¥£¬½¨ÖþÖÊÁ¿ÊÇʲôÑùµÄ

³ÉÉ«¡£

 ²é¿´È«ÎÄ
2jliu ·¢±íÓÚ:2008.05.24 19:47 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(32´Î) :: ÆÀÂÛ (0)
===========================================================
˾Âí¹â,ÄãΪÂïÒªÔÒ¸×?
===========================================================
ÄÇÌìÎÒ½²ÁË˾Âí¹âÔҸ׵ĹÊÊ£¬È»ºóÌáÎÊ¡£ÎÒµÄÒâͼÊÇҪѧÉú˵³ö˾Âí¹â´ÏÃ÷»òÕß»úÖÇ¡¢Ó¸ÒÖ®ÀàµÄ£¬È»ºóÒòÊÆÀûµ¼Ñ§ÉúÃÇѧϰÕâÖÖ¾«Éñ¡£ ²é¿´È«ÎÄ
2jliu ·¢±íÓÚ:2008.03.21 13:08 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(39´Î) :: ÆÀÂÛ (0)
===========================================================
session allocation latchÎÊÌâ
===========================================================

session allocation latchÎÊÌâ

http://www.itpub.net/showthread.php?s=&threadid=866095&perpage=10&pagenumber=1

 ²é¿´È«ÎÄ
2jliu ·¢±íÓÚ:2007.10.08 17:12 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(78´Î) :: ÆÀÂÛ (0)
===========================================================
½ñÌìmetalinkÉϲ»È¥,ÄãµÄÎÊÌâ¿ÉÒÔ´ÓÏÂÃæÕÒÕÒ,»òÐíÓдð°®
===========================================================
½ñÌìmetalinkÉϲ»È¥,ÄãµÄÎÊÌâ¿ÉÒÔ´ÓÏÂÃæÕÒÕÒ,»òÐíÓд𰮠²é¿´È«ÎÄ
2jliu ·¢±íÓÚ:2007.09.15 12:28 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(83´Î) :: ÆÀÂÛ (0)
===========================================================
ÕûÀíµçÄÔÖеÄoracle×ÊÁÏ
===========================================================
ÕûÀíµçÄÔÖеÄoracle×ÊÁÏ ²é¿´È«ÎÄ
2jliu ·¢±íÓÚ:2007.09.15 12:28 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(62´Î) :: ÆÀÂÛ (0)
===========================================================
english(4)
===========================================================

violence

It's full of voilence and you are so young


2jliu ·¢±íÓÚ:2007.09.07 09:05 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(70´Î) :: ÆÀÂÛ (0)
===========================================================
Ôõô²îµãÍüÁ˽Ìʦ½ÚÁ¨
===========================================================
²éµã,9/10 ûÓÐÍü¼Ç,¼ÇÏÂÀ´»¹Óм¸Î»Ç×ÅóÐèҪף¸£Ò»·­Á¨
2jliu ·¢±íÓÚ:2007.09.07 09:03 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(64´Î) :: ÆÀÂÛ (0)
===========================================================
ÄϾ©Ò»ÈÕÔâ1.4Íò´ÎÀ×»÷
===========================================================
¾Ý½­ËÕÊ¡ÆøÏǫ́ÏûÏ¢£¬²ÎÕÕÀ׵綨λϵͳͳ¼ÆÊý¾Ý£¬2007 Äê7Ô£·ÈÕÁ賿ÖÁ£¸ÈÕÁ賿£¬ÄϾ©ÉϿչ²ÓУ±£´£°£°£°¶à´ÎÀ׵磬ƽ¾ùÿ·ÖÖÓÔ¼£±£°´Î£¬Ç¿À×»÷µ¼ÖµØÌúµÈ²¿·ÖÊÐÕþÉèÊ©ÔâÆÆ»µ¡£ ²é¿´È«ÎÄ
2jliu ·¢±íÓÚ:2007.07.10 08:44 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(67´Î) :: ÆÀÂÛ (0)
===========================================================
±ä¸üÃÜÂëµÄ·½Ê½
===========================================================
SQL> select username,password from dba_users where username='twojliu';

USERNAME PASSWORD
------------------------------ ------------------------------

TWOJLIU 010CD1914E5AB20C

SQL> alter user twojliu identified by abc;

User altered.

SQL> conn twojliu
Connected.
SQL> conn / as sysdba
Connected.
SQL> alter user twojliu identified by values '010CD1914E5AB20C';

User altered.


2jliu ·¢±íÓÚ:2007.04.15 19:45 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(122´Î) :: ÆÀÂÛ (0)
===========================================================
Á¬½Ó
===========================================================
http://www.ixpub.net/showthread.php?s=&threadid=648825
2jliu ·¢±íÓÚ:2007.04.10 09:45 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(1902´Î) :: ÆÀÂÛ (0)
===========================================================
ÓÐÒ»dbÒªÍâ°ü...
===========================================================
Ò»¶¨Òª¼Æ»®ºÃ£¬ÓÈÆäDB·½Ãæ¡£±ðС¿´ÁËÍøÂçÕâÒ»¿é¡£ËäÈ»°³²»¶®£¬È´¸Ð´¥í¥¶à¡£¼Çס£ºÍøÂçµÄÓ°Ïì²»¿ÉÐ¡ÇÆ
2jliu ·¢±íÓÚ:2007.04.04 14:17 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(133´Î) :: ÆÀÂÛ (0)
===========================================================
ÎÒ¶ÔORACLEÊý¾ÝËøµÄÒ»µãÌå»á
===========================================================
http://www.itpub.net/270059.html
2jliu ·¢±íÓÚ:2007.03.15 17:42 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(104´Î) :: ÆÀÂÛ (0)
===========================================================
ÈçºÎÏòÊý¾Ý¿âÖвåÈë´øÓÐ?»òÕß&ÄØ£¿
===========================================================

SQL> insert into t (id) values(chr(63));

1 row inserted

SQL> insert into t (id) values(chr(38));

1 row inserted

SQL> select * from t;

ID
--------------------
?
&

SQL> insert into t values ('aa'||chr(63)||'bb'||chr(38)||'c');

1 row inserted

SQL> select * from t;

ID
--------------------
?
&
aa?bb&c

select ascii('&') from dual;

way2:

?ûÓÐÎÊÌ⣬&¿ÉÒÔset define off¹Ø±Õ
set define off
insert into tmp values('aa?a&a');


2jliu ·¢±íÓÚ:2007.03.07 13:43 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(118´Î) :: ÆÀÂÛ (0)
===========================================================
°²×°Veritas Storage Fundation For Oracle Rac4.0
===========================================================
http://www.eygle.com/archives/2004/08/vsstorage_fundation_fororarac40.html
2jliu ·¢±íÓÚ:2007.02.25 17:02 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(133´Î) :: ÆÀÂÛ (0)
===========================================================
¸ß¼¶¸´ÖƳõ²½Ñо¿
===========================================================
http://www.itpub.net/204968.html
2jliu ·¢±íÓÚ:2007.02.24 19:47 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(2046´Î) :: ÆÀÂÛ (0)
===========================================================
SQL&PL/SQL
===========================================================
µÚÒ»²¿·Ö¡¢SQL&PL/SQL[Q]ÔõôÑù²éÑ¯ÌØÊâ×Ö·û£¬ÈçͨÅä·û%Óë_
[A]select * from table where name like 'A_%' escape ''

[Q]ÈçºÎ²åÈëµ¥ÒýºÅµ½Êý¾Ý¿â±íÖÐ
[A]¿ÉÒÔÓÃASCIIÂë´¦Àí£¬ÆäËüÌØÊâ×Ö·ûÈç&Ò²Ò»Ñù£¬Èç
insert into t values('i'||chr(39)||'m'); -- chr(39)´ú±í×Ö·û'
»òÕßÓÃÁ½¸öµ¥ÒýºÅ±íʾһ¸ö
or insert into t values('I''m'); -- Á½¸ö''¿ÉÒÔ±íʾһ¸ö'

[Q]ÔõÑùÉèÖÃÊÂÎñÒ»ÖÂÐÔ
[A]set transaction [isolation level] read committed; ĬÈÏÓï¾ä¼¶Ò»ÖÂÐÔ
set transaction [isolation level] serializable;
read only; ÊÂÎñ¼¶Ò»ÖÂÐÔ

[Q]ÔõôÑùÀûÓÃÓαê¸üÐÂÊý¾Ý
[A]cursor c1 is
select * from tablename
where name is null for update [of column]
¡­¡­
update tablename set column = ¡­¡­
where current of c1;

[Q]ÔõÑù×Ô¶¨ÒåÒì³£
[A] pragma_exception_init(exception_name,error_number);
Èç¹ûÁ¢¼´Å׳öÒì³£
raise_application_error(error_number,error_msg,true|false);
ÆäÖÐnumber´Ó-20000µ½-20999£¬´íÎóÐÅÏ¢×î´ó2048B
Òì³£±äÁ¿
SQLCODE ´íÎó´úÂë
SQLERRM ´íÎóÐÅÏ¢

[Q]Ê®½øÖÆÓëÊ®Áù½øÖƵÄת»»
[A]8iÒÔÉϰ汾£º
to_char(100,'XX')
to_number('4D','XX')
8iÒÔϵĽøÖÆÖ®¼äµÄת»»²Î¿¼ÈçϽű¾
create or replace function to_base( p_dec in number, p_base in number )
return varchar2
is
l_str varchar2(255) default NULL;
l_num number default p_dec;
l_hex varchar2(16) default '0123456789ABCDEF';
begin
if ( p_dec is null or p_base is null ) then
return null;
end if;
if ( trunc(p_dec) <> p_dec OR p_dec < 0 ) then
raise PROGRAM_ERROR;
end if;
loop
l_str := substr( l_hex, mod(l_num,p_base)+1, 1 ) || l_str;
l_num := trunc( l_num/p_base );
exit when ( l_num = 0 );
end loop;
return l_str;
end to_base;
/
create or replace function to_dec
( p_str in varchar2,
p_from_base in number default 16 ) return number
is
l_num number default 0;
l_hex varchar2(16) default '0123456789ABCDEF';
begin
if ( p_str is null or p_from_base is null ) then
return null;
end if;
for i in 1 .. length(p_str) loop
l_num := l_num * p_from_base + instr(l_hex,upper(substr(p_str,i,1)))-1;
end loop;
return l_num;
end to_dec;
/

[Q]Äܲ»ÄܽéÉÜSYS_CONTEXTµÄÏêϸÓ÷¨
[A]ÀûÓÃÒÔϵIJéѯ£¬Äã¾ÍÃ÷°×ÁË
select
SYS_CONTEXT('USERENV','TERMINAL') terminal,
SYS_CONTEXT('USERENV','LANGUAGE') language,
SYS_CONTEXT('USERENV','SESSIONID') sessionid,
SYS_CONTEXT('USERENV','INSTANCE') instance,
SYS_CONTEXT('USERENV','ENTRYID') entryid,
SYS_CONTEXT('USERENV','ISDBA') isdba,
SYS_CONTEXT('USERENV','NLS_TERRITORY') nls_territory,
SYS_CONTEXT('USERENV','NLS_CURRENCY') nls_currency,
SYS_CONTEXT('USERENV','NLS_CALENDAR') nls_calendar,
SYS_CONTEXT('USERENV','NLS_DATE_FORMAT') nls_date_format,
SYS_CONTEXT('USERENV','NLS_DATE_LANGUAGE') nls_date_language,
SYS_CONTEXT('USERENV','NLS_SORT') nls_sort,
SYS_CONTEXT('USERENV','CURRENT_USER') current_user,
SYS_CONTEXT('USERENV','CURRENT_USERID') current_userid,
SYS_CONTEXT('USERENV','SESSION_USER') session_user,
SYS_CONTEXT('USERENV','SESSION_USERID') session_userid,
SYS_CONTEXT('USERENV','PROXY_USER') proxy_user,
SYS_CONTEXT('USERENV','PROXY_USERID') proxy_userid,
SYS_CONTEXT('USERENV','DB_DOMAIN') db_domain,
SYS_CONTEXT('USERENV','DB_NAME') db_name,
SYS_CONTEXT('USERENV','HOST') host,
SYS_CONTEXT('USERENV','OS_USER') os_user,
SYS_CONTEXT('USERENV','EXTERNAL_NAME') external_name,
SYS_CONTEXT('USERENV','IP_ADDRESS') ip_address,
SYS_CONTEXT('USERENV','NETWORK_PROTOCOL') network_protocol,
SYS_CONTEXT('USERENV','BG_JOB_ID') bg_job_id,
SYS_CONTEXT('USERENV','FG_JOB_ID') fg_job_id,
SYS_CONTEXT('USERENV','AUTHENTICATION_TYPE') authentication_type,
SYS_CONTEXT('USERENV','AUTHENTICATION_DATA') authentication_data
from dual

[Q]Ôõô»ñµÃ½ñÌìÊÇÐÇÆÚ¼¸£¬»¹¹ØÓÚÆäËüÈÕÆÚº¯ÊýÓ÷¨
[A]¿ÉÒÔÓÃto_charÀ´½â¾ö£¬Èç
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;
ÔÚ»ñȡ֮ǰ¿ÉÒÔÉèÖÃÈÕÆÚÓïÑÔ£¬Èç
ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';
»¹¿ÉÒÔÔÚº¯ÊýÖÐÖ¸¶¨
select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;
ÆäËü¸ü¶àÓ÷¨£¬¿ÉÒԲο¼to_charÓëto_dateº¯Êý
Èç»ñµÃÍêÕûµÄʱ¼ä¸ñʽ
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
Ëæ±ã½éÉܼ¸¸öÆäËüº¯ÊýµÄÓ÷¨£º
±¾ÔµÄÌìÊý
SELECT to_char(last_day(SYSDATE),'dd') days FROM dual
½ñÄêµÄÌìÊý
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual
ϸöÐÇÆÚÒ»µÄÈÕÆÚ
SELECT Next_day(SYSDATE,'monday') FROM dual

[Q]Ëæ»ú³éȡǰNÌõ¼Ç¼µÄÎÊÌâ
[A]8iÒÔÉϰ汾
select * from (select * from tablename order by sys_guid()) where rownum < N;
select * from (select * from tablename order by dbms_random.value) where rownum< N;
×¢£ºdbms_random°üÐèÒªÊÖ¹¤°²×°£¬Î»ÓÚ$ORACLE_HOME/rdbms/admin/dbmsrand.sql
dbms_random.value(100,200)¿ÉÒÔ²úÉú100µ½200·¶Î§µÄËæ»úÊý

[Q]³éÈ¡´ÓNÐе½MÐеļǼ£¬Èç´Ó20Ðе½30ÐеļǼ
[A]select * from (select rownum id,t.* from table where ¡­¡­
and rownum <= 30) where id > 20;

[Q]ÔõôÑù³éÈ¡ÖØ¸´¼Ç¼
[A]select * from table t1 where where t1.rowed !=
(select max(rowed) from table t2
where t1.id=t2.id and t1.name=t2.name)
»òÕß
select count(*), t.col_a,t.col_b from table t
group by col_a,col_b
having count(*)>1
Èç¹ûÏëɾ³ýÖØ¸´¼Ç¼£¬¿ÉÒ԰ѵÚÒ»¸öÓï¾äµÄselectÌæ»»Îªdelete

[Q]ÔõôÑùÉèÖÃ×ÔÖÎÊÂÎñ
[A]8iÒÔÉϰ汾£¬²»Ó°ÏìÖ÷ÊÂÎñ
pragma autonomous_transaction;
¡­¡­
commit|rollback;

[Q]ÔõôÑùÔÚ¹ý³ÌÖÐÔÝÍ£Ö¸¶¨Ê±¼ä
[A]DBMS_LOCK°üµÄsleep¹ý³Ì
È磺dbms_lock.sleep(5);±íʾÔÝÍ£5Ãë¡£

[Q]ÔõôÑù¿ìËÙ¼ÆËãÊÂÎñµÄʱ¼äÓëÈÕÖ¾Á¿
[A]¿ÉÒÔ²ÉÓÃÀàËÆÈçϵĽű¾
DECLARE
start_time NUMBER;
end_time NUMBER;
start_redo_size NUMBER;
end_redo_size NUMBER;
BEGIN
start_time := dbms_utility.get_time;
SELECT VALUE INTO start_redo_size FROM v$mystat m,v$statname s
WHERE m.STATISTIC#=s.STATISTIC#
AND s.NAME='redo size';
--transaction start
INSERT INTO t1
SELECT * FROM All_Objects;
--other dml statement
COMMIT;
end_time := dbms_utility.get_time;
SELECT VALUE INTO end_redo_size FROM v$mystat m,v$statname s
WHERE m.STATISTIC#=s.STATISTIC#
AND s.NAME='redo size';
dbms_output.put_line('Escape Time:'||to_char(end_time-start_time)||' centiseconds');
dbms_output.put_line('Redo Size:'||to_char(end_redo_size-start_redo_size)||' bytes');
END;

[Q]ÔõÑù´´½¨ÁÙʱ±í
[A]8iÒÔÉϰ汾
create global temporary tablename(column list)
on commit preserve rows; --Ìá½»±£ÁôÊý¾Ý »á»°ÁÙʱ±í
on commit delete rows; --Ìύɾ³ýÊý¾Ý ÊÂÎñÁÙʱ±í
ÁÙʱ±íÊÇÏà¶ÔÓڻỰµÄ£¬±ðµÄ»á»°¿´²»µ½¸Ã»á»°µÄÊý¾Ý¡£

[Q]ÔõôÑùÔÚPL/SQLÖÐÖ´ÐÐDDLÓï¾ä
[A]1¡¢8iÒÔϰ汾dbms_sql°ü
2¡¢8iÒÔÉϰ汾»¹¿ÉÒÔÓÃ
execute immediate sql;
dbms_utility.exec_ddl_statement('sql');

[Q]ÔõôÑù»ñÈ¡IPµØÖ·
[A]·þÎñÆ÷(817ÒÔÉÏ)£ºutl_inaddr.get_host_address
¿Í»§¶Ë£ºsys_context('userenv','ip_address')

2jliu ·¢±íÓÚ:2007.02.13 15:24 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(103´Î) :: ÆÀÂÛ (0)
===========================================================
count(ÁÐ)
===========================================================
count(ÁÐ)»á¶à¶ÁÒ»´Î±í¡£
2jliu ·¢±íÓÚ:2007.02.13 15:22 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(123´Î) :: ÆÀÂÛ (0)
===========================================================
buffer_busy_waits.sql
===========================================================
column block_class format a30
column buffer_pool format a30

select
w.class block_class,
w.count total_waits,
w.time time_waited
from
sys.v_$waitstat w
where
w.count > 0
order by 3 desc
/
select
d.tablespace_name,
sum(x.count) total_waits,
sum(x.time) time_waited
from
sys.x_$kcbfwait x,
sys.dba_data_files d
where
x.inst_id = userenv('Instance') and
x.count > 0 and
d.file_id = x.indx + 1
group by
d.tablespace_name
order by 3 desc
/
select
p.bp_name buffer_pool,
sum(s.bbwait) total_waits
from
sys.x_$kcbwds s,
sys.x_$kcbwbpd p
where
s.inst_id = userenv('Instance') and
p.inst_id = userenv('Instance') and
s.set_id >= p.bp_lo_sid and
s.set_id <= p.bp_hi_sid and
p.bp_size != 0
group by
p.bp_name
having
sum(s.bbwait) > 0

2jliu ·¢±íÓÚ:2007.02.13 15:06 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(180´Î) :: ÆÀÂÛ (0)
===========================================================
dd_initial_extents.sql
===========================================================
select
s.segment_name,
s.bytes / 1024 || 'K' suggest1,
ceil(s.bytes / (10 * p.value)) * (p.value / 1024) || 'K' suggest2
from
sys.dba_segments s,
sys.v_$parameter p
where
s.tablespace_name = 'SYSTEM' and
s.extents > 1 and
s.segment_name != 'SYSTEM' and
p.name = 'db_block_size'
/
Script: dd_initial_extents.sql
-- Purpose: to get initial extent sizes for dd segments when rebuilding
2jliu ·¢±íÓÚ:2007.02.13 15:05 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(121´Î) :: ÆÀÂÛ (0)
===========================================================
fixed_view_text.sql
===========================================================

This script extracts the SQL statement text for all the V$ views. The V$ views are based on the X$ tables, and reading the SQL statements for these views is the best way to develop an initial understanding of the X$ tables.

select
'create view ' || view_name || ' as ' || view_definition || ';'
from
sys.v_$fixed_view_definition
order by
view_name


2jliu ·¢±íÓÚ:2007.02.13 15:03 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(109´Î) :: ÆÀÂÛ (0)
===========================================================
latch_where.sql
===========================================================

latch_where.sql

For those who are very familiar with the layers of the Oracle architecture and their functionality, this script may help them to know where in the code latch requests are failing.

set recsep off
column name format a30 heading "LATCH TYPE"
column location format a40 heading "CODE LOCATION and [LABEL]"
column kslsleep format 999999 heading "SLEEPS"
break on name

select
l.name,
rpad(lw.ksllwnam, 40) ||
decode(lw.ksllwlbl, null, null, '[' || lw.ksllwlbl || ']') location,
wsc.kslsleep
from
sys.x_$kslwsc wsc,
sys.x_$ksllw lw,
sys.v_$latch l
where
wsc.inst_id = userenv('Instance') and
lw.inst_id = userenv('Instance') and
wsc.kslsleep > 0 and
lw.indx = wsc.indx and
l.name = wsc.ksllasnam
order by
l.sleeps desc,
wsc.kslsleep desc
/


2jliu ·¢±íÓÚ:2007.02.13 15:01 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(94´Î) :: ÆÀÂÛ (0)
===========================================================
system_times.sql
===========================================================

This script reports the total waiting time for both routine and resource waits, together with the CPU time used. The relative contribution of each type of wait to overall response times, and the potential benefit of tuning actions, can be estimated from this information.

select
e.event,
e.time_waited
from
sys.v_$system_event e
where
e.event != 'Null event' and
e.event != 'rdbms ipc message' and
e.event != 'pipe get' and
e.event != 'virtual circuit status' and
e.event != 'lock manager wait for remote message' and
e.event not like '% timer' and
e.event not like 'SQL*Net message from %'
union all
select
s.name,
s.value
from
sys.v_$sysstat s
where
s.name = 'CPU used by this session'
order by
2 desc
/


2jliu ·¢±íÓÚ:2007.02.13 15:00 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(109´Î) :: ÆÀÂÛ (0)
===========================================================
waiters.sql
===========================================================

During short-term performance problems, a standard diagnostic procedure is to count the number of session in V$SESSION_WAIT that are waiting (or have recently waited) for each non-idle type of wait event. However, it is difficult to query this view quickly enough to profile most such problems. This script addresses this difficulty by selecting the information 10 times in very quick succession within a single query. It still misses a lot, but is quick enough to identify some interesting patterns.

-------------------------------------------------------------------------------
--
-- Script:	waiters.sql
-- Purpose:	to count the waiters for each event type
-- For:		8.0 and higher
--
-- Copyright:	(c) Ixora Pty Ltd
-- Author:	Steve Adams
--
-------------------------------------------------------------------------------
@save_sqlplus_settings

column event format a29
column t0 format 999
column t1 format 999
column t2 format 999
column t3 format 999
column t4 format 999
column t5 format 999
column t6 format 999
column t7 format 999
column t8 format 999
column t9 format 999

select /*+ ordered */
  substr(n.name, 1, 29)  event,
  t0,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8,
  t9
from
  sys.v_$event_name  n,
  (select event e0, count(*)  t0 from sys.v_$session_wait group by event),
  (select event e1, count(*)  t1 from sys.v_$session_wait group by event),
  (select event e2, count(*)  t2 from sys.v_$session_wait group by event),
  (select event e3, count(*)  t3 from sys.v_$session_wait group by event),
  (select event e4, count(*)  t4 from sys.v_$session_wait group by event),
  (select event e5, count(*)  t5 from sys.v_$session_wait group by event),
  (select event e6, count(*)  t6 from sys.v_$session_wait group by event),
  (select event e7, count(*)  t7 from sys.v_$session_wait group by event),
  (select event e8, count(*)  t8 from sys.v_$session_wait group by event),
  (select event e9, count(*)  t9 from sys.v_$session_wait group by event)
where
  n.name != 'Null event' and
  n.name != 'rdbms ipc message' and
  n.name != 'pipe get' and
  n.name != 'virtual circuit status' and
  n.name not like '%timer%' and
  n.name not like 'SQL*Net message from %' and
  e0 (+) = n.name and
  e1 (+) = n.name and
  e2 (+) = n.name and
  e3 (+) = n.name and
  e4 (+) = n.name and
  e5 (+) = n.name and
  e6 (+) = n.name and
  e7 (+) = n.name and
  e8 (+) = n.name and
  e9 (+) = n.name and
  nvl(t0, 0) + nvl(t1, 0) + nvl(t2, 0) + nvl(t3, 0) + nvl(t4, 0) +
  nvl(t5, 0) + nvl(t6, 0) + nvl(t7, 0) + nvl(t8, 0) + nvl(t9, 0) > 0
order by
  nvl(t0, 0) + nvl(t1, 0) + nvl(t2, 0) + nvl(t3, 0) + nvl(t4, 0) +
  nvl(t5, 0) + nvl(t6, 0) + nvl(t7, 0) + nvl(t8, 0) + nvl(t9, 0)
/

@restore_sqlplus_settings

2jliu ·¢±íÓÚ:2007.02.13 14:57 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(112´Î) :: ÆÀÂÛ (0)
===========================================================
waiters.sql
===========================================================

During short-term performance problems, a standard diagnostic procedure is to count the number of session in V$SESSION_WAIT that are waiting (or have recently waited) for each non-idle type of wait event. However, it is difficult to query this view quickly enough to profile most such problems. This script addresses this difficulty by selecting the information 10 times in very quick succession within a single query. It still misses a lot, but is quick enough to identify some interesting patterns.

-------------------------------------------------------------------------------
--
-- Script:	waiters.sql
-- Purpose:	to count the waiters for each event type
-- For:		8.0 and higher
--
-- Copyright:	(c) Ixora Pty Ltd
-- Author:	Steve Adams
--
-------------------------------------------------------------------------------
@save_sqlplus_settings

column event format a29
column t0 format 999
column t1 format 999
column t2 format 999
column t3 format 999
column t4 format 999
column t5 format 999
column t6 format 999
column t7 format 999
column t8 format 999
column t9 format 999

select /*+ ordered */
  substr(n.name, 1, 29)  event,
  t0,
  t1,
  t2,
  t3,
  t4,
  t5,
  t6,
  t7,
  t8,
  t9
from
  sys.v_$event_name  n,
  (select event e0, count(*)  t0 from sys.v_$session_wait group by event),
  (select event e1, count(*)  t1 from sys.v_$session_wait group by event),
  (select event e2, count(*)  t2 from sys.v_$session_wait group by event),
  (select event e3, count(*)  t3 from sys.v_$session_wait group by event),
  (select event e4, count(*)  t4 from sys.v_$session_wait group by event),
  (select event e5, count(*)  t5 from sys.v_$session_wait group by event),
  (select event e6, count(*)  t6 from sys.v_$session_wait group by event),
  (select event e7, count(*)  t7 from sys.v_$session_wait group by event),
  (select event e8, count(*)  t8 from sys.v_$session_wait group by event),
  (select event e9, count(*)  t9 from sys.v_$session_wait group by event)
where
  n.name != 'Null event' and
  n.name != 'rdbms ipc message' and
  n.name != 'pipe get' and
  n.name != 'virtual circuit status' and
  n.name not like '%timer%' and
  n.name not like 'SQL*Net message from %' and
  e0 (+) = n.name and
  e1 (+) = n.name and
  e2 (+) = n.name and
  e3 (+) = n.name and
  e4 (+) = n.name and
  e5 (+) = n.name and
  e6 (+) = n.name and
  e7 (+) = n.name and
  e8 (+) = n.name and
  e9 (+) = n.name and
  nvl(t0, 0) + nvl(t1, 0) + nvl(t2, 0) + nvl(t3, 0) + nvl(t4, 0) +
  nvl(t5, 0) + nvl(t6, 0) + nvl(t7, 0) + nvl(t8, 0) + nvl(t9, 0) > 0
order by
  nvl(t0, 0) + nvl(t1, 0) + nvl(t2, 0) + nvl(t3, 0) + nvl(t4, 0) +
  nvl(t5, 0) + nvl(t6, 0) + nvl(t7, 0) + nvl(t8, 0) + nvl(t9, 0)
/

@restore_sqlplus_settings

2jliu ·¢±íÓÚ:2007.02.13 14:57 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(109´Î) :: ÆÀÂÛ (0)
===========================================================
response_time_breakdown.sql
===========================================================
-------------------------------------------------------------------------------
--
-- Script:	response_time_breakdown.sql
-- Purpose:	to report the components of foreground response time in % terms
-- For:		8.1.6
--
-- Copyright:	(c) Ixora Pty Ltd
-- Author:	Steve Adams
--
-------------------------------------------------------------------------------
@save_sqlplus_settings

column major      format a8
column minor      format a13
column wait_event format a40 trunc
column seconds    format 9999999
column pct        format a6 justify right
break on major skip 1 on minor

select
  substr(n_major, 3)  major,
  substr(n_minor, 3)  minor,
  wait_event,
  round(time/100)  seconds,
  substr(to_char(100 * ratio_to_report(time) over (), '99.00'), 2) || '%'  pct
from
  (
    select /*+ ordered use_hash(b) */
      '1 CPU time'  n_major,
      decode(t.ksusdnam,
	'redo size', '2 reloads',
	'parse time cpu', '1 parsing',
	'3 execution'
      )  n_minor,
      'n/a'  wait_event,
      decode(t.ksusdnam,
	'redo size', nvl(r.time, 0),
	'parse time cpu', t.ksusgstv - nvl(b.time, 0),
	t.ksusgstv - nvl(b.time, 0) - nvl(r.time, 0)
      )  time
    from
      sys.x_$ksusgsta  t,
      (
	select /*+ ordered use_nl(s) */		-- star query: few rows from d and b
	  s.ksusestn,				-- statistic#
	  sum(s.ksusestv)  time			-- time used by backgrounds
	from
	  sys.x_$ksusd  d,			-- statname
	  sys.x_$ksuse  b,			-- session
	  sys.x_$ksbdp  p,			-- background process
	  sys.x_$ksusesta  s			-- sesstat
	where
	  d.ksusdnam in (
	    'parse time cpu',
	    'CPU used when call started') and
	  b.ksspaown = p.ksbdppro and
	  s.ksusestn = d.indx and
	  s.indx = b.indx
	group by
	  s.ksusestn
      )  b,
      (
	select /*+ no_merge */
	  ksusgstv *				-- parse cpu time *
	  kglstrld /				-- SQL AREA reloads /
	  greatest(1, kglstget - kglstght)	-- SQL AREA misses
	    time
	from
	  sys.x_$kglst  k,
	  sys.x_$ksusgsta  g
	where
	  k.indx = 0 and
	  g.ksusdnam = 'parse time cpu'
      )  r
    where
      t.ksusdnam in (
	'redo size',				-- arbitrary: to get a row to replace
	'parse time cpu',			--   with the 'reload cpu time'
	'CPU used when call started') and
      b.ksusestn (+) = t.indx
    union all
    select
      decode(n_minor,
	'1 normal I/O',		'2 disk I/O',
	'2 full scans',		'2 disk I/O',
	'3 direct I/O',		'2 disk I/O',
	'4 BFILE reads',	'2 disk I/O',
	'5 other I/O',		'2 disk I/O',
	'1 DBWn writes',	'3 waits',
	'2 LGWR writes',	'3 waits',
	'3 ARCn writes',	'3 waits',
	'4 enqueue locks',	'3 waits',
	'5 PCM locks',		'3 waits',
	'6 other locks',	'3 waits',
	'1 commits',		'4 latency',
	'2 network',		'4 latency',
	'3 file ops',		'4 latency',
	'4 process ctl',	'4 latency',
	'5 global locks',	'4 latency',
	'6 misc',		'4 latency'
      )  n_major,
      n_minor,
      wait_event,
      time
    from
      (
	select /*+ ordered use_hash(b) use_nl(d) */
	  decode(
	    d.kslednam,
	    					-- disk I/O
	    'db file sequential read',			'1 normal I/O',
	    'db file scattered read',			'2 full scans',
	    'BFILE read',				'4 BFILE reads',
	    'KOLF: Register LFI read',			'4 BFILE reads',
	    'log file sequential read',			'5 other I/O',
	    'log file single write',			'5 other I/O',
						-- resource waits
	    'checkpoint completed',			'1 DBWn writes',
	    'free buffer waits',			'1 DBWn writes',
	    'write complete waits',			'1 DBWn writes',
	    'local write wait',				'1 DBWn writes',
	    'log file switch (checkpoint incomplete)',	'1 DBWn writes',
	    'rdbms ipc reply',				'1 DBWn writes',
	    'log file switch (archiving needed)',	'3 ARCn writes',
	    'enqueue',					'4 enqueue locks',
	    'buffer busy due to global cache',		'5 PCM locks',
	    'global cache cr request',			'5 PCM locks',
	    'global cache lock cleanup',		'5 PCM locks',
	    'global cache lock null to s',		'5 PCM locks',
	    'global cache lock null to x',		'5 PCM locks',
	    'global cache lock s to x',			'5 PCM locks',
	    'lock element cleanup',			'5 PCM locks',
	    'checkpoint range buffer not saved',	'6 other locks',
	    'dupl. cluster key',			'6 other locks',
	    'PX Deq Credit: free buffer',		'6 other locks',
	    'PX Deq Credit: need buffer',		'6 other locks',
	    'PX Deq Credit: send blkd',			'6 other locks',
	    'PX qref latch',				'6 other locks',
	    'Wait for credit - free buffer',		'6 other locks',
	    'Wait for credit - need buffer to send',	'6 other locks',
	    'Wait for credit - send blocked',		'6 other locks',
	    'global cache freelist wait',		'6 other locks',
	    'global cache lock busy',			'6 other locks',
	    'index block split',			'6 other locks',
	    'lock element waits',			'6 other locks',
	    'parallel query qref latch',		'6 other locks',
	    'pipe put',					'6 other locks',
	    'rdbms ipc message block',			'6 other locks',
	    'row cache lock',				'6 other locks',
	    'sort segment request',			'6 other locks',
	    'transaction',				'6 other locks',
	    'unbound tx',				'6 other locks',
						-- routine waits
	    'log file sync',				'1 commits',
	    'name-service call wait',			'2 network',
	    'Test if message present',			'4 process ctl',
	    'process startup',				'4 process ctl',
	    'read SCN lock',				'5 global locks',
	    decode(substr(d.kslednam, 1, instr(d.kslednam, ' ')),
						-- disk I/O
	      'direct ',				'3 direct I/O',
	      'control ',				'5 other I/O',
	      'db ',					'5 other I/O',
						-- resource waits
	      'log ',					'2 LGWR writes',
	      'buffer ',				'6 other locks',
	      'free ',					'6 other locks',
	      'latch ',					'6 other locks',
	      'library ',				'6 other locks',
	      'undo ',					'6 other locks',
						-- routine waits
	      'SQL*Net ',				'2 network',
	      'BFILE ',					'3 file ops',
	      'KOLF: ',					'3 file ops',
	      'file ',					'3 file ops',
	      'KXFQ: ',					'4 process ctl',
	      'KXFX: ',					'4 process ctl',
	      'PX ',					'4 process ctl',
	      'Wait ',					'4 process ctl',
	      'inactive ',				'4 process ctl',
	      'multiple ',				'4 process ctl',
	      'parallel ',				'4 process ctl',
	      'DFS ',					'5 global locks',
	      'batched ',				'5 global locks',
	      'on-going ',				'5 global locks',
	      'global ',				'5 global locks',
	      'wait ',					'5 global locks',
	      'writes ',				'5 global locks',
	      						'6 misc'
	    )
	  )  n_minor,
	  d.kslednam  wait_event,		-- event name
	  i.kslestim - nvl(b.time, 0)  time	-- non-background time
	from
	  sys.x_$kslei  i,			-- system events
	  (
	    select /*+ ordered use_hash(e) */	-- no fixed index on e
	      e.kslesenm,			-- event number
	      sum(e.kslestim)  time		-- time waited by backgrounds
	    from
	      sys.x_$ksuse  s,			-- sessions
	      sys.x_$ksbdp  b,			-- backgrounds
	      sys.x_$ksles  e			-- session events
	    where
	      s.ksspaown = b.ksbdppro and	-- background session
	      e.kslessid = s.indx
	    group by
	      e.kslesenm
	    having
	      sum(e.kslestim) > 0
	  )  b,
	  sys.x_$ksled  d
	where
	  i.kslestim > 0 and
	  b.kslesenm (+) = i.indx and
	  nvl(b.time, 0) < i.kslestim and
	  d.indx = i.indx and
	  d.kslednam not in (
	    'Null event',
	    'KXFQ: Dequeue Range Keys - Slave',
	    'KXFQ: Dequeuing samples',
	    'KXFQ: kxfqdeq - dequeue from specific qref',
	    'KXFQ: kxfqdeq - normal deqeue',
	    'KXFX: Execution Message Dequeue - Slave',
	    'KXFX: Parse Reply Dequeue - Query Coord',
	    'KXFX: Reply Message Dequeue - Query Coord',
	    'PAR RECOV : Dequeue msg - Slave',
	    'PAR RECOV : Wait for reply - Query Coord',
	    'Parallel Query Idle Wait - Slaves',
	    'PL/SQL lock timer',
	    'PX Deq: Execute Reply',
	    'PX Deq: Execution Msg',
	    'PX Deq: Index Merge Execute',
	    'PX Deq: Index Merge Reply',
	    'PX Deq: Par Recov Change Vector',
	    'PX Deq: Par Recov Execute',
	    'PX Deq: Par Recov Reply',
	    'PX Deq: Parse Reply',
	    'PX Deq: Table Q Get Keys',
	    'PX Deq: Table Q Normal',
	    'PX Deq: Table Q Sample',
	    'PX Deq: Table Q qref',
	    'PX Deq: Txn Recovery Reply',
	    'PX Deq: Txn Recovery Start',
	    'PX Deque wait',
	    'PX Idle Wait',
	    'Replication Dequeue',
	    'Replication Dequeue ',
	    'SQL*Net message from client',
	    'SQL*Net message from dblink',
	    'debugger command',
	    'dispatcher timer',
	    'parallel query dequeue wait',
	    'pipe get',
	    'queue messages',
	    'rdbms ipc message',
	    'secondary event',
	    'single-task message',
	    'slave wait',
	    'virtual circuit status'
	  ) and
	  d.kslednam not like 'resmgr:%'
      )
  )
order by
  n_major,
  n_minor,
  time desc
/

@restore_sqlplus_settings

2jliu ·¢±íÓÚ:2007.02.13 14:56 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(84´Î) :: ÆÀÂÛ (0)
===========================================================
response_time_breakdown.sql
===========================================================
-------------------------------------------------------------------------------
--
-- Script:	response_time_breakdown.sql
-- Purpose:	to report the components of foreground response time in % terms
-- For:		8.1.6
--
-- Copyright:	(c) Ixora Pty Ltd
-- Author:	Steve Adams
--
-------------------------------------------------------------------------------
@save_sqlplus_settings

column major      format a8
column minor      format a13
column wait_event format a40 trunc
column seconds    format 9999999
column pct        format a6 justify right
break on major skip 1 on minor

select
  substr(n_major, 3)  major,
  substr(n_minor, 3)  minor,
  wait_event,
  round(time/100)  seconds,
  substr(to_char(100 * ratio_to_report(time) over (), '99.00'), 2) || '%'  pct
from
  (
    select /*+ ordered use_hash(b) */
      '1 CPU time'  n_major,
      decode(t.ksusdnam,
	'redo size', '2 reloads',
	'parse time cpu', '1 parsing',
	'3 execution'
      )  n_minor,
      'n/a'  wait_event,
      decode(t.ksusdnam,
	'redo size', nvl(r.time, 0),
	'parse time cpu', t.ksusgstv - nvl(b.time, 0),
	t.ksusgstv - nvl(b.time, 0) - nvl(r.time, 0)
      )  time
    from
      sys.x_$ksusgsta  t,
      (
	select /*+ ordered use_nl(s) */		-- star query: few rows from d and b
	  s.ksusestn,				-- statistic#
	  sum(s.ksusestv)  time			-- time used by backgrounds
	from
	  sys.x_$ksusd  d,			-- statname
	  sys.x_$ksuse  b,			-- session
	  sys.x_$ksbdp  p,			-- background process
	  sys.x_$ksusesta  s			-- sesstat
	where
	  d.ksusdnam in (
	    'parse time cpu',
	    'CPU used when call started') and
	  b.ksspaown = p.ksbdppro and
	  s.ksusestn = d.indx and
	  s.indx = b.indx
	group by
	  s.ksusestn
      )  b,
      (
	select /*+ no_merge */
	  ksusgstv *				-- parse cpu time *
	  kglstrld /				-- SQL AREA reloads /
	  greatest(1, kglstget - kglstght)	-- SQL AREA misses
	    time
	from
	  sys.x_$kglst  k,
	  sys.x_$ksusgsta  g
	where
	  k.indx = 0 and
	  g.ksusdnam = 'parse time cpu'
      )  r
    where
      t.ksusdnam in (
	'redo size',				-- arbitrary: to get a row to replace
	'parse time cpu',			--   with the 'reload cpu time'
	'CPU used when call started') and
      b.ksusestn (+) = t.indx
    union all
    select
      decode(n_minor,
	'1 normal I/O',		'2 disk I/O',
	'2 full scans',		'2 disk I/O',
	'3 direct I/O',		'2 disk I/O',
	'4 BFILE reads',	'2 disk I/O',
	'5 other I/O',		'2 disk I/O',
	'1 DBWn writes',	'3 waits',
	'2 LGWR writes',	'3 waits',
	'3 ARCn writes',	'3 waits',
	'4 enqueue locks',	'3 waits',
	'5 PCM locks',		'3 waits',
	'6 other locks',	'3 waits',
	'1 commits',		'4 latency',
	'2 network',		'4 latency',
	'3 file ops',		'4 latency',
	'4 process ctl',	'4 latency',
	'5 global locks',	'4 latency',
	'6 misc',		'4 latency'
      )  n_major,
      n_minor,
      wait_event,
      time
    from
      (
	select /*+ ordered use_hash(b) use_nl(d) */
	  decode(
	    d.kslednam,
	    					-- disk I/O
	    'db file sequential read',			'1 normal I/O',
	    'db file scattered read',			'2 full scans',
	    'BFILE read',				'4 BFILE reads',
	    'KOLF: Register LFI read',			'4 BFILE reads',
	    'log file sequential read',			'5 other I/O',
	    'log file single write',			'5 other I/O',
						-- resource waits
	    'checkpoint completed',			'1 DBWn writes',
	    'free buffer waits',			'1 DBWn writes',
	    'write complete waits',			'1 DBWn writes',
	    'local write wait',				'1 DBWn writes',
	    'log file switch (checkpoint incomplete)',	'1 DBWn writes',
	    'rdbms ipc reply',				'1 DBWn writes',
	    'log file switch (archiving needed)',	'3 ARCn writes',
	    'enqueue',					'4 enqueue locks',
	    'buffer busy due to global cache',		'5 PCM locks',
	    'global cache cr request',			'5 PCM locks',
	    'global cache lock cleanup',		'5 PCM locks',
	    'global cache lock null to s',		'5 PCM locks',
	    'global cache lock null to x',		'5 PCM locks',
	    'global cache lock s to x',			'5 PCM locks',
	    'lock element cleanup',			'5 PCM locks',
	    'checkpoint range buffer not saved',	'6 other locks',
	    'dupl. cluster key',			'6 other locks',
	    'PX Deq Credit: free buffer',		'6 other locks',
	    'PX Deq Credit: need buffer',		'6 other locks',
	    'PX Deq Credit: send blkd',			'6 other locks',
	    'PX qref latch',				'6 other locks',
	    'Wait for credit - free buffer',		'6 other locks',
	    'Wait for credit - need buffer to send',	'6 other locks',
	    'Wait for credit - send blocked',		'6 other locks',
	    'global cache freelist wait',		'6 other locks',
	    'global cache lock busy',			'6 other locks',
	    'index block split',			'6 other locks',
	    'lock element waits',			'6 other locks',
	    'parallel query qref latch',		'6 other locks',
	    'pipe put',					'6 other locks',
	    'rdbms ipc message block',			'6 other locks',
	    'row cache lock',				'6 other locks',
	    'sort segment request',			'6 other locks',
	    'transaction',				'6 other locks',
	    'unbound tx',				'6 other locks',
						-- routine waits
	    'log file sync',				'1 commits',
	    'name-service call wait',			'2 network',
	    'Test if message present',			'4 process ctl',
	    'process startup',				'4 process ctl',
	    'read SCN lock',				'5 global locks',
	    decode(substr(d.kslednam, 1, instr(d.kslednam, ' ')),
						-- disk I/O
	      'direct ',				'3 direct I/O',
	      'control ',				'5 other I/O',
	      'db ',					'5 other I/O',
						-- resource waits
	      'log ',					'2 LGWR writes',
	      'buffer ',				'6 other locks',
	      'free ',					'6 other locks',
	      'latch ',					'6 other locks',
	      'library ',				'6 other locks',
	      'undo ',					'6 other locks',
						-- routine waits
	      'SQL*Net ',				'2 network',
	      'BFILE ',					'3 file ops',
	      'KOLF: ',					'3 file ops',
	      'file ',					'3 file ops',
	      'KXFQ: ',					'4 process ctl',
	      'KXFX: ',					'4 process ctl',
	      'PX ',					'4 process ctl',
	      'Wait ',					'4 process ctl',
	      'inactive ',				'4 process ctl',
	      'multiple ',				'4 process ctl',
	      'parallel ',				'4 process ctl',
	      'DFS ',					'5 global locks',
	      'batched ',				'5 global locks',
	      'on-going ',				'5 global locks',
	      'global ',				'5 global locks',
	      'wait ',					'5 global locks',
	      'writes ',				'5 global locks',
	      						'6 misc'
	    )
	  )  n_minor,
	  d.kslednam  wait_event,		-- event name
	  i.kslestim - nvl(b.time, 0)  time	-- non-background time
	from
	  sys.x_$kslei  i,			-- system events
	  (
	    select /*+ ordered use_hash(e) */	-- no fixed index on e
	      e.kslesenm,			-- event number
	      sum(e.kslestim)  time		-- time waited by backgrounds
	    from
	      sys.x_$ksuse  s,			-- sessions
	      sys.x_$ksbdp  b,			-- backgrounds
	      sys.x_$ksles  e			-- session events
	    where
	      s.ksspaown = b.ksbdppro and	-- background session
	      e.kslessid = s.indx
	    group by
	      e.kslesenm
	    having
	      sum(e.kslestim) > 0
	  )  b,
	  sys.x_$ksled  d
	where
	  i.kslestim > 0 and
	  b.kslesenm (+) = i.indx and
	  nvl(b.time, 0) < i.kslestim and
	  d.indx = i.indx and
	  d.kslednam not in (
	    'Null event',
	    'KXFQ: Dequeue Range Keys - Slave',
	    'KXFQ: Dequeuing samples',
	    'KXFQ: kxfqdeq - dequeue from specific qref',
	    'KXFQ: kxfqdeq - normal deqeue',
	    'KXFX: Execution Message Dequeue - Slave',
	    'KXFX: Parse Reply Dequeue - Query Coord',
	    'KXFX: Reply Message Dequeue - Query Coord',
	    'PAR RECOV : Dequeue msg - Slave',
	    'PAR RECOV : Wait for reply - Query Coord',
	    'Parallel Query Idle Wait - Slaves',
	    'PL/SQL lock timer',
	    'PX Deq: Execute Reply',
	    'PX Deq: Execution Msg',
	    'PX Deq: Index Merge Execute',
	    'PX Deq: Index Merge Reply',
	    'PX Deq: Par Recov Change Vector',
	    'PX Deq: Par Recov Execute',
	    'PX Deq: Par Recov Reply',
	    'PX Deq: Parse Reply',
	    'PX Deq: Table Q Get Keys',
	    'PX Deq: Table Q Normal',
	    'PX Deq: Table Q Sample',
	    'PX Deq: Table Q qref',
	    'PX Deq: Txn Recovery Reply',
	    'PX Deq: Txn Recovery Start',
	    'PX Deque wait',
	    'PX Idle Wait',
	    'Replication Dequeue',
	    'Replication Dequeue ',
	    'SQL*Net message from client',
	    'SQL*Net message from dblink',
	    'debugger command',
	    'dispatcher timer',
	    'parallel query dequeue wait',
	    'pipe get',
	    'queue messages',
	    'rdbms ipc message',
	    'secondary event',
	    'single-task message',
	    'slave wait',
	    'virtual circuit status'
	  ) and
	  d.kslednam not like 'resmgr:%'
      )
  )
order by
  n_major,
  n_minor,
  time desc
/

@restore_sqlplus_settings

2jliu ·¢±íÓÚ:2007.02.13 14:56 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(123´Î) :: ÆÀÂÛ (0)
===========================================================
session_times.sql
===========================================================
-------------------------------------------------------------------------------
--
-- Script:	session_times.sql
-- Purpose:	to report the time used and waiting for a session
--
-- Copyright:	(c) Ixora Pty Ltd
-- Author:	Steve Adams
--
-- Synopsis:	@set_sid
--		@session_times
--
-------------------------------------------------------------------------------
@save_sqlplus_settings

select
  e.event,
  e.time_waited
from
  sys.v_$session_event  e
where
  e.sid = &Sid
union all
select
  n.name,
  s.value
from
  sys.v_$statname  n,
  sys.v_$sesstat  s
where
  s.sid = &Sid and
  n.statistic# = s.statistic# and
  n.name = 'CPU used by this session'
order by
  2 desc
/

@restore_sqlplus_settings

2jliu ·¢±íÓÚ:2007.02.13 14:55 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(104´Î) :: ÆÀÂÛ (0)
===========================================================
Wait Event Scripts
===========================================================

response_time_breakdown.sql

This script can be used to focus tuning attention on the most important issues. It reports a breakdown of total foreground response time into four major categories: CPU usage, disk I/O, resource waits, and routine latencies. These categories are broken down further into sub-categories, and the component wait events are shown.

The 8.1.6 version of the script uses the ratio_to_report analytic function to calculate percentages. The 8.1.5 version can be used if percentages are not required. The 8.1.5 version of the script should work on Oracle8 also, but has not yet been tested.

session_times.sql

When a user reports an episode of poor performance, this script can be used to determine whether their session has been working (say on an inefficient query) or waiting for resources, and if so, which resources they have been waiting for. Idle waits are not excluded. To select a session before running this script, please see the first three scripts on the Session Scripts page.

2jliu ·¢±íÓÚ:2007.02.13 14:54 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(103´Î) :: ÆÀÂÛ (0)
===========================================================
oracleÕï¶Ï¹¤¾ß-RDAʹÓÃ
===========================================================

RDAÊÇRemote Diagnostic Agent µÄ¼ò³Æ£¬ÊÇoracleÓÃÀ´ÊÕ¼¯¡¢·ÖÎöÊý¾Ý¿âµÄ¹¤¾ß£¬ÔËÐиù¤¾ß²»»á¸Ä±äϵͳµÄÈκβÎÊý£¬RDAÊÕ¼¯µÄÏà¹ØÊý¾Ý·Ç³£È«Ã棬¿ÉÒÔ¼ò»¯ÎÒÃÇÈÕ³£¼à¿Ø¡¢·ÖÎöÊý¾Ý¿âµÄ¹¤×÷£¬Oracle SupportÒ²½¨ÒéÎÒÃÇÔÚ·´À¡Ïà¹ØÎÊÌâʱ£¬ÌṩRDAÊÕ¼¯µÄÊý¾Ý£¬ÕâÑù¿ÉÒÔΪ¿ìËÙ½â¾öÎÊÌâÌṩһ¸öÓÐÁ¦µÄ±£Ö¤¡£
Ò»¡¢Ö§³ÖµÄ²Ù×÷ϵͳ
IBM AIX
Intel Linux (RedHat and SuSE)
HP-UX (10.* and 11.*)
HP Tru64
Sequent Dynix/Ptx
Sun Solaris (2.6 - 2.10)
Windows XP Professional
Windows 2000 Workstation and Server
Windows 2003 Server
¶þ¡¢Ö§³ÖµÄOracle²úÆ·
Oracle RDBMS Server (Standard and Enterprise Editions)
Oracle RAC Cluster (Single Node Collection)
Oracle Application Server (iAS 1.0.2.x/9.0.x/10.1.2.x, HTTP Server)
Oracle Management Server and Intelligent Agent (Grid Server, Agent Server, DB Control)
OLAP Products (Express Server, Financial Analyzer, and Demand Planning Server)
Oracle Developer (Forms and Reports)
Oracle Collaboration Suites (Email Server and Internet Directory)
Oracle Networking products
Èý¡¢Ö÷ÒªÓÃÓÚÕï¶ÏÊý¾Ý¿âµÄÒÔÏ·½ÃæµÄÎÊÌâ
ÐÔÄÜ¡¢°²×°¡¢ÅäÖá¢Éý¼¶¡¢ÒÆÖ²ÒÔ¼°ÄÚ²¿´íÎóÎÊÌâ

ËÄ¡¢RDAµÄ°²×°
¹¤¾ßÏÂÔØ£º
http://www.blogjava.net/Files/beauty_beast/rda.rar
ÔÚUnix²Ù×÷ϵͳµÄ°²×°ËµÃ÷£º
1¡¢¹¤¾ßÏÂÔØÍêºó²»ÒªÔÚwindow²Ù×÷ϵͳÏÂ×ö½âѹËõ£¬½Å±¾µÄÎļþ¸ñʽ»áÆÆ»µ¡£
2¡¢ftpÉÏ´«ÊDzÉÓöþ½øÖÆ·½Ê½¡£
3¡¢Ö´ÐнâѹËõÃüÁî
example:
gunzip rda.tar.gz
tar xvf rda.tar
4¡¢ÔÚ½âѹËõºóµÄĿ¼ÏÂÖ´ÐÐ ./rda.sh -c ²âÊÔÊÇ·ñÕý³£
Îå¡¢RDAµÄʹÓÃ
ÔÚUnix²Ù×÷ϵͳÖУ¬oracleÍÆ¼öÔÚÊý¾Ý¿â´´½¨Óû§ÏÂÖ´ÐУ¨Ò»°ã¼´ÎªoracleÓû§£©
µÚÒ»´ÎʹÓÃÐèÒª×öÒ»¸ö²É¼¯µÄ³õʼÅäÖá£
Ö´ÐÐÃüÁ
./rda.sh -S
Ö´ÐÐÃüÁîºó£¬»áÓиöÏòµ¼»¯µÄ½çÃæÈÃÄã¸ù¾Ýµ±Ç°Êý¾Ý¿âµÄʵ¼Ê°²×°µÄ²úÆ·Íê³É³õʼÅäÖᣠÍê³ÉÅäÖúórdaĿ¼Ï»áÉú³ÉÅäÖÃÎļþ setup.cfg¡¢setup.bak£¬ Èç¹ûÐèÒªÖØÐµ÷ÕûÅäÖòÎÊý£¬¿ÉÒÔÖ±½ÓÐ޸ĸÃÎļþ¡£
³õʼÅäÖÃÍê±ÏºóÒª²É¼¯Êý¾Ý£¬Ö´ÐÐÃüÁî:
./rda.sh
Èç¹ûÒª¿´µ½ÏêϸµÄ²É¼¯¹ý³Ì£¬¿ÉÒÔÖ´ÐÐÃüÁî:
./rda.sh -v
Ôڲɼ¯¹ý³ÌÖÐÓпÉÄÜÐèÒªÄãÊäÈëÊý¾Ý¿âÏà¹ØÓû§µÄÃÜÂë¡£
²É¼¯Íê³Éºó£¬ÔÚrdaĿ¼Ï¸ù¾Ý³õʼÅäÖÃÎļþ»áÉú³É¸ñʽΪzipµÄ±¨¸æÎļþÒÔ¼°²É¼¯ÈÕÖ¾£¬ ĬÈÏÎļþλÖà ./output/RDA.$machine_name.zip¡£
½âѹËõ¸ÃÎļþ£¬·ÃÎÊ <report_group>__start.htm£¬¾Í¿ÉÒÔ¿´µ½Õâ´Î²É¼¯µÄÊý¾ÝµÄÏêϸÐÅÏ¢¡£
ʹÓÃʱµÄ×¢Òâµã£º
1¡¢ÓÐʱ²»ÄÜÉú³Ézip¸ñʽµÄ±¨¸æÎļþ£¬Õâ¸ú¿Í»§¶ËÊÇ·ñ°²×°Ñ¹Ëõ¹¤¾ßÓйأ¬ÐèÒª×ÔÐнâѹËõÏà¹Ø±¨¸æÎļþ¡£
2¡¢Èç¹ûÐèÒª°²×°ÒÑÉú³ÉµÄÅäÖÃÔٴβɼ¯£¬É¾³ýÒÑÉú³ÉµÄ±¨¸æÎļþ£¬È»ºóÖ´ÐÐÃüÁî:
./rda.sh -Svf ÖØÐÂÉèÖúóÔÙÖ´Ðвɼ¯ÃüÁî ./rda.sh -v
Áù.²É¼¯Êý¾Ý·ÖÎö
±¨¸æÎļþÖ÷Òª°üÀ¨Êý¾Ý¿â¶ÔÓ¦»úÆ÷µÄ²Ù×÷ϵͳÈí¡¢Ó²¼þ»·¾³¡¢Óû§ÉèÖÃÒÔ¼°Êý¾Ý¿âÏêϸµÄÐÅÏ¢£¨³õʼ²ÎÊý¡¢ÔËÐÐʼþ¡¢ÈÕ³£¼à¿ØµÈ£©
ÔÚÈÕ³£µÄά»¤µ±ÖУ¬ÎÒÃÇÖ÷Òª
1¡¢¹Ø×¢RDBMSÏµļ¸¸öͳ¼ÆÐÅÏ¢¡£
Database SPFile Parameters spfileÖÐÊý¾Ý¿âÏà¹Ø³õʼ²ÎÊýµÄÉèÖÃ
SGA Information ²é¿´ÏµÍ³È«¾ÖÇøµ±Ç°ÄÚ´æÐÅÏ¢
Sessions and Processes ²É¼¯Ê±¼äÄÚµÄÊý¾Ý¿â»á»°Ïà¹ØÐÅÏ¢
V$System_Event Êý¾Ý¿âʵÀýÕû¸öÔËÐÐÆÚ¼äËùÓнø³ÌʼþµÄµÈ´ýͳ¼ÆÊÓͼ
V$Session_Wait »á»°µÈ´ýʼþÒÔ¼°Ïà¹Ø¶¨Î»ÐÅÏ¢Êý¾Ý
Latch Information ¾ºÕùÏà¹ØÐÅÏ¢(·­Òë²»ÊǺÜ׼ȷ)
Tablespaces Êý¾Ý¿â±í¿Õ¼äÐÅÏ¢£¨±í¿Õ¼äÀàÐÍ¡¢¶ÔÓ¦Êý¾ÝÎļþʹÓÃÂÊ¡¢ÊÇ·ñ¿ÉÀ©Õ¹µÈµÈ£©
Database Files Êý¾Ý¿â¶ÔÓ¦Êý¾ÝÎļþÐÅÏ¢£¨ÎļþλÖá¢Ê¹ÓÃÂʵȣ©
Invalid Objects ʧЧµÄÊý¾Ý¿â¶ÔÏó£¬ÈÕ³£¼à¿ØÈç¹û·¢ÏÖÓÐʧЧ£¬ÐèҪά»¤ÈËÔ±ÊÖ¹¤ÖØÐ±àÒë
all errors ÈÕ³£Ö´ÐеÄÊý¾Ý¿â´íÎó
ÔÚ V$System_Event¡¢ V$Session_Wait Ö÷Òª¹Ø×¢£¨buffer busy waits¡¢db file scattered read¡¢db file sequential read¡¢enqueue¡¢free buffer waits¡¢latch free¡¢log file sync¡¢log file paralle write ÕâЩʼþ¡£


2¡¢¹Ø×¢RDBMS Log/Trace Files µÄÐÅÏ¢
alert.log Êý¾Ý¿âϵͳ¼¶ÈÕÖ¾
last errors Êý¾Ý¿â×î½üµÄÒì³£ÈÕÖ¾¡¢¸ù¾ÝtraceÎļþλÖ㬿ÉÒԲ鿴Ïêϸ´íÎóÐÅÏ¢


2jliu ·¢±íÓÚ:2007.01.09 16:38 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(127´Î) :: ÆÀÂÛ (0)
===========================================================
ͨ¹ýrman»Ö¸´µ½Í¬Ò»·þÎñÆ÷Éϲ»Í¬Ä¿Â¼µÄ´óÖ¹ý³Ì£¡
===========================================================
RMAN> list backup;


±¸·Ý¼¯Áбí
===================

BS ¹Ø¼ü×Ö ÀàÐÍ LV ´óС É豸ÀàÐÍ ¾­¹ýʱ¼ä Íê³Éʱ¼ä
------- ---- -- ---------- ----------- ------------ ----------
239 Full 191M DISK 00:00:32 03-6ÔÂ -04
BP ¹Ø¼ü×Ö: 240 ״̬: AVAILABLE ±ê¼Ç:TAG20040603T002518
¶ÎÃû:C:ORACLEORA92DATABASE2FNBOBE_1_1
°üº¬µÄ SPFILE: ÐÞ¸Äʱ¼ä: 02-6Ô -04
±¸·Ý¼¯ 239 ÖеÄÊý¾ÝÎļþÁбí
Îļþ LV ÀàÐÍ Ckp SCN Ckp ʱ¼ä Ãû³Æ
---- -- ---- ---------- ---------- ----
1 Full 50848 03-6ÔÂ -04 C:ORACLEORADATALMTSYSTEM01.DBF
2 Full 50848 03-6ÔÂ -04 C:ORACLEORADATALMTUNDOTBS01.DBF

RMAN> list backup of spfile summary;


±¸·ÝÁбí
===============
¹Ø¼ü×Ö TY LV S É豸ÀàÐÍ Íê³Éʱ¼ä ¶ÎÊý ¸±±¾Êý ±ê¼Ç
------- -- -- - ----------- ---------- ------- ------- ---
239 B F A DISK 03-6ÔÂ -04 1 1 TAG20040603T002518

Æô¶¯µ½nomount

RMAN> restore controlfile to 'c:oracleoradatatestCONTROL01.CTL';

Æô¶¯ restore ÓÚ 03-6Ô -04

ʹÓÃͨµÀ ORA_DISK_1
ͨµÀ ORA_DISK_1: ÕýÔÚ¿ªÊ¼»Ö¸´Êý¾ÝÎļþ±¸·Ý¼¯
ͨµÀ ORA_DISK_1: ÕýÔÚ»Ö¸´¿ØÖÆÎļþ
Êä³öÎļþÃû=C:ORACLEORADATATESTCONTROL01.CTL
ͨµÀ ORA_DISK_1: Òѻָ´±¸·Ý¶Î 1
¶Î handle=C:ORACLEORA92DATABASE2FNBOBE_1_1 tag=TAG20040603T002518 params=NU
LL
ͨµÀ ORA_DISK_1: »Ö¸´Íê³É
Íê³É restore ÓÚ 03-6Ô -04

RMAN> restore controlfile to 'c:oracleoradatatestCONTROL02.CTL';

Æô¶¯ restore ÓÚ 03-6Ô -04

ʹÓÃͨµÀ ORA_DISK_1
ͨµÀ ORA_DISK_1: ÕýÔÚ¿ªÊ¼»Ö¸´Êý¾ÝÎļþ±¸·Ý¼¯
ͨµÀ ORA_DISK_1: ÕýÔÚ»Ö¸´¿ØÖÆÎļþ
Êä³öÎļþÃû=C:ORACLEORADATATESTCONTROL02.CTL
ͨµÀ ORA_DISK_1: Òѻָ´±¸·Ý¶Î 1
¶Î handle=C:ORACLEORA92DATABASE2FNBOBE_1_1 tag=TAG20040603T002518 params=NU
LL
ͨµÀ ORA_DISK_1: »Ö¸´Íê³É
Íê³É restore ÓÚ 03-6Ô -04

RMAN> restore controlfile to 'c:oracleoradatatestCONTROL03.CTL';

Æô¶¯ restore ÓÚ 03-6Ô -04

ʹÓÃͨµÀ ORA_DISK_1
ͨµÀ ORA_DISK_1: ÕýÔÚ¿ªÊ¼»Ö¸´Êý¾ÝÎļþ±¸·Ý¼¯
ͨµÀ ORA_DISK_1: ÕýÔÚ»Ö¸´¿ØÖÆÎļþ
Êä³öÎļþÃû=C:ORACLEORADATATESTCONTROL03.CTL
ͨµÀ ORA_DISK_1: Òѻָ´±¸·Ý¶Î 1
¶Î handle=C:ORACLEORA92DATABASE2FNBOBE_1_1 tag=TAG20040603T002518 params=NU
LL
ͨµÀ ORA_DISK_1: »Ö¸´Íê³É
Íê³É restore ÓÚ 03-6Ô -04

ÐÞ¸ÄspfileÖеĿØÖÆÎļþµÄÐÂλÖÃ
Æô¶¯µ½mount

RMAN> exit


»Ö¸´¹ÜÀíÆ÷Íê³É¡£

C:>rman catalog rman/rman@dmt target sys/system@lmt

»Ö¸´¹ÜÀíÆ÷: °æ±¾9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

Á¬½Óµ½Ä¿±êÊý¾Ý¿â: LMT (DBID=2004730922)
Á¬½Óµ½»Ö¸´Ä¿Â¼Êý¾Ý¿â

RMAN> run {
2> set newname for datafile 'c:oracleoradatalmtsystem01.dbf' to 'c:oracleo
radatatestsystem01.dbf';
3> set newname for datafile 'c:oracleoradatalmtundotbs01.dbf' to 'c:oracle
oradatatestundotbs01.dbf';
4> restore database;
5> switch datafile all;
6> recover database;
7> }

ÕýÔÚÖ´ÐÐÃüÁî: SET NEWNAME

ÕýÔÚÖ´ÐÐÃüÁî: SET NEWNAME

Æô¶¯ restore ÓÚ 03-6Ô -04

·ÖÅäµÄͨµÀ: ORA_DISK_1
ͨµÀ ORA_DISK_1: sid=10 devtype=DISK
ͨµÀ ORA_DISK_1: ÕýÔÚ¿ªÊ¼»Ö¸´Êý¾ÝÎļþ±¸·Ý¼¯
ͨµÀ ORA_DISK_1: ÕýÔÚÖ¸¶¨´Ó±¸·Ý¼¯»Ö¸´µÄÊý¾ÝÎļþ
Õý½«Êý¾ÝÎļþ00001»Ö¸´µ½C:ORACLEORADATATESTSYSTEM01.DBF
Õý½«Êý¾ÝÎļþ00002»Ö¸´µ½C:ORACLEORADATATESTUNDOTBS01.DBF
ͨµÀ ORA_DISK_1: Òѻָ´±¸·Ý¶Î 1
¶Î handle=C:ORACLEORA92DATABASE2FNBOBE_1_1 tag=TAG20040603T002518 params=NU
LL
ͨµÀ ORA_DISK_1: »Ö¸´Íê³É
Íê³É restore ÓÚ 03-6Ô -04

Êý¾ÝÎļþ 1 ÒÑת»»³ÉÊý¾ÝÎļþ¸±±¾
ÊäÈëÊý¾ÝÎļþ¸±±¾ recid=3 stamp=527847190 ÎļþÃû=C:ORACLEORADATATESTSYSTEM01.
DBF
Êý¾ÝÎļþ 2 ÒÑת»»³ÉÊý¾ÝÎļþ¸±±¾
ÊäÈëÊý¾ÝÎļþ¸±±¾ recid=4 stamp=527847190 ÎļþÃû=C:ORACLEORADATATESTUNDOTBS01
.DBF

Æô¶¯ recover ÓÚ 03-6Ô -04
ʹÓÃͨµÀ ORA_DISK_1

ÕýÔÚ¿ªÊ¼½éÖʵĻָ´

´æµµÈÕÖ¾Ïß³Ì 1 ÐòÁÐ 234 ÒÑ×÷ΪÎļþ C:ORACLEORADATALMTREDO03.LOG ´æÔÚÓÚ´ÅÅÌÉÏ

´æµµÈÕÖ¾ÎļþÃû =C:ORACLEORADATALMTREDO03.LOG Ïß³Ì =1 ÐòÁÐ =234
Íê³É½éÖʵĻָ´
Íê³É recover ÓÚ 03-6Ô -04

RMAN> alter database open;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of alter db command at 06/03/2004 08:13:37
ORA-01589: Òª´ò¿ªÊý¾Ý¿âÔò±ØÐëʹÓà RESETLOGS »ò NORESETLOGS Ñ¡Ïî

RMAN> alter database open resetlogs;

Êý¾Ý¿âÒÑ´ò¿ª
ÔÚ»Ö¸´Ä¿Â¼ÖÐ×¢²áµÄÊý¾Ý¿âµÄÐÂʵÌ廯
ÕýÔÚÆô¶¯È«²¿»Ö¸´Ä¿Â¼µÄ resync
Íê³ÉÈ«²¿ resync

RMAN>


2jliu ·¢±íÓÚ:2007.01.06 16:20 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(126´Î) :: ÆÀÂÛ (0)
===========================================================
Grid rman
===========================================================

ÏÂÃæ¶¼ÊÇÓÃlevel 0ºÍlevel 1×öµÃ±È½Ï

ÔÚ10g֮ǰµÄ°æ±¾£¬Ê¹ÓÃrman×öÔöÁ¿±¸·Ý£¬rmanÔÚ×ö1¼¶±¸·ÝµÄʱºòÔõôÀ´È·¶¨0¼¶±¸·ÝÖ®ºó¶¼ÓÐÄÄЩÊý¾Ý¿é×öÁËÐÞ¸ÄÄØ£¿¿´ÏÂÃæÒ»¶Î
Each data block in a datafile contains a system change number (SCN), which is the
SCN at which the most recent change was made to the block. During an incremental
backup, RMAN reads the SCN of each data block in the input file and compares it to
the checkpoint SCN of the parent incremental backup. If the SCN in the input data
block is greater than or equal to the checkpoint SCN of the parent, then RMAN copies
the block.
Ò²¾ÍÊÇ˵ÔÚ×ölevel 1¼¶±¸·ÝµÄʱºò£¬ÐèҪɨÃèËùÓеÄÊý¾Ý¿é²¢ÇÒÓÿéÖмǼÐ޸ĵÄSCN¸úlevel 0±¸·ÝʱµÄSCN×ö±È½Ï£¬À´È·¶¨Ê²Ã´ÊÇÐèÒª±¸·ÝµÄ¡£
ËùÒÔɨÃèÕû¸öÊý¾ÝÎļþÊDz»¿É±ÜÃâµÄ £¡

Block change trackingÊÇOracle10gµÄÒ»¸öÐÂÌØÐÔ£¬Block change tracking½ø³Ì¼Ç¼×Ô´ÓÉÏÒ»´Î±¸·ÝÒÔÀ´Êý¾Ý¿éµÄ±ä»¯£¬²¢°ÑÕâЩÐÅÏ¢¼Ç¼ÔÚ¸ú×ÙÎļþÖС£RMANʹÓÃÕâ¸öÎļþÅжÏÔöÁ¿±¸·ÝÖÐÐèÒª±¸·ÝµÄ±ä¸üÊý¾Ý¡£Õ⼫´óµÄ´Ù½øÁ˱¸·ÝÐÔÄÜ£¬RMAN¿ÉÒÔ²»ÔÙɨÃèÕû¸öÎļþÒÔ²éÕÒ±ä¸üÊý¾Ý¡£
RMAN's change tracking feature for incremental backups improves incremental
backup performance by recording changed blocks in each datafile in a change tracking
file. If change tracking is enabled, RMAN uses the change tracking file to identify
changed blocks for incremental backup, thus avoiding the need to scan every block in
the datafile.
¹À¼ÆÓÖÊÇʹÓõÄλͼ£¡Ã»ÕÒµ½ÒÀ¾ÝÄØ£¬¿´Ê鲻̫×Ðϸ¡£

ÈÃÎÒÃÇÀ´¶ÔËüÃǵÄËÙ¶È×öһϲâÊÔ£¬
²»Ê¹ÓÃblock change tracking,¿´¿´±¸·ÝÐèÒªµÄʱ¼ä


Ê×ÏȹرÕblock change tracking

SQL> select status from v$block_change_tracking;

STATUS
----------
DISABLED

È»ºóÈÃÎÒÃÇÀ´×ö¸ö0¼¶ÔöÁ¿±¸·Ý£¬ºÍÒ»¸ö1¼¶±¸·Ý£¬×¢ÒâËüÃÇʹÓõÄʱ¼ä
RMAN> backup incremental level 0 format='d:orabackup%d_%s.dbf'
2> database;

Æô¶¯ backup ÓÚ 17-7Ô -05
ʹÓÃͨµÀ ORA_DISK_1
ͨµÀ ORA_DISK_1: Æô¶¯ÔöÁ¿¼¶±ð 0 Êý¾ÝÎļþ±¸·Ý¼¯
ͨµÀ ORA_DISK_1: ÕýÔÚÖ¸¶¨±¸·Ý¼¯ÖеÄÊý¾ÝÎļþ
ÊäÈëÊý¾ÝÎļþ fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLEXAMPLE01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF
ͨµÀ ORA_DISK_1: ÕýÔÚÆô¶¯¶Î 1 ÓÚ 17-7Ô -05
ͨµÀ ORA_DISK_1: ÒÑÍê³É¶Î 1 ÓÚ 17-7Ô -05
¶Î handle=D:ORABACKUPORCL_15.DBF comment=NONE
ͨµÀ ORA_DISK_1: ±¸·Ý¼¯ÒÑÍê³É, ¾­¹ýʱ¼ä:00:01:26
ͨµÀ ORA_DISK_1: Æô¶¯ÔöÁ¿¼¶±ð 0 Êý¾ÝÎļþ±¸·Ý¼¯
ͨµÀ ORA_DISK_1: ÕýÔÚÖ¸¶¨±¸·Ý¼¯ÖеÄÊý¾ÝÎļþ
±¸·Ý¼¯ÖаüÀ¨µ±Ç°¿ØÖÆÎļþ
ÔÚ±¸·Ý¼¯Öаüº¬µ±Ç°µÄ SPFILE
ͨµÀ ORA_DISK_1: ÕýÔÚÆô¶¯¶Î 1 ÓÚ 17-7Ô -05
ͨµÀ ORA_DISK_1: ÒÑÍê³É¶Î 1 ÓÚ 17-7Ô -05
¶Î handle=D:ORABACKUPORCL_16.DBF comment=NONE
ͨµÀ ORA_DISK_1: ±¸·Ý¼¯ÒÑÍê³É, ¾­¹ýʱ¼ä:00:00:05
Íê³É backup ÓÚ 17-7Ô ¨C05


RMAN> backup incremental level 1 format='d:orabackup%d_%s_1level.dbf'
2> database;

Æô¶¯ backup ÓÚ 17-7Ô -05
ʹÓÃͨµÀ ORA_DISK_1
ͨµÀ ORA_DISK_1: Æô¶¯ÔöÁ¿¼¶±ð 1 Êý¾ÝÎļþ±¸·Ý¼¯
ͨµÀ ORA_DISK_1: ÕýÔÚÖ¸¶¨±¸·Ý¼¯ÖеÄÊý¾ÝÎļþ
ÊäÈëÊý¾ÝÎļþ fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLEXAMPLE01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF
ͨµÀ ORA_DISK_1: ÕýÔÚÆô¶¯¶Î 1 ÓÚ 17-7Ô -05
ͨµÀ ORA_DISK_1: ÒÑÍê³É¶Î 1 ÓÚ 17-7Ô -05
¶Î handle=D:ORABACKUPORCL_17_1LEVEL.DBF comment=NONE
ͨµÀ ORA_DISK_1: ±¸·Ý¼¯ÒÑÍê³É, ¾­¹ýʱ¼ä:00:00:35
ͨµÀ ORA_DISK_1: Æô¶¯ÔöÁ¿¼¶±ð 1 Êý¾ÝÎļþ±¸·Ý¼¯
ͨµÀ ORA_DISK_1: ÕýÔÚÖ¸¶¨±¸·Ý¼¯ÖеÄÊý¾ÝÎļþ
±¸·Ý¼¯ÖаüÀ¨µ±Ç°¿ØÖÆÎļþ
ÔÚ±¸·Ý¼¯Öаüº¬µ±Ç°µÄ SPFILE
ͨµÀ ORA_DISK_1: ÕýÔÚÆô¶¯¶Î 1 ÓÚ 17-7Ô -05
ͨµÀ ORA_DISK_1: ÒÑÍê³É¶Î 1 ÓÚ 17-7Ô -05
¶Î handle=D:ORABACKUPORCL_18_1LEVEL.DBF comment=NONE
ͨµÀ ORA_DISK_1: ±¸·Ý¼¯ÒÑÍê³É, ¾­¹ýʱ¼ä:00:00:06
Íê³É backup ÓÚ 17-7Ô ¨C05

level 0±¸·ÝºóÆäʵÎÒ¸ù±¾¾ÍûÓжÔÊý¾Ý¿â×öʲô¸ü¸Ä£¬level 1±¸·Ý¾ÓȻҲʹÓÃÁË35Ãë

£­£­£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½£½

È»ºóÈÃÎÒÃǰÑblock change trackingÆôÓúó²âÊÔÒ»ÏÂlevel 1ÐèÒªµÄʱ¼ä¡£

SQL>alter database enable block change tracking using
2 file 'D:oracleproduct10.1.0flash_recovery_areaORCLFLASHBACK BLOCK_CHANGE_TRACE.LOG';
ÎÒʹÓõÄÊǰ²×°µÄʱºòĬÈϵÄÊý¾Ý¿â£¬Õâ¸ö¼Ç¼Îļþ´ó¸ÅΪʮ¼¸M.³ýÁËÓÃλͼ£¬±ðµÄ·½Ê½Ó¦¸Ãû°ì·¨Õâô¶à¿ìºÃÊ¡µÄ¼Ç¼Êý¾Ý¿éµÄ±ä»¯ÁË

SQL> alter database enable block change tracking;

Êý¾Ý¿âÒѸü¸Ä


ÏÈɾ³ýÔ­À´µÄ±¸·Ý
RMAN> delete backupset 14£»
RMAN> delete backupset 12£»


ÈÃÎÒÃÇ×ö±¸·Ý²âÊÔһϣ¬×¢Òâ¿´ËüÃÇÍê³ÉËùÓõÄʱ¼ä
RMAN> backup incremental level 0 format='d:orabackup%d_%s_test_level0.dbf'
2> database;

Æô¶¯ backup ÓÚ 17-7Ô -05
ʹÓÃͨµÀ ORA_DISK_1
ͨµÀ ORA_DISK_1: Æô¶¯ÔöÁ¿¼¶±ð 0 Êý¾ÝÎļþ±¸·Ý¼¯
ͨµÀ ORA_DISK_1: ÕýÔÚÖ¸¶¨±¸·Ý¼¯ÖеÄÊý¾ÝÎļþ
ÊäÈëÊý¾ÝÎļþ fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLEXAMPLE01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF
ͨµÀ ORA_DISK_1: ÕýÔÚÆô¶¯¶Î 1 ÓÚ 17-7Ô -05
ͨµÀ ORA_DISK_1: ÒÑÍê³É¶Î 1 ÓÚ 17-7Ô -05
¶Î handle=D:ORABACKUPORCL_19_TEST_LEVEL0.DBF comment=NONE
ͨµÀ ORA_DISK_1: ±¸·Ý¼¯ÒÑÍê³É, ¾­¹ýʱ¼ä:00:01:26
ͨµÀ ORA_DISK_1: Æô¶¯ÔöÁ¿¼¶±ð 0 Êý¾ÝÎļþ±¸·Ý¼¯
ͨµÀ ORA_DISK_1: ÕýÔÚÖ¸¶¨±¸·Ý¼¯ÖеÄÊý¾ÝÎļþ
±¸·Ý¼¯ÖаüÀ¨µ±Ç°¿ØÖÆÎļþ
ÔÚ±¸·Ý¼¯Öаüº¬µ±Ç°µÄ SPFILE
ͨµÀ ORA_DISK_1: ÕýÔÚÆô¶¯¶Î 1 ÓÚ 17-7Ô -05
ͨµÀ ORA_DISK_1: ÒÑÍê³É¶Î 1 ÓÚ 17-7Ô -05
¶Î handle=D:ORABACKUPORCL_20_TEST_LEVEL0.DBF comment=NONE
ͨµÀ ORA_DISK_1: ±¸·Ý¼¯ÒÑÍê³É, ¾­¹ýʱ¼ä:00:00:05
Íê³É backup ÓÚ 17-7Ô ¨C05

ÔÙ×ölevel 1
RMAN> backup incremental level 1 format='d:orabackup%d_%s_test_level1.dbf'
2> database;

Æô¶¯ backup ÓÚ 17-7Ô -05
ʹÓÃͨµÀ ORA_DISK_1
ͨµÀ ORA_DISK_1: Æô¶¯ÔöÁ¿¼¶±ð 1 Êý¾ÝÎļþ±¸·Ý¼¯
ͨµÀ ORA_DISK_1: ÕýÔÚÖ¸¶¨±¸·Ý¼¯ÖеÄÊý¾ÝÎļþ
ÊäÈëÊý¾ÝÎļþ fno=00001 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSTEM01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00003 name=D:ORACLEPRODUCT10.1.0ORADATAORCLSYSAUX01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00005 name=D:ORACLEPRODUCT10.1.0ORADATAORCLEXAMPLE01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00002 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUNDOTBS01.DBF
ÊäÈëÊý¾ÝÎļþ fno=00004 name=D:ORACLEPRODUCT10.1.0ORADATAORCLUSERS01.DBF
ͨµÀ ORA_DISK_1: ÕýÔÚÆô¶¯¶Î 1 ÓÚ 17-7Ô -05
ͨµÀ ORA_DISK_1: ÒÑÍê³É¶Î 1 ÓÚ 17-7Ô -05
¶Î handle=D:ORABACKUPORCL_21_TEST_LEVEL1.DBF comment=NONE
ͨµÀ ORA_DISK_1: ±¸·Ý¼¯ÒÑÍê³É, ¾­¹ýʱ¼ä:00:00:07
ͨµÀ ORA_DISK_1: Æô¶¯ÔöÁ¿¼¶±ð 1 Êý¾ÝÎļþ±¸·Ý¼¯
ͨµÀ ORA_DISK_1: ÕýÔÚÖ¸¶¨±¸·Ý¼¯ÖеÄÊý¾ÝÎļþ
±¸·Ý¼¯ÖаüÀ¨µ±Ç°¿ØÖÆÎļþ
ÔÚ±¸·Ý¼¯Öаüº¬µ±Ç°µÄ SPFILE
ͨµÀ ORA_DISK_1: ÕýÔÚÆô¶¯¶Î 1 ÓÚ 17-7Ô -05
ͨµÀ ORA_DISK_1: ÒÑÍê³É¶Î 1 ÓÚ 17-7Ô -05
¶Î handle=D:ORABACKUPORCL_22_TEST_LEVEL1.DBF comment=NONE
ͨµÀ ORA_DISK_1: ±¸·Ý¼¯ÒÑÍê³É, ¾­¹ýʱ¼ä:00:00:05
Íê³É backup ÓÚ 17-7Ô ¨C05

ÏÔÈ»level 1±¸·ÝÓÃÁË7Ãë¾ÍÍê³ÉÁË£¬±ÈÆðûÓÐÆôÓÃblock change tracking¿ìÁ˼¸±¶


2jliu ·¢±íÓÚ:2007.01.06 16:18 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(110´Î) :: ÆÀÂÛ (0)
===========================================================
winxpÖØ¸´Æô¶¯
===========================================================

×¼±¸´ò¿ªµçÄÔ¿´¿´µçÊÓ(ºÇºÇ,Óп¨),»úÆ÷ȴĪÃûÆäÃîµÄ²»¶ÏÖØÆð²¢Ö»ÓÐcmdÌáʾ:Windows could not start because the following file is missing or corrupt:System32DRIVERSpci.sys

;³¢ÊÔ»Ö¸´/֨װ(xp/linux)È´Ò²¶¼±§´í:Setupdd.sys could not be loaded.Error code 4.ºÍ°²×°ÅÌÒ²²»ÄܽøÈë¹ÊÕϻָ´Ì¨£¬ÏÖÏóΪ£ºÔÚLOADING FILES µ½KERNEL DEBUGER DLL ʱ³öÏÖFile setupdd.sys could not be loaded.The error code is 4£¬setup cannot continue¡£Press any key to exit

ÍøÉÏ¿´µ½Ëµ:´ð£ºÕâÊÇÒ»¸öϵͳÎļþ¶ªÊ§µÄµäÐÍÀý×Ó¡£¡°File setupdd.sys could not be loaded¡£The error code is 14£¬setup cannot continue¡£Press any key to exit¡£¡±Õâ¾ä»°µÄÒâ˼ÊÇ¡°Îļþsetupdd.sys²»Äܱ»ÔØÈë¡£´íÎó´úÂë14£¬²»ÄܼÌÐø¡£°´ÈÎÒâ¼üÍÆ³ö¡£¡±Èç¹ûÄúÈ·ÈÏÄãµÄϵͳ°²×°ÅÌûÓÐÎÊÌ⣬ÄÇô×î´óµÄ¿ÉÄÜÀ´×ÔÓÚÄڴ棬½¨ÒéÓÃÏðÆ¤²ÁÒ»²ÁÄÚ´æµÄ½ðÊÖÖ¸£¬Çå³ýÒ»ÏÂÄÚ´æ²å²ÛµÄ»Ò³¾ÔÙ¼ÌÐø°²×°ÏµÍ³¡£Èç¹ûÓÐÁ½ÌõÄÚ´æÒ²¿ÉÒÔÏÈжÏÂÒ»ÌõÊÔÊÔ¡£
Ò»ÊÔ¹ûȻӦÑé.http://support.microsoft.com/?kbid=330181

Windows XP ÖеÄÓ²¼þË𻵻ò²»¼æÈÝÎÊÌâ

ÎÄÕ±àºÅ:330181
×îºóÐÞ¸Ä:2005Äê1ÔÂ4ÈÕ
ÐÞ¶©:2.2

Ö¢×´

µ±Äú½«¼ÆËã»úÉý¼¶µ½ Windows XP ºó£¬¿ÉÄÜ»áÓöµ½ÏÂÁÐÒ»ÖÖ»ò¶àÖÖÖ¢×´£º
¼ÆËã»ú²»Ê±µØÒâÍâÖØÐÂÆô¶¯¡£
µ±ÄúÆô¶¯¼ÆËã»úʱ£¬»áÊÕµ½ÒÔÏ´íÎóÐÅÏ¢£º
Windows could not start because the following file is missing or corrupt:
System32DRIVERSpci.sys
ͨ¹ýʹÓà Windows XP ¹ÊÕϻָ´¿ØÖÆÌ¨»òͨ¹ý´Ó Windows XP °²×°¹âÅÌÆô¶¯¼ÆËã»úʱ£¬»áÊÕµ½ÏÂÁдíÎóÐÅÏ¢Ö®Ò»£º
Setupdd.sys could not be loaded.Error code 4.
Setupdd.sys could not be loaded.Error code 7.

Ô­Òò

Èç¹û¼ÆËã»úÖаüº¬Ë𻵵ĻòÓë Windows XP ²»¼æÈݵÄÓ²¼þ×é¼þ£¬¾Í¿ÉÄÜ»á³öÏÖ´ËÎÊÌâ¡£

½â¾ö·½°¸

Òª½â¾ö´ËÎÊÌ⣬Çë°´ÕÕÏÂÁв½Öè²Ù×÷¡£

¾¯¸æ£º³ý·Ç¶Ô¼ÆËã»úÄÚ²¿Ó²¼þµÄ²ð×°·Ç³£ÊìϤ£¬·ñÔò²»ÒªÖ´ÐÐÒÔϲÙ×÷¡£¼ÆËã»úÄÚµÄÓ²¼þ×é¼þ¶Ô¾²µçÊ®·ÖÃô¸Ð¡£ÓйØÕýÈ·´¦Àí¼ÆËã»ú×é¼þµÄÐÅÏ¢£¬ÇëÓëÄúµÄ¼ÆËã»úÖÆÔìÉÌÁªÏµ¡£
1.¹Ø±Õ¼ÆËã»ú£¬È»ºóжÏÂËùÓÐÍâΧ×é¼þ»¥Á¬ (PCI) É豸¡£
2.ÖØÐÂÆô¶¯¼ÆËã»ú¡£
Èç¹û Windows ³É¹¦Æô¶¯£¬Ôò¹Ø±Õ¼ÆËã»ú£¬È»ºóÖØÐ°²×° PCI É豸£¨Ã¿´ÎÖ»Äܰ²×°Ò»¸ö£©¡£°²×°Íêÿ¸öÉ豸ºó£¬¶¼ÒªÆô¶¯ Windows¡£Èç¹û°²×°µÄij¸öÉ豸µ¼Ö³öÏÖ¡°Ö¢×´¡±Ò»½ÚÖÐËùÃèÊöµÄÎÊÌ⣬ÔòжϸÃÉ豸£¬È»ºó¼ÌÐø°²×°ÆäËû PCI É豸¡£
Èç¹û Windows Æô¶¯Ê§°Ü£¬Ôòжϰ²×°ÔÚ¼ÆËã»úÄÚµÄÒ»¸ö»ò¶à¸öÄÚ´æÄ£¿é¡£ÇëÁôÏÂ×ã¹»µÄ RAM£¬ÒÔ±ã¼ÆËã»ú¿ÉÒÔÆô¶¯²¢ÔËÐÐ Windows XP¡£

×¢Ò⣺Windows XP ÐèÒª 128 Õ××Ö½Ú (MB) µÄ RAM¡£×îСΪ 64 MB£¬×î´óΪ 4 GB¡£

ÀýÈ磬Èç¹û¼ÆËã»úÖа²×°ÁËÁ½¸ö 256 MB µÄÄÚ´æÄ£¿é£¬Ó¦Ð¶ÏÂÆäÖÐÒ»¸öÄÚ´æÄ£¿é¡£Èç¹û Windows ³É¹¦Æô¶¯£¬Ôò¹Ø±Õ¼ÆËã»ú£¬È»ºóÖØÐ°²×° RAM Ä£¿é£¨Ã¿´ÎÖ»Äܰ²×°Ò»¸ö£©¡£°²×°Íêÿ¸ö RAM Ä£¿éºó£¬¶¼ÒªÆô¶¯ Windows¡£Èç¹û°²×°µÄij¸öÄ£¿éµ¼Ö³öÏÖ¡°Ö¢×´¡±Ò»½ÚÖÐËùÃèÊöµÄÎÊÌ⣬ÔòжϸÃÄ£¿é£¬È»ºó¼ÌÐø°²×°ÆäËû RAM Ä£¿é¡£
3.È·¶¨¼ÆËã»úÖÐµÄ PCI É豸ÊÇ·ñÓë Windows XP ¼æÈÝ¡£Îª´Ë£¬Çë·ÃÎÊÏÂÃæµÄ Microsoft Ó²¼þ¼æÈÝÁбí (HCL) ÍøÕ¾£º
http://www.microsoft.com/whdc/hcl/default.mspx (http://www.microsoft.com/whdc/hcl/default.mspx)

¸ü¶àÐÅÏ¢

ÓйØÈçºÎÓë¼ÆËã»úÓ²¼þÖÆÔìÉÌÁªÏµµÄÐÅÏ¢£¬Çëµ¥»÷ÏÂÃæµÄÎÄÕ±àºÅ£¬ÒԲ鿴 Microsoft ֪ʶ¿âÖÐÏàÓ¦µÄÎÄÕ£º
65416 (http://support.microsoft.com/kb/65416/) Ó²¼þºÍÈí¼þµÚÈý·½¹©Ó¦ÉÌÁªÏµÈËÁÐ±í£¬A-K

60781 (http://support.microsoft.com/kb/60781/) Ó²¼þºÍÈí¼þµÚÈý·½¹©Ó¦ÉÌÁªÏµÈËÁÐ±í£¬L-P

60782 (http://support.microsoft.com/kb/60782/) Ó²¼þºÍÈí¼þµÚÈý·½¹©Ó¦ÉÌÁªÏµÈËÁÐ±í£¬Q-Z
ÓйØÏà¹ØÖ÷ÌâµÄÆäËûÐÅÏ¢£¬Çëµ¥»÷ÏÂÃæµÄÎÄÕ±àºÅ£¬ÒÔ±ã²é¿´ Microsoft ֪ʶ¿âÖÐÏàÓ¦µÄÎÄÕ£º
311542 (http://support.microsoft.com/kb/311542/) ÔÚ´Ó´ý»ú״̬»Ö¸´Ê±É豸¿ÉÄÜÎÞ·¨ÕýÈ·µØ¼Óµç
315335 (http://support.microsoft.com/kb/315335/) ÔÚ Windows XP °²×°¹ý³ÌÖгöÏÖ¡°STOP 0x0000008e¡±´íÎóÐÅÏ¢
 ²é¿´È«ÎÄ
2jliu ·¢±íÓÚ:2006.11.07 20:54 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(654´Î) :: ÆÀÂÛ (1)
===========================================================
good
===========================================================
--»ñȡϵͳ²úÉú´óÁ¿ÎïÀí´ÅÅ̶ÁÈ¡µÄSQL£¬°üÀ¨Óû§£¬´ÅÅ̶ÁÈ¡´ÎÊý£¬»á»°SID£¬SERIAL#£¬SQLÓï¾äµÄǰ1000×Ö½Ú
SELECT B.USERNAME USERNAME,A.DISK_READS PHY_READS,C.SID,C.SERIAL#,A.SQL_TEXT SQL_TEXT
FROM V$SQLAREA A,DBA_USERS B,V$SESSION C
WHERE A.PARSING_USER_ID = B.USER_ID
AND A.HASH_VALUE = C.SQL_HASH_VALUE
AND A.ADDRESS = C.SQL_ADDRESS
AND A.DISK_READS >= 100000
ORDER BY A.DISK_READS DESC;

--ÅжÏÄǸö»Ø¹ö¶ÎÔÚÖ´ÐÐÊÂÎñ
SELECT A.NAME,B.XACTS,C.SID,C.SERIAL#,C.USERNAME,D.SQL_TEXT
FROM V$ROLLNAME A,V$ROLLSTAT B,V$SESSION C,V$SQLTEXT D,V$TRANSACTION E
WHERE A.USN = B.USN
AND B.USN = E.XIDUSN
AND C.TADDR = E.ADDR
AND C.SQL_ADDRESS = D.ADDRESS
AND C.SQL_HASH_VALUE = D.HASH_VALUE
ORDER BY A.NAME,C.SID,D.PIECE;

--²é¿´ÎïÀíÊý¾ÝÎļþµÄIO×´¿ö
SELECT NAME,PHYRDS,PHYWRTS,READTIM,WRITETIM
FROM V$FILESTAT A,V$DBFILE B
WHERE A.FILE# = B.FILE#
ORDER BY PHYRDS DESC;

--²é¿´ÏµÍ³»º´æÃüÖÐÂÊ
SELECT (1 - SUM(DECODE(NAME,'physical reads',value,0)) /
(SUM(DECODE(NAME,'db block gets',value,0)) + SUM(DECODE(NAME,'consistent gets',value,0)))) * 100 "hit radio"
FROM V$SYSSTAT;

--²é¿´Êý¾Ý×ֵ仺´æÃüÖÐÂÊ
SELECT (1 - SUM(GETMISSES) / SUM(GETS)) * 100 "Dhit ratio"
FROM V$ROWCACHE;

--¿â»º´æÃüÖÐÂÊ

--ÄÚ´æÅÅÐòÃüÖÐÂÊ

--¿ÕÏÐÊý¾Ý»º´æµÄ±ÈÀý

--ºÏ²¢¿ÕÏеıí¿Õ¼ä´âƬ
alter tablespace myspace coalesce;

/*»ñÈ¡±ê×¼±í¿Õ¼äµÄÊ£Óà¿Õ¼ä
--DBAȨÏÞ
SELECT TABLESPACE_NAME,TRUNC(SUM(BLOCKS) * (SELECT MAX(VALUE) FROM V$PARAMETER WHERE UPPER(NAME) = 'DB_BLOCK_SIZE') / (1024 * 1024),6) AS "FREE_SPACE(M)"
FROM DBA_FREE_SPACE
WHERE TABLESPACE_NAME = 'CMSS_NORMAL_INFO'
GROUP BY TABLESPACE_NAME;
--Óû§È¨ÏÞ
SELECT TABLESPACE_NAME,TRUNC(SUM(BLOCKS) * (SELECT MAX(VALUE) FROM V$PARAMETER WHERE UPPER(NAME) = 'DB_BLOCK_SIZE') / (1024 * 1024),6) AS "FREE_SPACE(M)"
FROM USER_FREE_SPACE
WHERE TABLESPACE_NAME = 'USERS'
GROUP BY TABLESPACE_NAME;
*/

/*rollupÓÃÓÚ·Ö×éÄÚ²¿ÔÙ·Ö×éͳ¼ÆµÄÇé¿ö
select decode(grouping(s.spname),1,'all_spid',s.spname) spname,
decode(grouping(s.spid),1,s.spname,s.spid) spid,count(distinct b.badrowid) counts
from duizhang_bad b,duizhang_sp s
where b.sp_id = s.spid
group by rollup(spname,spid)
order by spname,spid;
*/

/*cache buffer chains latches
cache buffer chains latchesÓÃÓÚ¶Ìʱ¼äµÄ±£»¤»º´æ¿é£¬Èç¹û³öÏÖ»º´æÁ´»¯ÕùÓã¬ËµÃ÷³öÏÖÁËhot block£¬¿ÉÒÔ²éѯv$latch_children
ÊÓͼ»ñÈ¡½Ï¸ßgets,misses,sleepsµÄlatchÄÚ´æµØÖ·£¬È»ºóÔÚ½áºÏX$BHÈ·¶¨Êý¾Ý¿é£¬×·×Ùµ½Êý¾Ý¿éËùÊôµÄ¶ÔÏó½øÐоßÌå·ÖÎö
*/

/*_log_io_size
ĬÈÏÊÇ1/3µÄÈÕÖ¾»º´æÌîÂúʱ¾ÍË¢ÐÂÈÕÖ¾µ½´ÅÅÌ£¬Õâ¸öʱºòºóÐøÊÂÎñ¿ÉÒÔ²¢·¢µÄʹÓÃÏÂÒ»¸ö1/3£¬Ò²¾ÍÊÇ˵ĬÈÏÇé¿öÏÂÈÕÖ¾»º´æ
µÄ²¢ÐжÈÊÇ3£¬ÐÞ¸Ä_log_io_size²ÎÊý¿ÉÒԸıäÕâ¸öÖµ£¬µ«ÐèҪȷ¶¨Æ¿¾¶¾ÍÔÚÈÕÖ¾»º´æµÄµÈ´ýÉÏ£¬²Å¸Ä±äÕâ¸öÖµ
*/

/*¹ØÓÚORACLEµÄPRIMARY KEY
Ò»°ãÇé¿öÏÂPRIMARY KEY½¨Á¢ºó£¬»áÓÐÒ»¸öË÷ÒýÓëËûÏë¹ØÁª£¬Ãû×ÖÊÇϵͳ×Ô¼ºÉú³É£¬ÈçSYS2009£¬»òÊÇÏÔʽµÄÖ¸¶¨Ö÷¼üÃû³Æ£¬ÕâʱÉú³ÉµÄ
Ë÷Òý¾ÍÓÐ×Ô¼ºµÄÃû³Æ£¬Ò»¸öÐèҪעÒâµÄÇé¿öÊÇ£ºÈç¹ûÔÚX£¬YÁÐÉÏÒѾ­½¨Á¢ÁËË÷Òý£¬½Ó×ÅÒÔXÁÐÀ´½¨Á¢Ö÷¼ü£¬Ôòϵͳ²»»áרÃÅÉú³ÉÖ÷¼üË÷Òý
£¬¶øÊDzÉÓÃÏÈǰ½¨Á¢µÄË÷Òý½øÐÐÇ¿ÖÆÖ÷¼üÏÞÖÆ£¬ÈçÏ£º
[oracle@ftpserver oracle]$ sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on Mon Apr 25 17:25:35 2005

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL> connect / as sysdba
Connected.
SQL> create user bscy identified by bscy
2 default tablespace users;

User created.

SQL> grant connect,resource to bscy
2 ;

Grant succeeded.

SQL> connect bscy/bscy
Connected.
SQL> create table mytest(x int,y int);

Table created.

SQL> create index my_ind on mytest(x,y);--½¨Á¢Ë÷Òý

Index created.

SQL> alter table mytest add constraint my_pk primary key(x);--½¨Á¢Ö÷¼ü£¬ÃüÃûΪmy_pk

Table altered.

SQL> select object_type,object_name from user_objects;--¿ÉÒÔ¿´µ½²¢Ã»ÓÐÖ÷¼ümy_pkµÄË÷Òý´æÔÚ
OBJECT_TYPE OBJECT_NAME
TABLE MYTEST
INDEX MY_IND
--»»ÖÖ˳Ðò½¨Á¢£º
SQL> drop table mytest;
Table dropped.
SQL> select object_type,object_name from user_objects;
no rows selected
SQL> create table mytest(x int,y int);
Table created.
SQL> alter table mytest add constraint my_pk primary key(x);--ÏȽ¨Á¢Ö÷¼ü£¬Éú³ÉÖ÷¼üË÷Òý
Table altered.
SQL> create index my_ind on mytest(x,y);--½¨Á¢Ë÷Òý
Index created.
SQL> select object_type,object_name from user_objects;
OBJECT_TYPE OBJECT_NAME
TABLE MYTEST
INDEX MY_IND
INDEX MY_PK
--¿ÉÒÔ¿´µ½£¬Ö÷¼üË÷Òý³öÏÖÁË
*/

/*»ñÈ¡¹ØÓÚ·ÖÇø±íµÄÐÅÏ¢ dba_part_tables
select table_name,partitioning_type from dba_part_tables;
*/

/*×Ö·û¼¯ÎÊÌâ
¸Ä±äÊý¾Ý¿âµÄ×Ö·û¼¯¿ÉÒÔÓÃÈçÏÂÓï¾ä£º
ALTER DATABASE CHARACTER SET UTF8;
ALTER DATABASE NATIONAL CHARACTER SET UTF8;
µ«¸Ä±äºóµÄ×Ö·û¼¯Ó¦¸ÃÊÇÔ­À´×Ö·û¼¯µÄÑϸñ³¬¼¶£¬²¢ÇÒÔ­À´×Ö·û¼¯µÄËùÓÐ×Ö·ûλÁÐÓ³ÉäÓ¦¸ÃÔÚÐ޸ĺó×Ö·û¼¯ÖеØÖ·Ò»Ñù£¬·ñÔò
»á³öÏÖÂÒÂë»òÊý¾Ý²»¿É·ÃÎÊ£¬ÔÚ×öÊý¾Ýµ¼³öµ¼ÈëʱÐèÒª¾¡Á¿Ê¹¿Í»§¶ËµÄnls_langÓëÊý¾Ý¿â×Ö·û¼¯Ò»Ö£¬²é¿´Êý¾Ý¿â×Ö·û¼¯¿ÉÓÃ
ÈçÏÂÓï¾ä£º
select * from v$nls_parameters where parameter = 'NLS_CHARACTERSET';
¶ÔÓÚ¿Í»§¶Ë×Ö·û¼¯µÄÉ趨£¬Èç¹ûÊÇLINUX£¬¿ÉÐÞ¸Ä/home/oracle/.bashrcÎļþ£¬»òÖ±½Óexport nls_lang=the characterset
Èç¹ûÊÇWINDOWS£¬¿ÉÐÞ¸Ä×é²á±íÖÐnls_lang¼üÖµ£¨×Ô¼ºËÑË÷£©

¶ÔÓÚ×Ö·û¼¯µÄÐÞ¸ÄÓиö´íÎó×ö·¨¾ÍÊÇÖ±½ÓÐÞ¸Äprop$ÊÓͼ£¬Õâ¸öÊDZȽÏΣÏյģ¬Äã¿ÉÒÔ½¨Á¢SQL_TRACE¿´¿´£¬
ALTER DATABASE CHARACTER SET UTF8;Õâ¸öÓï¾äµ½µ××öÁËЩʲô£¬ËûÐÞ¸ÄÁ˲¶à12¸öÄÚ²¿±í£¬prop$ÊÇÆä
ÖеÄÒ»¸ö£¬¿ÉÏë¶øÖªÈç¹û×ÜÊÇÕâÑùͦ¶ø×ßÏÕ£¬¿Ï¶¨»á³öÎÊÌâµÄ

¹ØÓÚ×Ö·û¼¯µÄÉèÖ㬿ÉÄÜ´ó¼Ò¶¼Ã»ÓÐ̫עÒâÕâ¸öÎÊÌ⣬ÔÚ½¨Á¢Êý¾Ý¿âʱӦ¸ÃÑ¡ÔñÕýÈ·µÄ×Ö·û¼¯£¬¶ÔÓÚÎÒÃǹú¼ÒÒ»°ãÊÇ
ZHS16GBK£¬ÓÐЩÈËÔÚ°²×°Ê±²ÉÓõͼÊÇĬÈÏÑ¡ÏÕâʱÄãµÄ×Ö·û¼¯ºÜ¿ÉÄܾÍÊÇUS7ASCII£¬Õâ¸ö×Ö·û¼¯ÊDz»Ö§³ÖÖÐÎĵģ¬
²»¹ýÓÐЩÓû§·´±ç˵ËûÊÇÖ§³ÖÖÐÎĵģ¬ÒòΪËûÃǵÄÊý¾Ý¿â¾ÍÊÇUS7ASCII£¬²¢ÇÒÄܹ»²åÈëÖÐÎÄÊý¾Ý£¬Ò²¿ÉÒÔSELECT³öÀ´£¬
ÕâÊÇʲôԭÒòÄØ£¿ÒòΪºÜ¶àORACLEÓû§ÓÐÕâÑùÒ»¸ö³£Ê¶£¬¿Í»§¶ËµÄNLS_LANGÓëÊý¾Ý¿â×Ö·û¼¯±£³ÖÒ»Ö£¬ÕâÑù±ÜÃâÊý¾Ý
Èë¿â»ò³ö¿âʱ½øÐÐÂëÖÆ×ª»»£¬±ÈÈç˵¡°ÂÞ¡±,ËûµÄÂëÖÆÓ¦¸ÃÊÇ£¨194£¬222£©¿ÉÒÔͨ¹ýselect dump('ÂÞ',1010) from dual;
²é¿´£¬ÏÖÔÚ¿Í»§¶ËºÍÊý¾Ý¿âµÄ×Ö·û¼¯¶¼ÊÇUS7ASCII£¬²åÈëÊý¾ÝʱÓÉÓÚÁ½±ßÒ»Ö£¬²»×öÈκÎת»»£¬Ö±½ÓÒÔ£¨194£¬222£©ÂëÖÆ
²åÈ룬ÏÔʾʱҲÊÇÖ±½Ó·µ»ØÂëÖÆÐÅÏ¢£¬ÔÙת±äΪºº×Ö£¬Ã»ÓÐË¿ºÁÆÆÕÀ£¬µ«ÏÖÔÚÄãÊÔ׎«¿Í»§¶Ë×Ö·û¼¯¸Ä±äΪZHS16GBK
¿´¿´£¬°´ÕÕµÀÀíZHS16GBKÊÇUS7ASCIIµÄÑϸñ³¬¼¶£¬Êý¾Ý¶¼»áÕýÈ·ÏÔʾ£¬¿ÉÊÇÕâ¸öʱºòºº×Ö¶¼ÏÔʾΪÎʺţ¬ÎªÊ²Ã´»áÕâÑù£¿
Æäʵ¡°ÂÞ¡±²åÈëÊý¾Ý¿âʱËûµÄÂëÖÆÔÚ×Ö·û¼¯US7ASCIIÖв¢Ã»ÓжÔÓ¦µÄÓ³É䣬ÊÇÓ²²åÈëµÄ£¬ÔÚ×öÂëÖÆ×ª»»Ê±ËäÈ»£¨194£¬222£©
¶ÔÓ¦µÄºº×Ö¾ÍÊÇ¡°ÂÞ¡±£¬µ«»áÓÉÓÚUS7ASCIIÖв»´æÔÚÕâ¸öλÁжøÔâµ½¾Ü¾ø£¬ÄãÊÇ·Ç·¨µÄ£¬ÄÄÅÂÄãÊÇÕýÈ·µÄ£¬Õâ¾ÍÊÇÎÊÌâ
ËùÔÚ£¬ÕâÖÖÇé¿öϽøÐÐÊý¾Ýת»»(exp&imp)»òÐÞ¸Ä×Ö·û¼¯¾Í»áÓöµ½´óÂé·³£¬³ý·ÇÄãµÄÊý¾Ý¿âÖв»´æÔÚÖÐÎÄÐÅÏ¢£¬ËùÒÔ½¨Á¢
Êý¾Ý¿âʱ¶ÔÓÚ×Ö·û¼¯µÄÑ¡¶¨Ó¦¸ÃÉ÷ÖØ¿¼ÂÇ
*/



/*OPTIMIZER_INDEX_CACHING & ¡¤ OPTIMIZER_INDEX_COST_ADJ
ÕâÁ½¸ö²ÎÊýÓÃÓÚµ÷ÕûÓÅ»¯Æ÷¶ÔË÷ÒýµÄѡȡ£¬OPTIMIZER_INDEX_CACHING±íʾ»º´æµÄË÷Òý¿éÊý°Ù·Ö±È£¬Öµ±È½Ï¸ß±íʾ
ÓÅ»¯Æ÷±È½ÏÇãÏòÓÚNESTED LOOP»òË÷ÒýɨÃèµÄ²éѯ¼Æ»®
OPTIMIZER_INDEX_COST_ADJ±íʾË÷ÒýɨÃèÏà¶ÔÓÚ±íɨÃèµÄ³É±¾¹À¼Æ£¬Öµ½ÏµÍ°µÊ¾ÓÅ»¯Æ÷½øÐбíÁ¬½Ó£¬·ÃÎÊʱ¸üÇãÏò
ÓÚǶÌ×Ñ­»·ºÍË÷ÒýɨÃè
ÐèÒª¸ù¾Ýʵ¼ÊÇé¿ö½øÐÐÊʵ±µ÷½Ú£¬±ÈÈçÁ¬½Ó±íµÄË÷Òý¿ÉѡָÊýÊÇ·ñ½Ï¸ß£¬·µ»ØÊý¾ÝÁ¿ÊÇÔ­±íÊý¾ÝµÄ¶àÉÙ£¬±íÁ¬½Ó
Ö®¼ä²ÉȡʲôÁ¬½Ó·½Ê½±È½ÏºÏÊʵÈ(nested loop,hash join,sort mergeÄÄÌìרÃÅдһƪÎÄÕÂÀ´ËµÃ÷Ò»ÏÂ)£¬ÕâÁ½
¸ö²ÎÊý¿ÉÔڻỰ¼¶±ð¶¯Ì¬Ð޸ģ¬ÏÂÃæÊÇÔÚµ÷ÊÔSQLÓï¾äʱÀûÓÃË÷ÒýµÄÒ»¸ö²»´íµÄÑ¡Ôñ
alter session set OPTIMIZER_INDEX_CACHING = 85;
alter session set OPTIMIZER_INDEX_COST_ADJ = 35;
*/

/*ORACLEµÄÊý¾Ý¶ÁÈ¡»úÖÆ
ORACLE»ñÈ¡Êý¾Ýʱ²»ÊÇÒÔÐÐÀ´»ñÈ¡µÄ£¬¶øÊǸù¾ÝÊý¾ÝÐÐËùÔÚµÄblockÀ´»ñÈ¡£¬±ÈÈçÏÖÔÚÏë»ñµÃ8ÕâÐÐÊý¾Ý£¬Ëû»á½«8ÕâÐÐÊý¾Ý
ËùÔÚµÄblock»ñÈ¡½øÀ´£¬ÔÚ¼ìË÷Êý¾Ýʱ£¬ORACLE×ÜÊÇÔÚÄÚ´æÖнøÐÐÊý¾Ý¿éµÄ»ñÈ¡£¬Õâ¸ö³ÆÎªlogic get£¬µ±Ëù»ñÈ¡µÄblock²»
ÔÚSGAÇøÊ±£¬Õâ´Îlogic get½«Òý·¢´ÅÅÌ×ÓϵͳµÄÎïÀíIO£¬³ÆÎªphyhical get£¬ËùÒÔÿ´Î¶ÁÈ¡¶¼»á²úÉúlogic get,µ«ÎïÀí¶Á
È´²»Ò»¶¨²úÉú£¬ÓÐÖÖHOT BLOCKµÄÇé¿öÊÇ£ºA»á»°¶ÁÈ¡Êý¾Ý¿éC£¬C²»ÔÚÄÚ´æÖУ¬½«½øÐдÅÅÌIO£¬´ËʱB»á»°Ò²½øÐÐC¿éµÄ¶ÁÈ¡£¬
ÄÇÕâʱ»á²úÉúCÊý¾Ý¿éµÄÁ½´ÎÎïÀíIOÂ𣿴ð°²ÊÇNO£¬A»á»°»áÔÚÄÚ´æÖÐÔ¤Áô³öÒÔÈÝÄÉCÊý¾Ý¿éµÄÄÚ´æ¿Õ¼ä£¬²¢½«ËûÔÝÊ±Ëø¶¨£¬
ÒÔ±ã½øÐÐËæºóµÄ´ÅÅÌIO£¬B»á»°»áµÈ´ýËø¶¨µÄ½áÊø£¬Ö±µ½C¿é±»¶Á½øÄÚ´æ¿Õ¼ä£¬´Ëʱһ¸öBUFFER BUSYµÄµÈ´ýʼþ¾Í»á±»¼Ç¼£¬
µ±È»ÒÔºó¶ÔC¿éµÄ·ÃÎʾͲ»»áÓÐʲôÕϰ­ÁË£¬ÒòΪËûÒѾ­±»»º´æÁË
*/

/*¹ØÓÚÊý¾Ý»º´æÇø(db_cache_size)

*/

/*SMALL_TABLE_THRESHOLD
13751439818 HAPPY HAPPY£¡£¡£¡
*/

/*disk_asynch_io
µ±ÏµÍ³µÄÓ²ÅÌÖ§³ÖÒì²½IOʱ¿ÉÒÔʹÓã¬ÒÔÌá¸ßIOÐÔÄÜ£¬´ËʱDBWR½«IOÇëÇóÌá½»¸ø²Ù×÷ϵͳ£¬²Ù×÷ϵͳ·´À¡¸øORACLEÒ»¸öIO²Ù×÷Íê±ÏµÄ
ÏûÏ¢£¬È»ºóDBWR¼ÌÐøÒÔºóµÄдÈëÈÎÎñ£¬¶ø²»ÐèµÈ´ýдÈëÕæÕýÍê³É,¶ÔÓÚµ¥CPUµÄÇé¿ö£¬Ó¦¸Ã½«db_write_processesÉèÖÃΪ1£¬½«disk_asynch_io
ÉèÖÃΪTRUEÀ´Ìá¸ß´ÅÅÌдÐÔÄÜ£¬Èç¹û´ÅÅ̲»Ö§³ÖÒì²½IO£¬¿ÉÉ趨dbwr_io_slaves´ÓÊô½ø³ÌÀ´Ä£ÄâÒì²½IO
*/
2jliu ·¢±íÓÚ:2006.10.18 13:08 ::·ÖÀà: ( »ØÎ¶&ÒýÉê ) ::ÔĶÁ:(148´Î) :: ÆÀÂÛ (1)
===========================================================
³£¼ûµÈ´ýʼþµÄ·ÖÎö½â¾ö·½·¨
===========================================================

ÎÒÃÇ¿ÉÒÔͨ¹ýÊÓͼ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
where file_id = &file_id
and &block_id between block_id and block_id + &blocks - 1;


<2> db file sequential read DB Îļþ˳Ðò¶ÁÈ¡

Õâһʼþͨ³£ÏÔʾµ¥¸ö¿éµÄ¶ÁÈ¡(ÈçË÷Òý¶ÁÈ¡)¡£ÕâÖֵȴýµÄÊýÄ¿ºÜ¶àʱ£¬¿ÉÄÜÏÔʾ±íµÄÁ¬
½Ó˳Ðò²»¼Ñ£¬»òÕß²»¼ÓÑ¡ÔñµØ½øÐÐË÷Òý¡£¶ÔÓÚ´óÁ¿ÊÂÎñ´¦Àí¡¢µ÷ÕûÁ¼ºÃµÄϵͳ£¬ÕâÒ»ÊýÖµ
´ó¶àÊǺÜÕý³£µÄ£¬µ«ÔÚijЩÇé¿öÏ£¬Ëü¿ÉÄܰµÊ¾×ÅϵͳÖдæÔÚÎÊÌâ¡£ÄãÓ¦µ±½«ÕâÒ»µÈ´ýͳ
¼ÆÁ¿ÓëStatspack ±¨¸æÖеÄÒÑÖªÎÊÌ⣨ÈçЧÂʽϵ͵ÄSQL£©ÁªÏµÆðÀ´¡£¼ì²éË÷ÒýɨÃ裬ÒÔ±£
֤ÿ¸öɨÃè¶¼ÊDZØÒªµÄ£¬²¢¼ì²é¶à±íÁ¬½ÓµÄÁ¬½Ó˳Ðò¡£DB_CACHE_SIZE Ò²ÊÇÕâЩµÈ´ý³öÏÖ
ƵÂʵľö¶¨ÒòËØ¡£ÓÐÎÊÌâµÄÉ¢ÁÐÇøÓò£¨Hash-area£©Á¬½ÓÓ¦µ±³öÏÖÔÚPGA ÄÚ´æÖУ¬µ«ËüÃÇÒ²
»áÏûºÄ´óÁ¿Äڴ棬´Ó¶øÔÚ˳Ðò¶Áȡʱµ¼Ö´óÁ¿µÈ´ý¡£ËüÃÇÒ²¿ÉÄÜÒÔÖ±½Ó·¾¶¶Á£¯Ð´µÈ´ýµÄ
ÐÎʽ³öÏÖ¡£

¸ÃÀàʼþµÄp1text=file#,p1ÊÇfile_id£¬p2ÊÇblock_id,ͨ¹ýdba_extents¼´¿ÉÈ·¶¨³öÈȵã
¶ÔÏó(±í»òË÷Òý)

select owner,segment_name,segment_type
from dba_extents
where file_id = &file_id
and &block_id between block_id and block_id + &blocks - 1;


<3> free buffer waits ÊÍ·Å»º³åÇøµÈ´ý

ÕâÖֵȴý±íÃ÷ϵͳÕýÔڵȴýÄÚ´æÖеĻº³å£¬ÒòΪÄÚ´æÖÐÒѾ­Ã»ÓпÉÓõĻº³å¿Õ¼äÁË¡£Èç¹û
ËùÓÐSQL ¶¼µÃµ½Á˵÷ÓÅ£¬ÕâÖֵȴý¿ÉÄܱíʾÄãÐèÒªÔö´óDB_BUFFER_CACHE¡£ÊÍ·Å»º³åÇøµÈ´ý
Ò²¿ÉÄܱíʾ²»¼ÓÑ¡ÔñµÄSQL µ¼ÖÂÊý¾ÝÒç³öÁË´øÓÐË÷Òý¿éµÄ»º³å´æ´¢Æ÷£¬Ã»ÓÐΪµÈ´ýϵͳ´¦
ÀíµÄÌØ¶¨Óï¾äÁôÓлº³åÇø¡£ÕâÖÖÇé¿öͨ³£±íʾÕýÔÚÖ´ÐÐÏ൱¶àÊýÁ¿µÄDML£¨²åÈ룯¸üУ¯É¾
³ý£©£¬²¢ÇÒÊý¾Ý¿âÊéдÆ÷(DBWR)дµÄËٶȲ»¹»¿ì£¬»º³å´æ´¢Æ÷¿ÉÄܳäÂúÁËÏàͬ»º³åÆ÷µÄ¶à
¸ö°æ±¾£¬´Ó¶øµ¼ÖÂЧÂʷdz£µÍ¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬¿ÉÄÜÐèÒª¿¼ÂÇÔö¼Ó¼ì²éµã¡¢ÀûÓøü¶à
µÄDBWR ½ø³Ì£¬»òÕßÔö¼ÓÎïÀí´ÅÅ̵ÄÊýÁ¿¡£


<4> buffer busy waits »º³åÇøÃ¦µÈ´ý

ÕâÊÇΪÁ˵ȴýÒ»¸öÒԷǹ²Ïí·½Ê½Ê¹ÓõĻº³åÇø£¬»òÕßÕýÔÚ±»¶ÁÈ뻺³å´æ´¢Æ÷µÄ»º³åÇø¡£»º
³åÇøÃ¦µÈ´ý²»Ó¦´óÓÚ°Ù·ÖÖ®Ò»¡£¼ì²é»º³åµÈ´ýͳ¼Æ²¿·Ö£¨»òV$WAITSTAT£©:

A¡¢Èç¹ûµÈ´ý´¦ÓÚ×Ö¶ÎÍ·²¿£¬Ó¦Ôö¼Ó×ÔÓÉÁÐ±í£¨freelist£©µÄ×éÊý£¬»òÕßÔö¼Ópctusedµ½
pctfreeÖ®¼äµÄ¾àÀë¡£
B¡¢Èç¹ûµÈ´ý´¦ÓÚ»ØÍ˶Σ¨undo£©Í·²¿¿é£¬¿ÉÒÔͨ¹ýÔö¼Ó»Ø¹ö¶Î(rollback segment)À´½â¾ö
»º³åÇøµÄÎÊÌ⣻
C¡¢Èç¹ûµÈ´ý´¦ÓÚ»ØÍ˶Σ¨undo£©·ÇÍ·²¿¿éÉÏ£¬¾ÍÐèÒª½µµÍÇý¶¯Ò»Ö¶ÁÈ¡µÄ±íÖеÄÊý¾ÝÃÜ
¶È,»òÕßÔö´óDB_CACHE_SIZE£»
D¡¢Èç¹ûµÈ´ý´¦ÓÚÊý¾Ý¿é£¬¿ÉÒÔ½«Êý¾ÝÒÆµ½ÁíÒ»Êý¾Ý¿éÒԱܿªÕâ¸ö"ÈÈ"Êý¾Ý¿é¡¢Ôö¼Ó±íÖеÄ
×ÔÓÉÁбí»òʹÓÃLMT±í¿Õ¼ä£»
E¡¢Èç¹ûµÈ´ý´¦ÓÚË÷Òý¿é£¬Ó¦¸ÃÖØ½¨Ë÷Òý¡¢·Ö¸îË÷Òý»òʹÓ÷´Ïò¼üË÷Òý¡£

ΪÁË·ÀÖ¹ÓëÊý¾Ý¿éÏà¹ØµÄ»º³åæµÈ´ý£¬Ò²¿ÉÒÔʹÓýÏСµÄ¿é£ºÔÚÕâÖÖÇé¿öÏ£¬µ¥¸ö¿éÖеÄ
¼Ç¼¾Í½ÏÉÙ£¬ËùÒÔÕâ¸ö¿é¾Í²»ÊÇÄÇô"·±Ã¦"¡£ÔÚÖ´ÐÐDML(²åÈë/¸üÐÂ/ɾ³ý)ʱ,Oracle
DBWR¾ÍÏò¿éÖÐдÈëÐÅÏ¢£¬°üÀ¨ËùÓжԿé״̬"¸ÐÐËȤ"µÄÓû§(¸ÐÐËȤµÄÊÂÎñ±í£¬ITL)¡£Îª
Á˼õÉÙÕâÒ»ÇøÓòµÄµÈ´ý£¬¿ÉÒÔÔö¼Óinitrans£¬ÕâÑù»áÔÚ¿éÖд´½¨¿Õ¼ä£¬´Ó¶øÊ¹ÄãÄܹ»Ê¹ÓÃ
¶à¸öITL²Û¡£ÄãÒ²¿ÉÒÔÔö¼Ó¸Ã¿éËùÔÚ±íÖеÄpctfree(µ±¸ù¾ÝÖ¸¶¨µÄinitrans ½¨Á¢µÄ²ÛÊýÁ¿
²»×ãʱ£¬ÕâÑù¿ÉÒÔʹITL ÐÅÏ¢ÊýÁ¿´ïµ½maxtrans Ö¸¶¨µÄÊýÁ¿£©¡£


<5> latch free

latchÊÇÒ»Öֵͼ¶ÅŶӻúÖÆ(ËüÃDZ»×¼È·µØ³ÆÎªÏ໥Åųâ»úÖÆ),ÓÃÓÚ±£»¤ÏµÍ³È«¾ÖÇøÓò(SGA)
Öй²ÏíÄÚ´æ½á¹¹¡£latch ¾ÍÏñÊÇÒ»ÖÖ¿ìËٵر»»ñÈ¡ºÍÊͷŵÄÄÚ´æËø¡£latch ÓÃÓÚ·ÀÖ¹¹²Ïí
ÄÚ´æ½á¹¹±»¶à¸öÓû§Í¬Ê±·ÃÎÊ¡£Èç¹ûlatch ²»¿ÉÓ㬾ͻá¼Ç¼latch ÊÍ·Åʧ°Ü¡£´ó¶àÊý
latch ÎÊÌâ¶¼ÓëÒÔϲÙ×÷Ïà¹Ø£º²»ÄÜʹÓð±äÁ¿£¨¿â»º´ælatch£©¡¢Öظ´Éú³ÉÎÊÌâ£¨ÖØ
¸´·ÖÅälatch£©¡¢»º³å´æ´¢Æ÷¾ºÕùÎÊÌ⣨»º³åÆ÷´æ´¢LRU Á´£©£¬ÒÔ¼°»º³å´æ´¢Æ÷ÖеÄ"ÈÈ"¿é
£¨»º³å´æ´¢Æ÷Á´£©¡£Ò²ÓÐһЩlatch µÈ´ýÓëbug£¨³ÌÐò´íÎó£©Óйأ¬Èç¹û»³ÒÉÊÇÕâÖÖÇé¿ö£¬
¿ÉÒÔ¼ì²éMetaLink ÉϵÄbug ±¨¸æ¡£

¸ÃʼþµÄÈȵã¶ÔÏó¿Éͨ¹ýÒÔÏÂÓï¾ä²éÕÒ£¬ÆäÖÐ00000400837D7800ÖµÊÇv$session_waitÖеÄ
P1RAW

x$bhÖеÄ×Ö¶ÎHladdr±íʾ¸Ãblock bufferÔÚÄĸöcache buffer chain latch ÉÏ£¬¿ÉÒÔͨ¹ý
v$latch_children¶¨Î»ÄÄЩsegmentÊÇÈȵã¿é¡£

select a.hladdr, a.file#, a.dbablk, a.tch, a.obj, b.object_name
from x$bh a, dba_objects b
where (a.obj = b.object_id or a.obj = b.data_object_id)
and a.hladdr = '00000400837D7800'
union
select hladdr, file#, dbablk, tch, obj, null
from x$bh
where obj in
(select obj from x$bh
where hladdr = '00000400837D7800'
minus
select object_id from dba_objects
minus
select data_object_id from dba_objects)
and hladdr = '00000400837D7800'
order by 4;


<6> enqueue

enqueue ÊÇÒ»ÖÖ±£»¤¹²Ïí×ÊÔ´µÄËø¶¨»úÖÆ¡£¸ÃËø¶¨»úÖÆ±£»¤¹²Ïí×ÊÔ´£¬Èç¼Ç¼ÖеÄÊý¾Ý£¬
ÒÔ±ÜÃâÁ½¸öÈËÔÚͬһʱ¼ä¸üÐÂͬһÊý¾Ý¡£enqueue °üÀ¨Ò»¸öÅŶӻúÖÆ£¬¼´FIFO(ÏȽøÏȳö)
ÅŶӻúÖÆ¡£×¢Ò⣺Oracle µÄlatch »úÖÆ²»ÊÇFIFO¡£Enqueue µÈ´ýͨ³£Ö¸µÄÊÇST enqueue¡¢
HW enqueue¡¢TX4 enqueue ºÍTM enqueue¡£

A¡¢ST enqueue ÓÃÓÚ¿Õ¼ä¹ÜÀíºÍ×Öµä¹ÜÀíµÄ±í¿Õ¼äµÄ·ÖÅä¡£ÀûÓÃLMT£¬»òÕßÊÔͼ¶ÔÇøÓò½øÐÐ
Ô¤·ÖÅ䣬»òÕßÖÁÉÙʹÏÂÒ»¸öÇøÓò´óÓÚÓÐÎÊÌâµÄ×Öµä¹ÜÀíµÄ±í¿Õ¼ä¡£
B¡¢HW enqueue Óë¶ÎµÄ¸ßˮλ±ê¼ÇÒ»ÆðʹÓã»ÊÖ¶¯·ÖÅäÇøÓò¿ÉÒÔ±ÜÃâÕâÒ»µÈ´ý¡£
C¡¢TX4 enqueueÊÇ×î³£¼ûµÄenqueue µÈ´ý£¬Í¨³£ÊÇÒÔÏÂÈý¸öÎÊÌâÖ®Ò»²úÉúµÄ½á¹û:
µÚÒ»¸öÎÊÌâÊÇΨһË÷ÒýÖеÄÖØ¸´Ë÷Òý£¬ÐèÒªÖ´ÐÐÌá½»£¨commit£©/»Ø¹ö£¨rollback£©²Ù
×÷À´ÊÍ·Åenqueue¡£
µÚ¶þ¸öÎÊÌâÊǶÔͬһλͼË÷Òý¶ÎµÄ¶à´Î¸üС£ÒòΪµ¥¸öλͼ¶Î¿ÉÄܰüº¬¶à¸öÐеØÖ·
(rowid),ËùÒÔµ±¶à¸öÓû§ÊÔͼ¸üÐÂͬһ¶Îʱ,ÄãÐèÒªÖ´ÐÐÌá½»»ò»Ø¹ö²Ù×÷,ÒÔÊÍ·Åenqueue¡£
µÚÈý¸öÎÊÌ⣬ҲÊÇ×î¿ÉÄÜ·¢ÉúµÄÎÊÌâÊǶà¸öÓû§Í¬Ê±¸üÐÂͬһ¸ö¿é¡£Èç¹ûûÓÐ×ÔÓɵÄ
ITL²Û£¬¾Í»á·¢Éú¿é¼¶Ëø¶¨¡£Í¨¹ýÔö´óinitrans ºÍ/»òmaxtransÒÔÔÊÐíʹÓöà¸öITL²Û£¬
»òÕßÔö´ó±íÉϵÄpctfree Öµ£¬¾Í¿ÉÒÔºÜÇáËɵرÜÃâÕâÖÖÇé¿ö¡£
D¡¢TM enqueue ÔÚDML ÆÚ¼ä²úÉú£¬ÒÔ±ÜÃâ¶ÔÊÜÓ°ÏìµÄ¶ÔÏóʹÓÃDDL¡£Èç¹ûÓÐÍâÀ´¹Ø¼ü×Ö£¬Ò»
¶¨Òª¶ÔËüÃǽøÐÐË÷Òý£¬ÒÔ±ÜÃâÕâÖÖ³£¼ûµÄËø¶¨ÎÊÌâ¡£


<7> log buffer space ÈÕÖ¾»º³å¿Õ¼ä

µ±ÈÕÖ¾»º³å(log buffer)дÈëÖØ×öÈÕÖ¾(redo log)µÄËٶȱÈLGWR µÄдÈëËÙ¶ÈÂý£¬»òÕßÊÇ
µ±ÈÕ־ת»»(log switch)Ì«Âýʱ£¬¾Í»á·¢ÉúÕâÖֵȴý¡£Îª½â¾öÕâ¸öÎÊÌ⣬¿ÉÒÔÔö´óÈÕÖ¾ÎÄ
¼þµÄ´óС£¬»òÕßÔö¼ÓÈÕÖ¾»º³åÆ÷µÄ´óС£¬»òÕßʹÓÃдÈëËٶȸü¿ìµÄ´ÅÅÌ¡£ÉõÖÁ¿ÉÒÔ¿¼ÂÇʹ
ÓùÌ̬´ÅÅÌ£¬ÒòΪËüÃǵÄËٶȺܸߡ£


<8> log file switch ÈÕÖ¾Îļþת»»

ÓÐÁ½ÖÖÇé¿ö£º
A¡¢log file switch (archiving needed)
µ±ÈÕÖ¾Çл»µÄʱºòÓÉÓÚÈÕÖ¾×éÑ­»·Ê¹ÓÃÁËһȦµ«ÈÕÖ¾¹éµµ»¹Ã»ÓÐÍê³É£¬Í¨³£ÊÇioÓÐÑÏÖØ
ÎÊÌ⣬¿ÉÔö´óÈÕÖ¾ÎļþºÍÔö¼ÓÈÕÖ¾×飬µ÷Õûlog_archive_max_processes

B¡¢log file switch (checkpoint incomplete)
µ±ÈÕÖ¾Çл»µÄʱºòÓÉÓÚÈÕÖ¾×