Oracle體系結構之 物理結構

2021-08-31 08:56:44 字數 3368 閱讀 7314

一、物理檔案的分類

oracle資料庫的物理檔案可以分成三類:

·資料檔案

·日誌檔案

·控制檔案

二、資料檔案

資料檔案顧名思義是用來儲存資料的。例如:表,索引等等。從資料檔案中讀取出來的資料會首先存放在記憶體中的sga,作為緩衝資料。應用對資料的修改也是先保持在sga中。由dbwr在某一時刻將其寫入到資料檔案中。

那麼如何檢視資料庫中的資料檔案呢?我們可以使用以下的sql語句:

sql>select  *  from dba_data_files;

sql>select  *  from v$datafile;

第乙個sql語句查詢到的是檔案的靜態資訊,第二個sql語句查詢到的動態資訊,其中特別重要的就是系統的檢查號(scn)。

我們可以通過查詢dba_free_space表來了解各個表空間的使用資訊,從這個表中我們看到每乙個表空間下每乙個塊的block_id,bytes,blocks值。

sql>select  *  from dba_free_space;

我們可以通過給某個表空間新增資料檔案來增加其儲存空間的大小,例如:

sql>alter tablespace'table space name'adddatafile 'data file name'size***m autoextend off;

如果我們覺得資料檔案的可用空間已經所剩不多了,那麼要重新調整資料檔案的大小,這時就可用通過執行以下的sql語句來完成了:

sql>alter databasedbname datafile 'data file name'resize***m

但是如果每次都要管理員手動來調整增加表空間的大小是一件很麻煩的事情,所以oracle為我們提供了一些關鍵字,通過這些關鍵字我們可以輕鬆地讓表空間在空間不夠時自動擴充套件表空間。例如:

sql>alter databasedbname datafile 'data file name'autoextendedonnext50mmaxsizeunlimited;

上面的sql語句使到資料庫dbname下面的資料檔案'data file name'在空間不夠時自動擴充套件,每次擴充套件50m。不設上限。

如果我們不加以控制的話,那麼表空間有可能無限制地擴充套件下去,所以我們又可以通過maxsize來限制上限。

sql>alter database dbname datafile 'data file name' autoextend on next 50m maxsize 400m;

二、重做日誌檔案

重做日誌檔案記錄了對資料庫的所有修改的資訊。

每乙個oracle資料庫中都有至少兩個的重做日誌檔案組,每個重做日誌檔案組都包含了乙個到多個的重做日誌檔案-即日誌成員。同乙個日誌檔案組中的各個日誌成員之間是映象關係,它們的內容都是一模一樣的。

oracle在寫日誌的時候是以日誌組為單位的,只有寫完了同乙個日誌組中的所有日誌成員之後,寫日誌才會結束。當乙個日誌檔案組中所有的成員同時被寫滿資料時,系統自動轉換到下乙個日誌檔案組,這個轉換過程稱為日誌切換。

當日誌切換後,會給前乙個日誌組編乙個號,用於歸檔日誌的編號,這個編號稱為日誌序列號。此編號由1開始,每切換一次,序列號自動加1,最大值受引數maxloghistory限制,該引數的最大值為65534。

當oracle把最後乙個日誌組寫滿了以後,自動轉向第乙個日誌組,這時,再向第乙個日誌組寫日誌的時候, 如果資料庫執行在非歸檔模式下,這個日誌組中的原有日誌資訊就會被覆蓋。

如果我們想檢視日誌檔案的具體資訊,可以通過以下的sql語句來檢視:

sql>select *  from v$log

這個動態檢視的查詢結果中包含了幾個比較重要的資訊,例如:

·group#:日誌檔案組號

·sequence#:日誌序列號

·status:該組狀態(current表示當前正在使用的,nactive表示非活動組,active表示歸檔未完成)

·first_change#:系統改變號scn(也稱為檢查點號)

三、控制檔案

控制檔案是乙個二進位制檔案,用來描述資料庫的物理結構,乙個資料庫只需要乙個控制檔案,控制檔案的內容包括:

·資料庫名及資料庫惟一標識

·資料檔案及日誌檔案的標識

·系統恢復的必要資訊,即scn

我們可以在oracle的init.ora檔案中看到這樣乙個引數:controller_files = ('file1','file2'...'filen'),這說明資料庫有多個控制檔案,這些控制檔案彼此之間都是映象的關係。只要其中乙個檔案是完好的資料庫就可以啟動。

同樣的,我們也可以通過如下的sql語句來檢視控制檔案的資訊:

sql>select  *  from v$controller_file

總結:

oracle中各種物理檔案的操作操作專案

sql語句

建立資料檔案

alter tablespace *** add datafile ***  size ***m autoextend on maxsize unlimited

調整資料檔案

alter database *** datafile *** resize ***m

檢視資料檔案

select * from dba_data_files/select * from v$datafile

檢視空閒空間

select * from dba_free_space

檢視日誌檔案

select * from v$log

檢視檢查點號

select first_change# / checkpoint_change# from v$log/v$datafile/v$database

檢視控制檔案

select * from v$controller

Oracle體系結構之 物理結構

一 物理檔案的分類 oracle資料庫的物理檔案可以分成三類 資料檔案 日誌檔案 控制檔案 二 資料檔案 資料檔案顧名思義是用來儲存資料的。例如 表,索引等等。從資料檔案中讀取出來的資料會首先存放在記憶體中的sga,作為緩衝資料。應用對資料的修改也是先保持在sga中。由dbwr在某一時刻將其寫入到資...

Oracle 物理體系結構

各部分解釋 pga 私有記憶體區,僅供當前發起使用者使用。三個作用 使用者登入後的 session資訊會儲存在pga。執行排序。假設記憶體不夠,oracle會在暫時表空間中完畢 儲存使用者 許可權資訊 sga 包括共享池,資料緩衝區,日誌緩衝區以及一些相關的程序。database 資料終於存放的地方...

Oracle物理體系結構

各部分解釋 pga 私有記憶體區,僅供當前發起使用者使用。三個作用 使用者登入後的session資訊會儲存在pga。執行排序,如果記憶體不夠,oracle會在臨時表空間中完成 儲存使用者許可權資訊 sga 包含共享池,資料緩衝區,日誌緩衝區以及一些相關的程序。database 資料最終存放的地方,其...