文章詳情頁
Oracle兩個基本概念幫你了解體系結構
瀏覽:8日期:2023-11-22 12:40:49
要了解Oracle體系結構必須先了解兩個基本的概念:數(shù)據(jù)庫和實例。 一、數(shù)據(jù)庫 數(shù)據(jù)庫(database)是一個數(shù)據(jù)集合。無論數(shù)據(jù)庫是采用關系結構還是面向對象結構,oracle數(shù)據(jù)庫都將其數(shù)據(jù)存放在數(shù)據(jù)文件中。在其內(nèi)部,數(shù)據(jù)庫結構數(shù)據(jù)對文件的邏輯映射,使不同的數(shù)據(jù)分開存儲,這些邏輯劃分稱為表空間。 表空間和文件介紹: 1、表空間 表空間(tablespace)是數(shù)據(jù)庫的邏輯劃分,每個數(shù)據(jù)庫至少有一個表空間,叫做系統(tǒng)表空間(system表空間)。一個表空間只能屬于一個數(shù)據(jù)庫。每個表空間由同一個磁盤上的一個或多個文件組成,這些文件稱為數(shù)據(jù)文件。 表空間的特性: 1)控制數(shù)據(jù)庫數(shù)據(jù)磁盤分配; 2)限制用戶在表空間中可以使用的磁盤空間大小; 3)表空間具有online,offline,readonly,readwrite屬性; 修改表空間的屬性: SQL>altertablespace表空間名稱屬性; 查詢表空間狀態(tài): SQL>selecttablespace_name,statusfromdba_tablespaces; 注重:system,undo,temp表空間不能設為offline屬性。 4)完成部分數(shù)據(jù)庫的備份與恢復; 5)表空間通過數(shù)據(jù)文件來擴大,表空間的大小等于構成該表空間的所以數(shù)據(jù)文件的大小之和。 查詢表空間與數(shù)據(jù)文件對應關系: SQL>selecttablespace_name,bytes,file_namefromdba_data_files; 基于表空間的幾個操作: 1)查詢用戶缺省表空間: SQL>selectusername,default_tablespacefromdba_users; 2)查詢表與存儲該表的表空間: SQL>selecttable_name,tablespace_namefromuser_tables; 3)修改用戶缺省表空間: SQL>alteruserusernamedefaulttablespacetablespace_name; 4)將數(shù)據(jù)從一個表空間移動到另一個表空間: SQL>altertabletable_namemovetablespacetablespace_name; 2、數(shù)據(jù)文件 每個表空間由同一個磁盤上的一個或多個文件組成,這些文件叫做數(shù)據(jù)文件(datafile), 數(shù)據(jù)文件只能屬于一個表空間.數(shù)據(jù)文件創(chuàng)建后可以改變大小.創(chuàng)建新的表空間需要創(chuàng)建新的 數(shù)據(jù)文件。數(shù)據(jù)文件一旦加入到表空間中,就不能從表空間中移走,也不能與其他表空間發(fā)生聯(lián)系。 數(shù)據(jù)庫必須的三類文件是datafile,controlfile,redologfile。其他文件prameterfile,passWordfile,archivedlogfiles并不是數(shù)據(jù)庫必須的,他們只是輔助數(shù)據(jù)庫的。 查看數(shù)據(jù)庫的物理文件組成: 1)查看數(shù)據(jù)文件:SQL>select*fromv$datafile; 2)查看控制文件:SQL>select*fromv$controlfile; 3)查看日志文件:SQL>select*fromv$logfile。 二、實例 通俗的講實例就是操作oracle數(shù)據(jù)庫的一種手段。數(shù)據(jù)庫實例也稱作服務器,是用來訪問數(shù)據(jù)庫文件集的存儲結構及后臺進程的集合。一個數(shù)據(jù)庫可以被多個實例訪問(稱為真正的應用群集選項)。決定實例的大小及組成的各種參數(shù)或者存儲在名稱init.ora的初始化文件中,或者隱藏在數(shù)據(jù)庫內(nèi)部的服務器參數(shù)文件中。通過spfile引用該文件,spfile存儲在spfile.ora文件中。實例啟動時讀取初始化文件,數(shù)據(jù)庫系統(tǒng)治理員可以修改該文件,對初始化文件的修改只有在下次啟動時才有效。 Instance分為兩部分: 1、memorystrUCture(內(nèi)存結構) memorystructure分為兩部分:SGA(SystemGlobalArea)區(qū)是用于存儲數(shù)據(jù)庫信息的內(nèi)存區(qū),該信息為數(shù)據(jù)庫進程所共享。它包含Oracle服務器的數(shù)據(jù)和控制信息,它是在Oracle服務器所駐留的計算機的實際內(nèi)存中得以分配,假如實際內(nèi)存不夠再往虛擬內(nèi)存中寫。 包括: .sharepool .datafasebuffercache .redologbuffer .otherstructures PGA(ProgramGlobalArea)區(qū)包含單個服務器進程或單個后臺進程的數(shù)據(jù)和控制信息,與幾個進程共享的SGA正相反PGA是只被一個進程使用的區(qū)域,PGA在創(chuàng)建進程時分配在終止進程時回收。 2、backgroundprocess(后臺進程) 包括:PMON負責在一個Oracle進程失敗時清理資源。 .SMON檢查數(shù)據(jù)庫的一致性如有必要還會在數(shù)據(jù)庫打開時啟動數(shù)據(jù)庫的恢復。 .DBWR負責將更改的數(shù)據(jù)從數(shù)據(jù)庫緩沖區(qū)高速緩存寫入數(shù)據(jù)文件。 .LGWR將重做日志緩沖區(qū)中的更改寫入在線重做日志文件。 .CKPT負責在每當緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫中時,更新控制文件和數(shù)據(jù)文件中的數(shù)據(jù)庫狀態(tài)信息。
標簽:
Oracle
數(shù)據(jù)庫
排行榜
