【正文】
7)分析一個 SQL語句是怎樣在 Orcle內(nèi)部工作的。 A、用戶發(fā)出 SQL請求,打開游標; B、把 SQL語句語法分析,執(zhí)行計劃,數(shù)據(jù)字典等信息存入內(nèi)存中共享池內(nèi); C、從數(shù)據(jù)文件中把相關(guān)數(shù)據(jù)塊讀入數(shù)據(jù)緩沖區(qū); D、做相應(yīng)操作,若做修改,先加上行級鎖,經(jīng)確認后,把改過前后記錄內(nèi)容存入重做日志緩沖區(qū)內(nèi); E、返回結(jié)果給用戶,關(guān)閉游標。 備注: SQL語句大小寫敏感的,同樣的一個語句,若大小寫 不同, oracle需分析執(zhí)行兩次,每句后必以“;”結(jié)束。 P M O N L C K n R E C O R E C Osha r e d P o o l D a ta b a se B u ff e r Ca cheR e d o L o gBu f f e rS G A二、啟動和關(guān)閉數(shù)據(jù)庫。 (1)啟動 %svrmgrl. 喚醒 SVRMGRL數(shù)據(jù)庫管理 SVRMGRL connect internal。以系統(tǒng)管理員身份登錄。 SVRMGRL startup 啟動 instance 連上數(shù)據(jù)庫 打開數(shù)據(jù)庫 (2)關(guān)閉 ( 舊版 Oracle用 %sqldba lmode=Y) %svrmgrl. ( ) 喚醒 SVRMGRL狀態(tài) SVRMGRLconnect internal。 SVRMGRLshutdown. (3)啟動和關(guān)閉 Oracle數(shù)據(jù)庫過程圖。 shutdown open 讀參數(shù)文件 開機 關(guān)機 讀控制文件 讀所有文件 未連上數(shù)據(jù)庫 僅啟動 instances nomount mount 連上數(shù)據(jù)庫,但未打開 (4)如果不小心物理上刪除了一 Oracle的數(shù)據(jù)文件,比如說,某應(yīng)用表空間所對應(yīng)數(shù)據(jù)文件“ ?Oracle讀控制文件時,和打開數(shù)據(jù)庫時所面對的參數(shù)不一致, Oracle數(shù)據(jù)庫將啟動不了,解決這種問題的方法是把其對應(yīng)的表空間先卸下,再刪除,以保證控制文件描述和物理上存在文件一致。 %svrmgrl SVRMGRconnect internal SVRMGRstartup mount SVRMGRalter database datafile ‘ /directory/’ offline。 SVRMGRalter database open。 SVRMGRdrop tablespace abc。 Oracle數(shù)據(jù)存儲單位 a、 block 數(shù)據(jù)塊: 2k 最小的 IO單位,伴隨 database產(chǎn)生而產(chǎn)生,不可變 b、 extent 一組連續(xù)的數(shù)據(jù)塊:是用戶所能分配存儲的最小單位 c、 segment 段:有共同結(jié)構(gòu)的一個或幾個區(qū)域 ( extent) d、 tablespace 表空間:一組物理數(shù)據(jù)的邏輯組合, (象邏輯間數(shù)據(jù)倉庫 ) e、 file 文件:屬于某個表空間的物理文件 f、 database 數(shù)據(jù)庫:一組表空間所構(gòu)成的邏輯的可共享的數(shù)據(jù)。 三、 Oracle數(shù)據(jù)的存儲結(jié)構(gòu) mon and variable header 塊地址,段類型 85100bytes Table directory 簇中的表信息,用于簇表段 Row directory 塊中的行信息 Free space 用于 insert updata Row data 存儲數(shù)據(jù)、索引 block 結(jié)構(gòu) ( 系統(tǒng)管理員能在 SQLDBA狀態(tài),查看視圖 dbaextents,dbasegments,