要瞭解oracle體繫結構必須先瞭解兩個基本的概念: 資料庫和執行個體.
一: 資料庫
資料庫(database)是一個資料集合.
無論資料庫是採用關係結構還是物件導向結構, oracle資料庫都將其資料存放在資料檔案中. 在其內部, 資料庫結構資料對檔案的邏輯映射, 使不同的資料分開儲存, 這些邏輯劃分稱為資料表空間.
資料表空間和檔案介紹:
1: 資料表空間
資料表空間(tablespace)是資料庫的邏輯劃分, 每個資料庫至少有一個資料表空間,叫做系統資料表空間(system 資料表空間). 一個資料表空間只能屬於一個資料庫.
每個資料表空間由同一個磁碟上的一個或多個檔案組成, 這些檔案稱為資料檔案. 資料表空間的特性:
1)控制資料庫資料磁碟分配
2)限制使用者在資料表空間中可以使用的磁碟空間大小
3)資料表空間具有 online, offline, readonly, readwrite屬性
修改資料表空間的屬性:
SQL> alter tablespace 資料表空間名稱 屬性;
查詢資料表空間狀態:
SQL> select tablespace_name, status from dba_tablespaces;
注意: system, undo, temp資料表空間不能設為offline屬性.
4)完成部分資料庫的備份與恢複
5)資料表空間通過資料檔案來擴大, 資料表空間的大小等於構成該資料表空間的所以資料檔案的大小隻和.
查詢資料表空間與資料檔案對應關係:
SQL> select tablespace_name, bytes, file_name from dba_data_files;
基於資料表空間的幾個操作:
1)查詢使用者預設資料表空間:
SQL> select username, default_tablespace from dba_users;
2)查詢表與儲存該表的資料表空間:
SQL> select table_name, tablespace_name from user_tables;
3)修改使用者預設資料表空間:
SQL> alter user username default tablespace tablespace_name;
4)將資料從一個資料表空間移動到另一個資料表空間:
SQL> alter table table_name move tablespace tablespace_name;
2: 資料檔案
每個資料表空間由同一個磁碟上的一個或多個檔案組成, 這些檔案叫做資料檔案(datafile),資料檔案只能屬於一個資料表空間. 資料檔案建立後可以改變大小. 建立新的資料表空間需要建立新的資料檔案. 資料檔案一旦加入到資料表空間中, 就不能從資料表空間中移走, 也不能與其他資料表空間發生聯絡.資料庫必須的三類檔案是 data file, control file, redolog file. 其他檔案 prameter file,password file, archived log files並不是資料庫必須的, 他們只是次要資料庫的.
查看資料庫的物理檔案組成:
1)查看資料檔案: SQL> select * from v$datafile;
2)查看控制檔案: SQL> select * from v$controlfile;
3)查看記錄檔: SQL> select * from v$logfile;
二: 執行個體
通俗的講執行個體就是操作oracle資料庫的一種手段.
資料庫執行個體也稱作伺服器, 是用來訪問資料庫檔案集的儲存結構及後台進程的集合.
一個資料庫可以被多個執行個體訪問(稱為真正的應用群集選項).
決定執行個體的大小及組成的各種參數或者儲存在名稱init.ora的初始設定檔案中, 或者隱藏在資料庫內部的伺服器參數檔案中. 通過spfile引用該檔案, spfile儲存在spfile.ora檔案中.
執行個體啟動時讀取初始設定檔案, 資料庫系統管理員可以修改該檔案, 對初始設定檔案的修改只有在下次啟動時才有效.
Instance分為兩部分:
1: memory structure(記憶體結構)
memory structure分為兩部分:SGA(System Global Area)區是用於儲存資料庫資訊的記憶體區,該資訊為資料庫進程所共用。它包含Oracle 伺服器的資料和控制資訊,
它是在Oracle 伺服器所駐留的電腦的實際記憶體中得以分配,如果實際記憶體不夠再往虛擬記憶體中寫。
包括:
.share pool
.datafase buffer cache
.redo log buffer
.other structures
PGA(Program Global Area)區包含單個伺服器處理序或單個後台進程的資料和控制資訊,與幾個進程共用的SGA 正相反PGA 是只被一個進程使用的地區,PGA 在建立進程時分配在終止進程時回收
2: background process(後台進程)
包括: .PMON 負責在一個Oracle 進程失敗時清理資源
.SMON 檢查資料庫的一致性如有必要還會在資料庫開啟時啟動資料庫的恢複
.DBWR 負責將更改的資料從資料庫緩衝區快取寫入資料檔案
.LGWR 將重做日誌緩衝區中的更改寫入線上重做記錄檔
.CKPT 負責在每當緩衝區快取中的更改永久地記錄在資料庫中時,更新控制檔案和資料檔案中的資料庫狀態資訊。文章出處:http://oracle.chinaitlab.com/serial/796546.html