什么是數據庫? 數據庫就是處理數據文件的一批程序。 ============================================== oracle數據庫中存放有兩種類型的信息: . 用戶數據是特定應用程序的數據(例如客戶發貨單)。 . 系統數據是數據庫系統管理自身所需的數據(例如與特定數據庫有關的所有數據文件的 名稱及存放地點)。 ============================================= 數據庫就是柜子,柜中的抽屜是表空間,抽屜中的文件夾是數據文件,文件夾中的紙是表,寫在紙 上的信息就是數據。 ============================================= 1) 表空間是一個或多個數據文件的集合。 2) 下列表空間在大多數數據庫中是必備的或者是常見的: . 系統表空間中保存用于管理o r a c l e系統自身及其中存放的數據所需的信息。這些表空間 的名稱是固定的。 . 臨時表空間是o r a c l e中臨時使用的區域。當特定事件發生時, o r a c l e需要用這些磁盤空 間管理有關的事務。 . 工具表空間保存那些o r a c l e數據庫上運行的工具軟件所需的對象。 . 用戶表空間中存放用戶專用的數據庫對象。 . 回滾表空間中存放數據庫對象的回滾段。 . 數據和索引表空間中存放用戶的應用數據。 . 索引是數據庫對象的一個特殊類型。o r a c l e使用索引進行快速數據檢索。 3) 全表掃描(full table scan)指o r a c l e訪問特定對象的每行數據。 4) 恢復( u n d o )信息保存在一個稱作回滾段(rollback segment)的專用數據庫對象中,在出 現失敗或臨時中止事務時,可以用回滾段使數據庫對象退回到舊值。 ===================================================== 重做日志(redo log)也稱作事務日志( transaction log),o r a c l e在這些特殊的操作系統文件中記錄針對數據庫進行的修改操作或事務。對數據庫所做的 所有修改工作都在內存中進行. ===================================================== 1) oracle數據庫由兩種類型的文件組成: . 結合在一起構成表空間的數據文件。 . 結合在一起構成重做日志系列的數據文件。 2) 一個數據庫必須至少具有兩個重做日志。 3) 重做日志中含有數據庫中發生的所有事務條目。 4) 重做日志常常也稱為事務日志。 5) 為了防止數據丟失,必須使用事務日志,事務日志的功能為:出現意外故障時恢復數據。 6) oracle數據庫可以在下列兩種模式下運行: . archivelog模式下將保存所有的事務日志。 . noarchivelog模式下不保存舊事務日志。 =================================================== 臟數據塊(dirty data block) 是計算機內存中的一塊內存區,其中存有讀自數據庫并已做修改的數據。 臟數據塊:存放在內存中臟數據塊中的原始數據已被修改,而修改后的數據還未寫入數據庫中。 熱數據塊(hot data block) 存放著那些要頻繁修改的數據。 l r u (least recently used,最近最少使用) 快照(snapshot) 是一個存放在一個或多個表中的數據的只讀拷貝,從一個站點(主站點)存入另一個站點(遠程站點)。 回滾( r o l l b a c k )的功能是將用戶改變的數據恢復到原先所處的狀態。 恢復信息(undo information) 由于種種原因,當數據庫需要恢復或回滾用戶的操作時,將產生恢復信息。 ===================================================
控制文件是一個非常小的文件,其中存放一些與o r a c l e數據庫所有文件相關的關鍵信息。 o r a c l e系統通過控制文件保持數據庫的完整性( i n t e g r i t y )以及決定恢復數據時使用哪些重做日志。 =================================================== . 每個數據庫至少有兩個控制文件。我們極力建議用戶最少生成兩個控制文件,并分別放 在不同的磁盤上。 . 數據庫結構的所有修改都被記錄在控制文件中。 ================================================== 有兩種類型的程序或進程。 . 一種是用戶(或稱作客戶機)進程,如s q l * p l u s、oracle forms、oracle reports及其他任 何用于訪問數據庫的工具都是用戶進程。 . 服務器進程接收來自客戶進程的請求,然后通過與數據庫的交互滿足這些要求。 ================================================= o r a c l e提供了許多支持進程幫助用戶進程與數據庫服務器通信。這些支持進程用于: . 在出現校驗點時將數據寫回數據文件中( d b w r )。 . 在出現校驗點時確保將臟數據塊寫回磁盤( c k p t )。 . 讀寫重做日志( l g w r )。 . 在啟動系統時運行以完成數據庫恢復的功能( s m o n )。 . 用戶在會話期間異常終止后,可用來釋放用戶占用的資源( p m o n )。 . 在a r c h i v e l o g模式下,出現重做日志交換時歸檔重做日志的拷貝( a r c h )。 . 在并行服務器配置中管理鎖( l c k )。 . 當使用o r a c l e分布式選件時恢復可疑的事務( r e c o )。 . 支持oracle 的快照技術( s n p )。 . 支持o r a c l e的高級隊列( q m n )。 ================================================ 關于內存結構總結如下: 1) 內存區有兩種: . 系統全局區( s g a )。 . 程序全局區( p g a )。 2) sga由所有的服務器和客戶機進程共享。 3) sga主要由四部分組成: . 數據高速緩沖區(data buffer cache)。 . 字典高速緩沖區(rows cache)中存放o r a c l e管理自身所需信息。 . 重做日志緩沖區為事務高速緩沖區。 . 共享s q l池為程序高速緩沖區。 4) 用戶進程需要查看的信息必須首先放到s g a中。 5) sga是一個大通信器,所有進程都可以通過它共享信息。 6) pga不能在進程間共享。 7) pga中存放數據和進程控制信息。 ================================================