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