摘錄自視頻,所以可能有點亂。
Oracle核心競爭力
可擴充性 可靠性 可管理性 可管理性 1、微調Oracle使用記憶體的方式 2、Oracle向磁碟寫入資料的頻率
Oracle體繫結構簡介 儲存結構 記憶體結構 進程結構 PGA 排序區 會話區 遊標區 堆棧區 資料檔案 特點: 1、每一個資料檔案只與一個資料庫相關聯 2、一個資料表空間可以包含一個或多個資料檔案 3、一個資料檔案只能屬於一個資料表空間 記錄檔 重做記錄檔(Redo Log) 作用:記錄資料庫變化,是使用者的交易處理日誌 歸檔記錄檔(Archive Log) 作用:非活動重做日誌的備份 控制檔案 作用:是Oracle伺服器在啟動期間用來標識物理檔案和資料庫結構的二進位檔案 1、資料庫檔案的位置及大小 2、重做記錄檔的位置及大小 3、資料庫名稱及建立時間 4、記錄序號 參數檔案(Parameter File) 作用:用於在啟動執行個體的時候設定資料庫 含有 文字檔 init<SID>.ora 伺服器參數檔案 SPFILE<SID>.ora 臨時檔案 這些檔案確實包含資料,但是只用於臨時的操作
create temporary tablespace temp_tblspacetempfile 'D:\db\tblspace.dbf'size 1Mextent management localuniform size 512K;
資料表空間 資料表空間是最大的邏輯的儲存結構,它對應一個或多個資料檔案。 包含 SYSTEM資料表空間(資料字典資訊) SYSAUX資料表空間(輔助系統資料表空間)用於減少系統負荷,提高系統的作業效率 使用者資料表空間 索引資料表空間 暫存資料表空間 UNDO資料表空間
資料表空間特性 1、控制資料庫資料磁碟分配 2、限制使用者在資料表空間中可以使用的磁碟空間大小 3、資料表空間具有online、offline、readonly、readwrite屬性 4、完成部分資料庫的備份與恢複 5、資料表空間通過資料檔案來擴大
修改資料表空間屬性
alter tablespace 資料表空間名稱 屬性;
查詢資料表空間屬性
select tablespace_name,status from dba_tablespaces;
查詢資料表空間與資料檔案的對應關係
select tablespace_name,bytes,file_name from dba_data_files;
移動資料表空間內表
alter table 表名 move tablespace 新資料表空間;
修改使用者預設資料表空間
alter user 使用者名稱 default tablespace 預設資料表空間;
塊
塊是資料庫使用的I/O最小單元,又稱邏輯塊或ORACLE塊。
資料區塊的結構包含塊頭、儲存區兩個部分 塊頭
資料區塊標題(資料類型、塊的物理地址) 表目錄(用於記錄資料區塊中儲存了哪些表) 行目錄(用於記錄資料區塊中各行的物理地址) 儲存區 空閑區(當第一次分配資料區塊的時候,它只有空閑區,沒有資料行,隨著行被插入,空閑區會越來越小) 行資料區(這是資料區塊中儲存實際行的地方) 區 盤區數量和盤區大小可以正在建立的對象的storage子句中規定 initial 設定為對象建立的第一個盤區的大小 next 這是隨後的盤區的大小 minextents 這是立即分配的盤區的數量 maxextents 這是能夠為這個表建立的盤區的最大數量
段分類 資料(表)段 索引段 臨時段 復原段(儲存修改之前的位置和值,是Oracle的撤銷機制) SGA所包含的資料: 1、快取資料塊 2、在資料庫上執行的SQL語句 3、使用者執行的預存程序、函數和觸發器等
建立執行個體或啟動執行個體時,Oracle為SGA分配記憶體 終止執行個體時,釋放SGA所佔用的記憶體 SGA的組成 DB快取 共用池 重做日誌緩衝 大型池 資料快取 database buffer cache(DBC) 影響DBC的兩個參數(主要影響讀取頻率) DB_BLOCK_SIZE 緩衝區資料區塊大小 DB_BLOCK_BUFFERS 緩衝區資料區塊個數
DBC工作原理 在我們初次訪問資料時,Oracle將讀取磁碟上的資料檔案,將資料放入資料快取,再處理資料 如果資料已經位於資料快取中時,Oracle就可以直接操作資料 共用池 庫緩衝(Library Cache) 資料字典區(Dictionary Cache) 共用池 儲存了最近執行的SQL語句、PL/SQL程式和資料字典資訊,是對SQL語句和PL/SQL程式進行文法分析、編譯、執行的記憶體區 庫緩衝區 解析使用者進程提交的SQL語句或PL/SQL程式和儲存最近解析過的SQL語句或PL/SQL程式 資料字典 用於存放資料字典資訊行 重做日誌調整緩衝 儲存重做日誌的緩衝 大型池 需要大記憶體操作提供相對獨立的記憶體空間,以便提高效能。 需要大型池的操作有:Database Backup和恢複,用於共用服務進程的會話記憶體(例如:大量排序的SQL語句),並行化的資料庫操作等。 PGA 單獨的伺服器處理序儲存私人資料的記憶體地區。 排序區 儲存執行order by、group by等包含排序操作的SQL語句時所產生的臨時資料 會話區 儲存會話所具有的許可權、角色、效能統計資訊 遊標區 儲存執行帶有遊標(Cursor)的PL/SQL語句時所產生的臨時資料 堆棧區 儲存會話的綁定變數、會話變數以及SQL語句運行時的記憶體結構資訊 PGA與SGA的區別 PGA與SGA類似,都是Oracle資料庫系統為會話在伺服器記憶體中分配的地區,但是作用不同,共用程式也不同。 進程 使用者進程 Oracle進程 Oracle進程 伺服器處理序 後台進程 伺服器處理序 用於處理串連到該執行個體的使用者進程的請求。 任務: 1、對應用程式所發出的SQL語句進行文法分析和執行 2、從磁碟中讀取必要的資料區塊到SGA的共用資料庫緩衝區 3、將結果返回給應用程式處理 PMON(進程監控進程) 1、監控伺服器處理序,以確保能夠銷毀發生損壞或者出現故障的進程,釋放它們的資源 2、在主機作業系統上使用Oracle監聽器註冊資料庫伺服器 SMON(系統監控進程) 執行常式恢複、合并空間片段、釋放臨時段等功能 DBWR(資料庫寫入進程) 緩衝區使用者所使用的資料寫入資料檔案。 LGWR(日誌寫入進程) 重做日誌緩衝區的內容寫入到記錄檔中去 日誌寫入進程會在以下4種情況執行寫入操作 1、交易處理進行提交 2、重做日誌緩衝已經填充了1/3 3、重做日誌緩衝中的數量達到了1MB 4、每3秒的時間 ARCH(歸檔進程) 將重做日誌的事務變化寫入到歸檔日誌 CKPT(檢查點進程) 該進程在檢查點出現時,對全部資料檔案的標題進行修改 注意:通常是不啟動的,如果檢查點明顯地降低系統效能時,CKPT進程就會運行,將原來的由LGWR進程執行的檢查點的工作分離出來,由CKPT進程實現 CJQO(作業隊列協調器進程) 在Oracle中規劃將要在資料庫後台啟動並執行進程或作業(job) 例如:使用者可以告訴資料庫在每天晚上12:00建立匯總表,通過採用這種方式,就可以在第二天匯總資訊 RECO(恢複進程) 在分散式資料庫環境中恢複進程恢複那些失敗的分散式交易