oracle¸ßˮλÏß
ʲôÊÇË®Ïß(High Water Mark)?
----------------------------
ËùÓеÄoracle¶Î(segments£¬ÔÚ´Ë£¬ÎªÁËÀí½â·½±ã£¬½¨Òé°Ñsegment×÷Ϊ±íµÄÒ»¸öͬÒå´Ê) ¶¼ÓÐÒ»¸öÔÚ¶ÎÄÚÈÝÄÉÊý¾ÝµÄÉÏÏÞ£¬ÎÒÃǰÑÕâ¸öÉÏÏÞ³ÆÎª"high water mark"»òHWM¡£Õâ¸öHWMÊÇÒ»¸ö±ê¼Ç£¬ÓÃÀ´ËµÃ÷ÒѾÓжàÉÙûÓÐʹÓõÄÊý¾Ý¿é·ÖÅ䏸Õâ¸ösegment¡£HWMͨ³£Ôö³¤µÄ·ù¶ÈΪһ´Î5¸öÊý¾Ý¿é£¬ÔÔòÉÏHWMÖ»»áÔö´ó£¬²»»áËõС£¬¼´Ê¹½«±íÖеÄÊý¾ÝÈ«²¿É¾³ý£¬HWM»¹ÊÇΪÔÖµ£¬ÓÉÓÚÕâ¸öÌØµã£¬Ê¹HWMºÜÏóÒ»¸öË®¿âµÄÀúÊ·×î¸ßˮ룬ÕâÒ²¾ÍÊÇHWMµÄÔʼº¬Ò壬µ±È»²»ÄÜ˵һ¸öË®¿âûˮÁË£¬¾Í˵¸ÃË®¿âµÄÀúÊ·×î¸ßˮλΪ0¡£µ«ÊÇÈç¹ûÎÒÃÇÔÚ±íÉÏʹÓÃÁËtruncateÃüÁÔò¸Ã±íµÄHWM»á±»ÖØÐÂÖÃΪ0¡£
HWMÊý¾Ý¿âµÄ²Ù×÷ÓÐÈçÏÂÓ°Ï죺
a) È«±íɨÃèͨ³£Òª¶Á³öÖ±µ½HWM±ê¼ÇµÄËùÓеÄÊôÓڸñíÊý¾Ý¿â¿é£¬¼´Ê¹¸Ã±íÖÐûÓÐÈκÎÊý¾Ý¡£
b) ¼´Ê¹HWMÒÔÏÂÓпÕÏеÄÊý¾Ý¿â¿é£¬¼üÈëÔÚ²åÈëÊý¾ÝʱʹÓÃÁËappend¹Ø¼ü×Ö£¬ÔòÔÚ²åÈëʱʹÓÃHWMÒÔÉϵÄÊý¾Ý¿é£¬´ËʱHWM»á×Ô¶¯Ôö´ó¡£
ÈçºÎÖªµÀÒ»¸ö±íµÄHWM£¿
a) Ê×ÏÈ¶Ô±í½øÐзÖÎö:
ANALYZE TABLE <tablename> ESTIMATE/COMPUTE STATISTICS;
b) SELECT blocks, empty_blocks, num_rows
from user_tables
WHERE table_name = <tablename>;
BLOCKS Áдú±í¸Ã±íÖÐÔø¾Ê¹ÓùýµÃÊý¾Ý¿â¿éµÄÊýÄ¿£¬¼´Ë®Ïß¡£
EMPTY_BLOCKS ´ú±í·ÖÅ䏸¸Ã±í£¬µ«ÊÇÔÚË®ÏßÒÔÉϵÄÊý¾Ý¿â¿é£¬¼´´ÓÀ´Ã»ÓÐʹÓõÄÊý¾Ý¿é¡£
ÈÃÎÒÃÇÒÔÒ»¸öÓÐ28672ÐеÄBIG_EMP1±íΪÀý½øÐÐ˵Ã÷£º
1) SQL> SELECT segment_name,segment_type,blocks
from dba_segments
WHERE segment_name='BIG_EMP1';
SEGMENT_NAME SEGMENT_TYPE BLOCKS EXTENTS
----------------------------- ----------------- ---------- -------
BIG_EMP1 TABLE 1024 2
1 row selected.
2) SQL> ANALYZE TABLE big_emp1 ESTIMATE STATISTICS;
Statement processed.
3) SQL> SELECT table_name,num_rows,blocks,empty_blocks
from user_tables
WHERE table_name='BIG_EMP1';
TABLE_NAME NUM_ROWS BLOCKS EMPTY_BLOCKS
------------------------------ ---------- ---------- ------------
BIG_EMP1 28672 700 323
1 row selected.
×¢Ò⣺
BLOCKS + EMPTY_BLOCKS (700+323=1023)±ÈDBA_SEGMENTS.BLOCKSÉÙ¸öÊý¾Ý¿â¿é£¬ÕâÊÇÒòΪÓÐÒ»¸öÊý¾Ý¿â¿é±»±£ÁôÓÃ×÷segment header¡£DBA_SEGMENTS.BLOCKS ±íʾ·ÖÅ䏸Õâ¸ö±íµÄËùÓеÄÊý¾Ý¿â¿éµÄÊýÄ¿¡£U
Ïà¹ØÎĵµ£º
²éѯÐÇÆÚ¼¸:
select to_char(sysdate,'day') from dual;
²éѯ¼¸ºÅ:
select to_char(sysdate,'dd') from dual;
²éѯСʱÊý:
select to_char(sysdate,'hh24') from dual;
²éѯʱ¼ä:
select to_char(sysdate,'hh24:mi:ss') from dual;
²éѯÈÕÆÚʱ¼ä:
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
²é ......
•ºÎΪÉó¼Æ
Êý¾Ý¿âÉ󼯣¬¾ÍÊǶÔÊý¾Ý¿âµÄ»î¶¯×ö¸ú×ټǼ£¬Ö÷Òª°üÀ¨Êý¾Ý¿âÁ¬½Ó£¬SQLÓï¾äÖ´ÐУ¬Êý¾Ý¿â¶ÔÏó·ÃÎÊÕâЩ·½ÃæµÄ¸ú×ټǼ¡£
•ÏÖʵ×÷ÓÃ
°²È«¿ØÖÆ¡¢¸ú×ÙÊý¾Ý±ä»¯¡¢³ÌÐòBUGµ÷ÊÔ¡¢×Ô¶¨ÒåµÄÊý¾Ý»ã×Ü·ÖÎö¡¢²Ù×÷ÈÕÖ¾
•´æ´¢·½Ê½
Ò»ÖÖÊÇ´æ´¢ÔÚ²Ù×÷ϵͳÎļþÖУ¬Ò»ÖÖÊÇ´æ´¢ÔÚsystem±í¿Õ¼äÖеÄSYS.AUD$±íÖÐ
......
Âò±¾Êé ÏÈ´Ó°²×°¿ªÊ¼°É È»ºóÂò±¾PLSQL ѧѧÓï·¨ ÕâÊÇ×î»ù±¾µÄ ½ÓÏÂÀ´¾ÍÑо¿¹ÊÕϺóÔõôÐÞ¸´ ÔÙ¾ÍÊDZ¸·Ý ÓÅ»¯ ¼¯Èº È»ºó»¹ÒªÑ§Ï°LINUX²Ù×÷ ÕâÊÇÒ»¶¨ÒªµÄ ×°WINDOWSÉϵÄORACLE²»¶à ÔÙ»¨2WÈ¥¿¼¸öOCP ¾ÍÐÐÁË
oracleµÄ¹Ù·½½Ì²ÄµÄ˳ÐòÊÇsql»ù´¡£¬½á¹¹£¬±¸·Ý»Ö¸´£¬ÐÔÄÜÓÅ»¯¡£
sqlÓï¾äµÄ»ù´¡»¹ÊǺÜÖØÒªµÄ¡£Èç¹ûÄãÏë×ö¿ª·¢pl/sqlÒ» ......
ÎÄÕÂÒ»£ºSCNÊÇʲô£¿The System Change Number
system change number (SCN)ÊÇÒ»¸ö·Ç³£ÖØÒªµÄ±ê¼Ç£¬OracleʹÓÃËüÀ´±ê¼ÇÊý¾Ý¿âÔÚ¹ýȥʱ¼äÄÚµÄ״̬ºÍ¹ì¼£¡£
OracleʹÓÃSCNÀ´±£´æËùÓб仯µÄ¹ì¼£¡£SCNÊÇÒ»¸öÂ߼ʱÖÓÀ´¼Ç¼Êý¾Ý¿âʼþ¡£Ëü·Ç³£µÄÖØÒª£¬²¢²»ÊÇÖ»ÊÇΪÁ˻ָ´¡£
SCNÓеãÀàËÆÓÚsequence£¬OracleÔÚSGAÖÐÔ ......
ÔÚѧϰoracleµÄʱºòÓöµ½ÁËÒ»¸öÎÊÌ⣬µ±ÎҵǼscottÓû§µÄʱºòÔõô¾ÍÊÇÁ´½Ó²»ÉÏ£¬³öÏÖÁËÒÔÏ´íÎóÌáʾ£¬the account is locked,˵Ã÷scottÓû§±»Ëø×¡ÁË£¬ÎҾͽøÐÐÁ˽âËø£¬Óï¾äÈçÏ£ºalter user soctt account unlock;Ö´ÐÐÍêÒÔºó·¢ÏÖÓÖÌáʾÁËÒ»¸ö´íÎóÐÅÏ¢£¬No Connect
ÎÞ·¨Á´½Ó£¬ºóÀ´ÔÚÍøÉϲéÁ˲飬ÖÕÓÚÕÒµ ......